Welcome, Guest. Please Login or Register.
Jun 26th, 2019, 9:44am

Home Home Help Help Search Search Members Members Login Login Register Register
Arimaa Forum Endgame Test Suite


   Arimaa Forum
   Arimaa
   Bot Development
(Moderator: supersamu)
   Endgame Test Suite
« Previous topic | Next topic »
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print
   Author  Topic: Endgame Test Suite  (Read 981 times)
jdb
Forum Guru
*****



Arimaa player #214

   


Gender: male
Posts: 682
Endgame Test Suite
« on: Nov 27th, 2011, 3:43pm »
Quote Quote Modify Modify

I put together a test suite of 100 endgame test positions from the tablebases. The positions start out easy and get more difficult later. In all of the positions there is only one winning move. All other moves lose.
 
At 1 second per position clueless finds the correct move 49 times and sees the win in 17 positions.  
 
Code:

# Created by jdb
# Nov 27 2011
#
# All of these positions have only one winning move
# All other moves lose the game
# The side to move is the colour of the first piece in the piece list
#
# Faster wins may be possible using repetition
#
 
# Won in 1
 
Position.001 = ra4 Ca1 Rc7  
BestMove.001 = ra4s ra3e rb3s rb2s
 
Position.002 = Ca1 Rb1 re2  
BestMove.002 = Ca1n Ca2e Cb2e Cc2e
 
Position.003 = ca1 rb3 Cb1 Rd7  
BestMove.003 = rb3s ca1n rb2e rc2s
 
Position.004 = ca1 ra2 Cb1 Rd6  
BestMove.004 = ra2e ca1n rb2e rc2s
 
Position.005 = cb1 rh5 Da1 Rb4  
BestMove.005 = rh5s rh4s rh3s rh2s
 
# Won in 2
 
Position.006 = cd1 ra5 Da1 Rd6  
BestMove.006 = cd1n cd2n cd3n cd4n
 
Position.007 = Da1 Rc4 cb1 rg5  
BestMove.007 = Rc4e Rd4e Re4e Rf4e
 
Position.008 = Ca1 Rb1 ra2 rb5  
BestMove.008 = Rb1n Rb2n Rb3n pass
 
Position.009 = ra5 rg6 Ca1 Rd4  
BestMove.009 = ra5e rb5e rc5e rg6s
 
Position.010 = rc5 rd6 Ca1 Rd4  
BestMove.010 = rc5e rd5e re5s re4e
 
# Won in 3
 
Position.011 = ra6 rc7 Ca1 Rc4  
BestMove.011 = rc7e rd7s rd6s rd5s
 
Position.012 = Ca1 Rd2 rb3 re5  
BestMove.012 = Rd2e Re2n Re3n Ca1n
 
Position.013 = Ca1 Rc4 re2 rd6  
BestMove.013 = Ca1e Cb1e Cc1e Cd1n
 
Position.014 = ca1 rb6 Ce1 Ra6  
BestMove.014 = ca1n ca2n ca3n ca4n
 
Position.015 = rc8 Ra2 Ca8  
BestMove.015 = rc8s rc7e rd7s rd6s
 
# Won in 4
 
Position.016 = ca1 rb4 Cb2 Ra4  
BestMove.016 = ca1n ca2n ca3e Ra4s
 
Position.017 = Da1 Rc1 cf2 rd5  
BestMove.017 = Da1e Db1n Db2e Dc2e
 
Position.018 = cd4 rh8 Da1 Ra5  
BestMove.018 = cd4w cc4w cb4n cb5n
 
Position.019 = ra6 rf7 ra8 Ca1 Rd4  
BestMove.019 = ra6s ra5e rb5e rc5e
 
Position.020 = Ca1 Rd1 ra3 rb5 ra6  
BestMove.020 = Rd1n Rd2n Rd3n Ca1n
 
# Won in 5
 
Position.021 = Ca1 Rb2 ra4 rb4 ra7  
BestMove.021 = Ca1n Ca2n ra4n Ca3n
 
Position.022 = rc6 rc7 rc8 Cc1 Ra4  
BestMove.022 = rc6s rc5w rb5w rc8w
 
Position.023 = cd2 rc8 Da1 Rb1  
BestMove.023 = rc8s rc7e rd7s rd6s
 
Position.024 = Da1 Rc2 cg3 re5  
BestMove.024 = Da1e Db1e Dc1e Dd1n
 
Position.025 = Da1 Ra3 cc1 rc4 ra6  
BestMove.025 = Da1e Db1n Db2n Db3n
 
# Won in 6
 
Position.026 = Da1 Rb4 cg1 rd4 rb5  
BestMove.026 = Da1e Db1e Dc1e Dd1n
 
Position.027 = cb2 ra7 rb8 Da1 Rd4  
BestMove.027 = cb2n cb3n cb4e cc4n
 
Position.028 = rh7 rb8 rh8 Ce1 Ra4  
BestMove.028 = rb8s rb7s rb6s rb5w
 
Position.029 = cf8 rh8 Db1 Rc5  
BestMove.029 = cf8s cf7w ce7w cd7w
 
Position.030 = Da1 Rb1 cd4 rg7  
BestMove.030 = Da1n Da2e Db2e Dc2e
 
# Won in 7
 
Position.031 = Dc1 Rd1 cc4 rh5  
BestMove.031 = Rd1e Re1e Rf1e Rg1e
 
Position.032 = ce6 rg8 Da2 Rb5  
BestMove.032 = ce6w cd6n cd7w cc7w
 
Position.033 = rd6 re7 rf8 Cd2 Ra3  
BestMove.033 = rd6s rd5w rc5w rb5w
 
Position.034 = Cc1 Ra4 rg5 ra8 rh8  
BestMove.034 = Cc1e Cd1e Ce1e Cf1n
 
Position.035 = cd3 rc7 rb8 Da1 Ra5  
BestMove.035 = cd3n cd4w cc4w cb4n
 
# Won in 8
 
Position.036 = cg2 rc8 Ra1 Dh5  
BestMove.036 = cg2w cf2w ce2w cd2w
 
Position.037 = cf1 rc8 Rb1 Df7  
BestMove.037 = rc8w cf1w ce1w cd1w
 
Position.038 = cb1 rg6 ra7 Da1 Rd4  
BestMove.038 = rg6s ra7e rb7e rc7e
 
Position.039 = Ce1 Rb3 ra2 ra7 rb8  
BestMove.039 = Ce1w Cd1w Cc1w Cb1n
 
Position.040 = cd2 rc7 re8 Da1 Ra4  
BestMove.040 = rc7w rb7w cd2n cd3n
 
 
# Won in 9
 
Position.041 = ca1 rc8 Rc4 Ce5  
BestMove.041 = ca1e cb1n cb2n cb3n
 
Position.042 = Rc1 Cg1 Ra3 ca1 rb4  
BestMove.042 = Rc1n Rc2w Rb2n Ra3n
 
Position.043 = ca1 rb8 Rc1 Ch1 Ra5  
BestMove.043 = rb8w ca1n ca2n ca3n
 
Position.044 = ca2 ca4 rb7 Da1 Rd1  
BestMove.044 = ca4e cb4e cc4e cd4s
 
Position.045 = ch1 cd3 rb7 Da1 Rb1  
BestMove.045 = rb7e rc7e rd7e cd3n
 
# Won in 10
 
Position.046 = cb2 cg4 ra8 Da1 Rb1  
BestMove.046 = ra8e rb8e cb2n cb3n
 
Position.047 = Da1 Rd1 cb1 cd3 rb8  
BestMove.047 = Da1n Da2e Db2e Dc2e
 
Position.048 = Da1 Rc2 ca3 re7 rh8  
BestMove.048 = Rc2e Rd2n Rd3n Da1n
 
Position.049 = Rc1 Ca5 ca3 re8  
BestMove.049 = Rc1e Rd1e Re1e Rf1e
 
Position.050 = ca1 re7 Rb2 Cd2 Ra3  
BestMove.050 = re7e rf7e rg7e ca1n
 
# Won in 11
 
Position.051 = ca5 rh8 Rc1 Ch6  
BestMove.051 = rh8w rg8w rf8w ca5e
 
Position.052 = cb1 rf8 Rc1 Rd1 Ce3  
BestMove.052 = cb1n cb2e cc2e Rc1n
 
Position.053 = Ra1 Rb1 Cf1 cd1 rb4  
BestMove.053 = Ra1n Rb1n Rb2n Cf1w
 
Position.054 = Ra1 Db1 re2 re7 cb8  
BestMove.054 = Db1e Dc1e Dd1n pass
 
Position.055 = re7 rc8 ch8 Db1 Rd5  
BestMove.055 = ch8w cg8w cf8w ce8w
 
# Won in 12
 
Position.056 = cg5 rc7 Rb2 Ce4  
BestMove.056 = rc7w cg5w cf5w ce5w
 
Position.057 = ch5 rb7 Ca2 Rb2  
BestMove.057 = ch5w cg5w cf5w ce5w
 
Position.058 = cg2 ca3 ra6 Da1 Ra5  
BestMove.058 = ca3n ca4e Ra5s ra6s
 
Position.059 = Db1 Rc2 cb3 rg6 ra7  
BestMove.059 = Rc2e Rd2n Rd3n Db1n
 
Position.060 = ra7 ra8 ch8 Da2 Rd2  
BestMove.060 = ch8w cg8w cf8w ce8w
 
# Won in 13
 
Position.061 = rd5 rd7 cb8 Ra3 Dd6  
BestMove.061 = cb8s cb7s pass
 
Position.062 = De1 Ra5 rd4 ca8 rb8  
BestMove.062 = Ra5e Rb5e Rc5e De1n
 
Position.063 = Rd2 Ch4 cc4 re7  
BestMove.063 = Ch4w Cg4w Cf4w Ce4w
 
Position.064 = Rc1 Ch2 Rd4 cd3 rb7  
BestMove.064 = Rc1n Ch2w Cg2w Cf2w
 
Position.065 = ca3 re7 Rd2 Cd3  
BestMove.065 = re7e ca3e cb3n cb4e
 
# Won in 14
 
Position.066 = ca6 rg7 Rc2 Ch4  
BestMove.066 = rg7w rf7w ca6s ca5e
 
Position.067 = ca2 ch4 rb8 Da1 Rc1  
BestMove.067 = rb8s rb7e rc7e rd7e
 
Position.068 = Dc2 Rd5 rd4 cd8 re8  
BestMove.068 = Rd5e Re5e Rf5e Dc2e
 
Position.069 = Da1 Rd1 cb4 cf4 rc7  
BestMove.069 = Da1e Db1e Dc1n pass
 
Position.070 = Rb1 Cc1 Dg1 da1 ra6  
BestMove.070 = Cc1n Dg1w Df1w De1w
 
# Won in 15
 
Position.071 = Ra2 Ch2 Dh4 da1 rc8  
BestMove.071 = Dh4w Dg4w Df4w De4w
 
Position.072 = db1 re8 Rd1 Cf2 Db4  
BestMove.072 = re8w rd8w rc8w db1e
 
Position.073 = db1 rd8 Rd1 Cf2 Db4  
BestMove.073 = rd8w rc8w db1e pass
 
Position.074 = cd3 cg5 rc7 Ra1 Dc1  
BestMove.074 = rc7e cd3n cd4w cc4w
 
Position.075 = Da1 Rc1 ca2 cf4 rf8  
BestMove.075 = Rc1e Rd1e Da1e Db1n
 
# Won in 16
 
Position.076 = Da1 Rb1 ch4 ce6 rh8  
BestMove.076 = Da1n Da2e Db2e Dc2e
 
Position.077 = dc7 ra8 Ca1 Rd1 Dh7  
BestMove.077 = ra8e dc7e dd7s dd6s
 
Position.078 = db6 rg8 Rd1 Ch2 Da7  
BestMove.078 = db6s db5s db4s db3s
 
Position.079 = Rc2 Cc3 Dh3 dc1 ra8  
BestMove.079 = Cc3n Dh3w Dg3n Dg4w
 
Position.080 = Ra1 De1 cg4 ca5 rh7  
BestMove.080 = Ra1e Rb1e De1e Df1n
 
# Won in 17
 
Position.081 = Ra1 Df1 cc1 ce4 rc7  
BestMove.081 = Df1w De1w Dd1n cc1e
 
Position.082 = cg5 cb7 rf8 Dd1 Rc2  
BestMove.082 = rf8s rf7e rg7s cb7s
 
Position.083 = Rd1 Cb3 Dh6 de1 ra8  
BestMove.083 = Dh6s Dh5s Dh4s Dh3w
 
Position.084 = Rd1 Cb2 Dg5 de1 ra8  
BestMove.084 = Cb2n Dg5s Dg4s pass
 
Position.085 = Rc1 Cb2 Da7 dd1 re8  
BestMove.085 = Cb2e Rc1w Rb1w Da7e
 
# Won in 18
 
Position.086 = Rd1 Ce1 Dh8 rg5 dh5  
BestMove.086 = Ce1e Cf1e Cg1n Dh8s
 
Position.087 = ch5 rb7 cc8 Da2 Rb2  
BestMove.087 = rb7e rc7e rd7e re7e
 
Position.088 = cg5 ch5 rh8 Dd1 Ra2  
BestMove.088 = cg5w cf5w ch5w cg5w
 
Position.089 = Ra1 Db3 cg5 cb6 rg8  
BestMove.089 = Ra1e Rb1e Db3n Db4e
 
Position.090 = Ra1 Dh1 ca4 rb7 ch7  
BestMove.090 = Ra1e Dh1w Dg1w Df1w
 
 
# Won in 19
 
Position.091 = Rd1 Ce4 Dc8 rb5 db7  
BestMove.091 = Ce4w Cd4w Cc4w Cb4s
 
Position.092 = Ra3 Dh3 cb2 ch6 ra7  
BestMove.092 = Ra3n Dh3w Dg3n Dg4w
 
Position.093 = Rc1 Dh3 cd3 ch6 re7  
BestMove.093 = Rc1w Rb1w Dh3w Dg3n
 
Position.094 = Ra1 Dh8 cb6 ce7 rb8  
BestMove.094 = Dh8w Dg8w Df8w De8w
 
Position.095 = Rc1 Df8 cc5 cd6 ra8  
BestMove.095 = Df8s Df7w De7s De6s
 
# Won in 20
 
Position.096 = Db1 Rd2 Cg7 da1 cc4 ra5  
BestMove.096 = Rd2e Re2e Rf2e Db1n
 
# Won in 25
 
Position.097 = Db1 Ra2 Ce4 da1 ra7 cb7  
BestMove.097 = Db1n Ra2n Ra3n Db2n
 
# Won in 30
 
Position.098 = Dd1 Ra2 Cb3 da1 cf5 ra8  
BestMove.098 = Dd1w Dc1w Db1n Ra2n
 
# Won in 35
 
Position.099 = Ch1 Dd2 Rb3 da1 ce7 rd8  
BestMove.099 = Rb3n Dd2w Dc2w Db2w
 
# Won in 40
 
Position.100 = Rc2 Cd4 Df4 dc1 cf1 rc7  
BestMove.100 = Cd4s Df4w De4w pass
 
 
 
IP Logged
rbarreira
Forum Guru
*****



Arimaa player #1621

   


Gender: male
Posts: 605
Re: Endgame Test Suite
« Reply #1 on: Nov 27th, 2011, 4:05pm »
Quote Quote Modify Modify

Nice! I will definitely try those.
 
Quote:
At 1 second per position clueless finds the correct move 49 times and sees the win in 17 positions.

 
What do you mean by seeing the win without finding the correct move?
 
edit - does it mean it finds a win which isn't the shortest?
« Last Edit: Nov 27th, 2011, 4:07pm by rbarreira » IP Logged
clyring
Forum Guru
*****



Arimaa player #6218

   


Gender: female
Posts: 299
Re: Endgame Test Suite
« Reply #2 on: Nov 27th, 2011, 4:37pm »
Quote Quote Modify Modify

I think he means something more to the effect of 'knows that the winning move leaves no defense.'
IP Logged



Poke me about restarting the Endless Endgame Event (EEE)!
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print

« Previous topic | Next topic »

Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB 2000-2003. All Rights Reserved.