I was playing this thing and working out all of the possibilities all day (I was really bored at work:)). Assuming that it’s hound’s turn from any of those arrangements (because when playing as the hounds the hare moves immediately after you move), hare can still force a win because again the hound in the middle hexagon cannot be moved, so only the other 2 hounds are in play. Provided the hare does not make a tactical mistake, it will always be a draw (which is a win for the hare).
Actually, now that I look at it again, if the board were to end up in the 2nd arrangement:
* * D
* D D * R
* * *
the hounds can win by moving the center hound to the lower right, forcing the hare to move to the left, then the hound on the left can just move up and they will win, however allowing that arrangement to occur would be a tactical error by the hare; the ideal move for the hare following this play:
Well, I’ve been messing with septimus’s program for the better part of a day, and I can’t find any issues. I guess there’s only one way to settle this …
I don’t have septimus’ program, so I don’t know how that would play out (nor am I a programmer so in even if I did have it I can neither confirm nor deny that his program adheres to the rules of the game), but having played out the game in the Java version literally hundreds of times from both sides (like I mentioned earlier I’ve been playing and analyzing it all day) I can confidently conclude that given perfect play by both sides, the hounds will always lose. The sequence I detailed in post #17 of the Game Room thread is, as far as I can tell, the ideal play for both sides, and in that sequence, it matters not whether the hare moves up or down in move #7, for when the hounds all line up in the center á la
O-D-O
/|\|/|\
O-O-D-O-O
\|/|\|/
O-D-O
it matters not whether the hare is here
O-D-O
/|\|/|\
O-O-D-O-O
\|/|\|/
O-D-R
or here
O-D-R
/|\|/|\
O-O-D-O-O
\|/|\|/
O-D-O
because from either position, it being hare’s move, hare’s ideal move is back to the far right, yielding:
O-D-O
/|\|/|\
O-O-D-O-R
\|/|\|/
O-D-O
from which the hounds’ only possible moves (because moving the hound away from the center hexagon is suicide) are:
O-D>D
/|\|/|\
O-O-D-O-R
\|/|\|/
O-D-O
or
O-D-O
/|\|/|\
O-O-D-O-R
\|/|\|/
O-D>D
From either of these arrangements, it now being hare’s move, the hare can force a draw, and thus a win.
I suppose if we weren’t adults, we’d be analyzing Tic-Tac-Toe?
But I’d be a pot to call the kettle black, since I spent part of the afternoon trying to understand why Hounds need five vertical moves. The following is certainly not a complete proof, just a relevant variation. In each diagram it is Hare to play.
D * R
D D * *
Hare moves down.
D * *
D R *
D * *
Hounds have used up one vertical move.
D D D R
Hounds have used up two vertical moves.
R
D D * *
D
Hounds have used up three vertical moves.
D * *
D R *
D
Hounds have used up four vertical moves.
D R
D * *
D
From here, Hare wins only by moving back to his starting cell.
D D
R
D
Hounds will need another vertical move to block Hare, but they’ve exhausted their allotment.
You seem to assume Java plays “perfectly” and septimus doesn’t.
As someone else mentioned, you (or Java) seem to have misplayed Hounds’ move here:
D * *
D * R
D * *
Hounds can stall with vertical moves here, but otherwise must move the lead Hound to the right.
I’m just naturally a stingy, anal-retentive guy! If Hounds can win with only five vertical moves, I’ll not give them ten, consecutive or otherwise. (In younger years, I might have relented and allowed a few extra stalling moves if the Hounds player was a particularly voluptuous brunette, but I’m happily married these days.)
I can’t, and I don’t expect to. The interesting thing I’ve been using it for is to try to come up with useful strategic principles for the Hound side. (Strategy for the Hare is fairly simple, which is, I think, why the Hare often wins when humans play each other.) So far, I can’t find any. septimus’s program operates by pure brute-force look-ahead, and there doesn’t seem to be any shortcut to that for the Hounds that I can identify.
Although I came up with the solution independently, it looks like septimus already posted it in #23. He’s right that it’s not even very difficult for a human to solve by brute force; the board just isn’t very big. Not that I solved it by pure brute force; I learned a great deal by observing how the computer played the hounds.
As the original OP, I just want to call time out for a minute and ask people what they are debating. : )
Assuming the “traditional rules” with a draw (repititions) as a win for Hare. Can a smart, experienced Hare player always (assuming no flaws in play) wins against the best Hounds can do? Is anybody debating that the answer to this is yes, Hare always wins? (Or should the question be reworded?)
I wish I could read through all the above, and I love the enthusiasm, but I wanted to see if the debate was still on this original question or it is settled and you are debating something else (which is ok of course). Just checking in. Thanks; sorry to be a little lazy. : )
I was with you, if you remember, but we flushed it out in the other thread, and after going back and forth a few times, eventually I had to concede that the hare, barring a tactical mistake by hounds, will always lose. The Java program I was working with makes a lot of mistakes and I kept missing a key move. You’ll need to read through the other thread, I’m not getting into it again. If not, you’ll just have to take our word for it. Hounds win.
You seem to be asking “If the Hare can always win, can the Hare always win?”. The answer to that question is clearly “yes”, though it looks like it’s a true conditional by virtue of a false premise.
A program can be a proof, if it’s clear enough and well-documented. I’ll concede that septimus hasn’t written a program like that. That said, I’ve been over the code several times and have tested it experimentally through quite a few variations, and I’m 100% convinced. It seems to do exactly what it purports to, which is searching through every possible sequence of moves & finding branches with no winning moves for the Hare player.
My hope was to distill the moves it picked into a small set of rules for the Hounds player to follow, and proceed from there to a demonstration that following those rules leads to a Hound win. So far, I’m stuck on step one … If I can’t do this, the options would be to either re-write the program in a more transparent way (probably in a higher-level language than C), or to use it to map out a move-by-move strategy for the Hounds vs. all possible responses by the Hare. Given the size of the board, and the fact that we don’t need to map out all possible games, but just all possible games that include the best move for the Hounds from each position, this may actually be feasible.