| Author |
Message |
Andrew Hoddinott (Ajh)
| | Posted on Saturday, March 09, 2002 - 5:49 am: | |
I am trying to implement an old board game called Kensington. In fact, I have a working ZRF, but it plays pretty terribly. In Kensington (see e.g. http://www.tragsnart.co.uk/kenshub/kensington/kensington.htm for rules), a player who forms certain positions has the right to move one or two enemy pieces to any vacant space on the board. I have implemented this using (turn-order playerA (playerA playerB shift-move) (playerA playerB shift-move) playerB (playerB playerA shift-move) (playerB playerA shift-move) ) (pass-turn forced) and an off-board neutral marker piece that changes type so the shift-move can 'know' whether the conditions were met in the normal player turn and generate moves or a pass as appropriate. The problem is (well, I think the problem is) that the AI spends far too much time following the few possibilities which allow enemy pieces to be moved. Once all the pieces are in play each of 15 opposing pieces can be moved to any one of 42 empty spaces; possibly twice, before the next 'real' turn begins. This means even at search depth 9 with a claimed analysis of millions of positions the AI is not seeing more than 1 'real' enemy move ahead, and thus fails to spot even the most basic traps, or adopt any kind of strategy itself. Given there are so many empty spaces, for most purposes (except when we are _really_ moving an enemy piece _now_) I think I would get reasonable play by assuming that a suitably harmless-to-us and inconvenient-to-them space can be found for any piece when we come to move it. So during all secondary analysis I'd like to pretend we are going to _take_ the piece (i.e. one of only 15 possible moves) rather than move it, and just concentrate on the benefit to be had from removing it from where it is. Can anyone think of a way my move generator can tell whether its thinking about this move, or thinking ahead? Alternatively, the conditional turn feature requested elsewhere would at least allow moves down the paths that don't involve shifting enemy pieces to be analysed a little deeper in parallel with those that do, and have the side benefit of letting me do away with my state-marker pieces. Incidentally in 2-compter games (which continue seemingly indefinitely), the pieces show a tendency to gather in the 'earlier' [in order of consideration for shift-moves] points on my board, presumably because the 'later' points are more likely to be pruned from full analysis by whatever per-move time-limit has been set; this with the computer set to supposedly 'Large' variety. |
Roger J Cooper (Rogercooper)
| | Posted on Sunday, March 10, 2002 - 7:22 am: | |
I wonder whether you would get better results by moving the shifted piece to an off-board location, and then having a separate move to put it back on board. |
|