<p>There is a fairly well known game called, alternatively, <a href="http://www.cyningstan.com/game/150/hare-hounds" rel="nofollow noreferrer">Hare and Hounds</a> or the <a href="https://boardgamegeek.com/boardgame/31271/french-military-game" rel="nofollow noreferrer">French Military Game</a>. It is a two person game in which one player controls one piece (the Crook/Spy) and the other controls three pieces (the Police). The object is for the Police to "trap" the Spy. The board is a directed graph with limitations on movement. </p>

<p>There is a well known solution for automating the Spy so that it plays optimally, though naively at first, learning from subsequent plays. I believe there is a known "win" for the Spy if it plays correctly. </p>

<p>A Java program for the automated version can be found at the <a href="https://greenroom.greenfoot.org/resources/36" rel="nofollow noreferrer">Green Room</a>. The implementation can use either arrays or Collections. </p>

<p>The thing that makes it interesting as a program is that the game is simple enough that a complete play (all positions of all players) can be captured in a very compact way, making it feasible to retain the complete history of plays. </p>

<p>The game and its solution are also discussed in detail in <a href="https://rads.stackoverflow.com/amzn/click/0985154306" rel="nofollow noreferrer">Beyond Karel J Robot</a> by J Bergin. </p>

CC BY-SA 4.0
2018-06-16T12:29:02.000Z
2018-06-16T15:49:13.893Z
2018-06-16T15:49:13.893Z
Buffy
<p>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.</p>

<p>Some of the quantities to make them useful, in order of importance, would be.</p>

<ol>
<li>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.</li>
<li>Separation between UI and logic: So that we can replace the interface (UI), with a code.</li>
<li>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.</li>
</ol>

<p>Something that has good automated testing should pass point 2 (probably).</p>

<p>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.</p>

<p>I am not thinking of real AI (i.e. strategy), but puzzle games such a sudoko, net-route, towers, black-box, magnets, (see <a href="https://chris.boyle.name/projects/android-puzzles" rel="nofollow noreferrer">https://chris.boyle.name/projects/android-puzzles</a> ).</p>

<p>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.</p>

CC BY-SA 4.0
2018-06-16T10:45:04.587Z
I don't understand what the third point has to do with puzzles. Project Euler has great puzzles, for instance, but they are language-agnostic.
Ben I.
CC BY-SA 4.0
2018-06-16T10:59:05.320Z
I'm guessing that you mean, but don't say, you want programs for puzzles where a human user is currently the solver, but that might be amenable to replacing that with an automated or AI solver instead. If that is correct, you might stress it more in the question.
Buffy
CC BY-SA 4.0
2018-06-16T13:10:32.283Z
This strikes me as too broad, because there's no actual question here or problem to be solved. You're asking for a list of games that fit your criteria. Questions that ask for lists aren't a good fit for the Stack Exchange Q&A format because there's no real question and there's no way to judge the "best" answer, so voting fails to be useful. This question could be improved by adding what you want to use these games _for_, giving us the larger context that you'll be using these games in.
thesecretmaster
CC BY-SA 4.0
2018-06-16T14:06:40.890Z
@thesecretmaster yes it may be a list question, but I think it can work. It is bounded. Only **implementations** that fit the **criteria**. My hope is no find one or two collections.
ctrl-alt-delor
CC BY-SA 4.0
2018-06-16T14:08:07.667Z
@Ben Point 3 allows the view and controller to be re-written, as an AI.
ctrl-alt-delor
CC BY-SA 4.0
2018-06-16T15:14:58.523Z
@ctrl-alt-delor Would you mind adding the concept(s) you're trying to teach using these games?
thesecretmaster
<resource-request><programming>
Looking for puzzle/game programmes, so students can write solvers
# Looking for puzzle/game programmes, so students can write solvers

(Asked by: username_0 on 2018-06-16)

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.

1. 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.
2. Separation between UI and logic: So that we can replace the interface (UI), with a code.
3. 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.

**Tags:** resource-request, programming

> **Comments:**
> **username_1**: I don't understand what the third point has to do with puzzles. Project Euler has great puzzles, for instance, but they are language-agnostic.  
> **username_2**: I'm guessing that you mean, but don't say, you want programs for puzzles where a human user is currently the solver, but that might be amenable to replacing that with an automated or AI solver instead. If that is correct, you might stress it more in the question.  
> **username_3**: This strikes me as too broad, because there's no actual question here or problem to be solved. You're asking for a list of games that fit your criteria. Questions that ask for lists aren't a good fit for the Stack Exchange Q&A format because there's no real question and there's no way to judge the "best" answer, so voting fails to be useful. This question could be improved by adding what you want to use these games _for_, giving us the larger context that you'll be using these games in.  
> **username_0**: @username_3 yes it may be a list question, but I think it can work. It is bounded. Only **implementations** that fit the **criteria**. My hope is no find one or two collections.  
> **username_0**: @Ben Point 3 allows the view and controller to be re-written, as an AI.  
> **username_3**: @username_0 Would you mind adding the concept(s) you're trying to teach using these games?  

---

## 1 answers

### Answer by username_2 on 2018-06-16. Score: 1

There is a fairly well known game called, alternatively, [Hare and Hounds](http://www.cyningstan.com/game/150/hare-hounds) or the [French Military Game](https://boardgamegeek.com/boardgame/31271/french-military-game). It is a two person game in which one player controls one piece (the Crook/Spy) and the other controls three pieces (the Police). The object is for the Police to "trap" the Spy. The board is a directed graph with limitations on movement.

There is a well known solution for automating the Spy so that it plays optimally, though naively at first, learning from subsequent plays. I believe there is a known "win" for the Spy if it plays correctly.

A Java program for the automated version can be found at the [Green Room](https://greenroom.greenfoot.org/resources/36). The implementation can use either arrays or Collections.

The thing that makes it interesting as a program is that the game is simple enough that a complete play (all positions of all players) can be captured in a very compact way, making it feasible to retain the complete history of plays.

The game and its solution are also discussed in detail in [Beyond Karel J Robot](https://rads.stackoverflow.com/amzn/click/0985154306) by J Bergin.


---

