|
||
Title: Goal line rabbits Post by Janzert on Oct 25th, 2008, 9:01pm In game #86642 (http://arimaa.com/arimaa/gameroom/comments.cgi?gid=86642) Gnobot hung it's elephant on a trap because it didn't understand that the opponent could pull a rabbit onto the goal line then push it back off to capture the elephant and still avoid giving Gnobot the goal. Funnily enough it turns out that Bomb didn't understand it either so the game continues for several moves with the elephant left hanging. I knew that OpFor handles this correctly at the root but not in the search1. I had simply figured it would have very little chance of ever causing a problem in an actual game. But this means while OpFor will correctly capture the E at 43s, I was fairly easily able to make a simplification of 43g that OpFor thinks is a forced win for gold while actually being (I think) a forced win for silver. 43w +-----------------+ 8| . . d . . . . . | 7| r r r C . . . . | 6| D m R E . x . r | 5| d H . . . . . . | 4| . . . . . . . . | 3| . . x . . x . . | 2| . . . . . . . . | 1| . . . . . . . . | +-----------------+ a b c d e f g h Since it can't see the elephant capture in the search OpFor currently gives: depth 11 pv Cd7e rc7e Rc6n Ed6w b dc8e dd8w rh6s rh5s w Ce7n rd7e Rc7e Ec6x log: Sending forced win move in 1.13 seconds. bestmove: Cd7e rc7e Rc6n Ed6w Although if it then analyses the resulting position it quickly comes up with this winning line since it can now see the E capture: depth 16 pv dc8e Rc7n Ec6x Rc8s dd8w w Ce7s Ce6w Cd6w Cc6s b rh6s rh5s rh4s rh3s w Cc5n Cc6s Cc5n log: Sending forced win move in 2.97 seconds. bestmove: dc8e Rc7n Ec6x Rc8s dd8w I'm not sure yet whether it will be worth fixing this in OpFor since I'm not sure there is a simple way to do it that won't hurt overall performance. In any case though it is certainly an interesting position and led to quite a funny ending to the above game. Janzert 1 The actual comment in the code is, Code:
|
||
Title: Re: Goal line rabbits Post by jdb on Oct 26th, 2008, 5:38am This is how Clueless checks if the game is over. It was written before the rules were changed, so it could be simplified. The tests are reasonably fast and it handles temporarily goaling rabbits properly. The indentation on the code got messed up when I copied it, and I'm not really sure how to fix it. Code:
|
||
Title: Re: Goal line rabbits Post by tize on Nov 1st, 2008, 5:39am If you give the isEndState function information about who to take the next step and if that player already has taken some steps then you can have something like this in the code. Code:
The eval function should then give huge bonuses for to a player with rabbits on the goal line to minimize the cost of searching deeper at thoose nodes. I have to go and fix this in carlos... not that he will be able to beat Bomb after that... |
||
Title: Re: Goal line rabbits Post by Janzert on Mar 11th, 2009, 7:45pm Just as an update since I ran across this thread while browsing for something else. I did fix this in OpFor before the 2009CC. Janzert |
||
Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1! YaBB © 2000-2003. All Rights Reserved. |