This repository contains a small, opinionated C# project inspired by the Karel the Robot Learns Python teaching environment. It is designed as an introductory, hands-on playground to help students at Synalima learn C# programming concepts in an exploratory way.
The current status of the MAIN branch is:
- src/Karel: the main library and a tiny console demo that wires components with dependency injection
- test/Karel.Tests: xUnit tests (unit + integration) demonstrating how to test components
- Keep the surface area small: interfaces for
IMap,IRobot,IRuleandIScenario, base classes and simple starter implementations. - Show dependency injection using
Microsoft.Extensions.DependencyInjection. - Provide unit and integration tests so students learn testing early.
- .NET 8 SDK (the project targets
net8.0to match common environments)
Build the project:
cd src\Karel
dotnet buildWIP: Run the small demo program (it demonstrates DI and a few robot actions):
dotnet runKeyboard command, followed by dotnet: build task selection:
CTRL-SHIFT-B
Run the tests:
cd test\Karel.Tests
dotnet testThis workflow generates SVG badges and commits them into docs/coverage-badges/ on the main branch. After a successful run on main the badges will be available in the repo and can be referenced directly.
The CI step that commits badges runs only for pushes to main and uses [skip ci] in the commit message to avoid triggering additional workflow runs.