I was playing some logic puzzles, and was thinking that they would be good for students to program solvers, that can be plugged in to the game logic.
Some of the quantities to make them useful, in order of importance, would be.
- Free Software (Open Source): So that we have the freedom to use them how we want, to make changes, and to share our changes with others.
- Separation between UI and logic: So that we can replace the interface (UI), with a code.
- Model View Controller: to that we can have both the UI and the code solver, and a change in one will be reflected in the other.
Something that has good automated testing should pass point 2 (probably).
To clarify: I want programs(implementations) of puzzles where a human user is currently the solver, but that might be amenable to replacing that with an automated or AI solver instead.
I am not thinking of real AI (i.e. strategy), but puzzle games such a sudoko, net-route, towers, black-box, magnets, (see https://chris.boyle.name/projects/android-puzzles ).
The concepts I am teaching is just programming. The makes are to add motivation. There may be other benefits, I am sure that it could help with logical thinking, but the main reason is just motivation / engagement.