Please report any bugs or errors to Fergus Duniho
Syntax Error on line 0
The findpiece function expects a sequential array. It will not work with an associative array.
Edit the Settings File for Random Start Chess
For the sake of debugging, here is the full GAME Code program that this error occurred in. The lines have been properly indented to help you spot scope errors.
0 if == thismove null 1 say This preset enforces the rules and displays legal moves. 2 endif 3 echo Please report any bugs or errors to Fergus Duniho 4 set k findpiece k spaces 5 set K findpiece K spaces 6 set ep false 7 include chess3 8 set fps 1 9 clear 10 drop K any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 11 drop k any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 12 drop Q any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 13 drop q any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 14 drop B any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 15 drop b any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 16 drop B any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 17 drop b any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 18 drop N any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 19 drop n any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 20 drop N any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 21 drop n any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 22 drop R any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 23 drop r any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 24 drop R any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 25 drop r any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 26 drop P any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 27 drop p any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 28 drop P any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 29 drop p any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 30 drop P any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 31 drop p any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 32 drop P any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 33 drop p any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 34 drop P any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 35 drop p any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 36 drop P any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 37 drop p any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 38 drop P any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 39 drop p any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 40 drop P any a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 e1 e2 e3 e4 f1 f2 f3 f4 g1 g2 g3 g4 h1 h2 h3 h4 41 drop p any a5 a6 a7 a8 b5 b6 b7 b8 c5 c6 c7 c8 d5 d6 d7 d8 e5 e6 e7 e8 f5 f6 f7 f8 g5 g6 g7 g8 h5 h6 h7 h8 42 sub postauto1 43 if isupper old 44 die You may not capture your own pieces. 45 elseif islower moved 46 die You may not move one of your opponent's pieces. 47 endif 48 if != moved P 49 set ep false 50 if != space dest moved 51 die You may not change the type of this piece. 52 elseif capture 53 set nopvc 0 54 else 55 inc nopvc 56 endif 57 endif 58 if sub moved origin dest and match moved P K 59 elseif fn moved origin dest and match moved Q R B N 60 else 61 die You may not move a moved from origin to dest 62 endif 63 if sub checked #K 64 die You may not move into check. 65 endif 66 unsetflag origin dest 67 set posvar join "w" join fencode boardflags 68 inc #posvar 69 endsub 70 sub postauto2 71 if islower old 72 die You may not capture your own pieces. 73 elseif isupper moved 74 die You may not move one of your opponent's pieces. 75 endif 76 if != moved p 77 set ep false 78 if != space dest moved 79 die You may not change the type of this piece. 80 elseif capture 81 set nopvc 0 82 else 83 inc nopvc 84 endif 85 endif 86 if sub moved origin dest and match moved p k 87 elseif fn moved origin dest and match moved q r b n 88 else 89 die You may not move a moved from origin to dest 90 endif 91 if sub checked #k 92 die You may not move into check. 93 endif 94 unsetflag origin dest 95 set posvar join "b" join fencode boardflags 96 inc #posvar 97 endsub 98 set posvar join "b" join fencode boardflags 99 if >= var #posvar 3 100 say Three Times Repetition! Drawn Game! 101 drawn 102 elseif sub stalemated #K 103 if sub checked #K 104 say Checkmate! Black has won! 105 won 106 else 107 say Stalemate! The game is drawn. 108 drawn 109 endif 110 elseif >= #nopvc 100 111 say Fifty Moves Without Moving a Pawn or Capturing! Game Drawn! 112 drawn 113 elseif sub checked #K 114 say Check! 115 endif 116 end 117 118 lib chess3 119 set wpr 2 120 set bpr 7 121 set fps 2 122 set pzs 1 123 set wcastle c1 g1 124 set bcastle c8 g8 125 set wprom Q R B N 126 set bprom q r b n 127 setsystem maxmove 2 128 ban commands allmoves 129 allow moves 1 captures 1 promotions 2 130 def N checkleap #0 #1 1 2 131 def B checkride #0 #1 1 1 132 def R checkride #0 #1 1 0 133 def Q fn B #0 #1 or fn R #0 #1 134 def K checkleap #0 #1 1 1 or checkleap #0 #1 1 0 135 def M fn N #0 #1 or fn R #0 #1 136 def A fn N #0 #1 or fn B #0 #1 137 def n checkleap #0 #1 1 2 138 def b checkride #0 #1 1 1 139 def r checkride #0 #1 1 0 140 def q fn B #0 #1 or fn R #0 #1 141 def k checkleap #0 #1 1 1 or checkleap #0 #1 1 0 142 def m fn N #0 #1 or fn R #0 #1 143 def a fn N #0 #1 or fn B #0 #1 144 def C cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1 145 def V cond cond empty #0 capture (not empty #1) (checkhop #0 #1 1 1) (checkride #0 #1 1 1) and #1 146 def c cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1 147 def v cond cond empty #0 capture (not empty #1) (checkhop #0 #1 1 1) (checkride #0 #1 1 1) and #1 148 def P remove var ep and < rankname #1 var bpr and < rankname var ep rankname #1 and == filename var ep filename #1 and checkleap #0 #1 1 1 or and checkride #0 #1 0 1 == rankname #0 var wpr or checkleap #0 #1 0 1 and empty #1 or and islower space #1 checkleap #0 #1 1 1 and <= distance #0 #1 var fps and > rank #1 rank #0 149 def p remove var ep and > rankname #1 var wpr and > rankname var ep rankname #1 and == filename var ep filename #1 and checkleap #0 #1 1 1 or and checkride #0 #1 0 1 == rankname #0 var bpr or checkleap #0 #1 0 1 and empty #1 or and isupper space #1 checkleap #0 #1 1 1 and <= distance #0 #1 var fps and < rank #1 rank #0 150 def PL array where #0 0 2 where #0 0 1 where #0 -1 1 where #0 1 1 151 def pL array where #0 0 -2 where #0 0 -1 where #0 -1 -1 where #0 1 -1 152 def NL leaps #0 1 2 153 def BL rays #0 1 1 154 def RL rays #0 1 0 155 def VL rays #0 1 1 156 def CL rays #0 1 0 157 def QL merge rays #0 1 0 rays #0 1 1 158 def KL merge leaps #0 1 0 leaps #0 1 1 159 def AL merge leaps #0 1 2 rays #0 1 1 160 def ML merge rays #0 1 0 leaps #0 1 2 161 def nL leaps #0 1 2 162 def bL rays #0 1 1 163 def rL rays #0 1 0 164 def vL rays #0 1 1 165 def cL rays #0 1 0 166 def qL merge rays #0 1 0 rays #0 1 1 167 def kL merge leaps #0 1 0 leaps #0 1 1 168 def aL merge leaps #0 1 2 rays #0 1 1 169 def mL merge rays #0 1 0 leaps #0 1 2 170 def @ false 171 sub checked king 172 my from piece 173 if isupper cond empty #king moved space #king 174 def enemies onlylower 175 else 176 def enemies onlyupper 177 endif 178 for (from piece) fn enemies 179 if fn #piece #from #king 180 return #from 181 endif 182 next 183 return false 184 endsub 185 sub P from to 186 verify > rank #to rank #from 187 verify <= distance #to #from #fps 188 if capture 189 verify checkleap #from #to 1 1 190 set ep false 191 elseif checkleap #from #to 1 1 and #ep 192 verify == filename var ep filename #to 193 verify < rankname var ep rankname #to 194 verify < rankname #to var bpr 195 capture #ep 196 set ep false 197 elseif > distance #to #from 1 198 verify == rankname #from #wpr 199 verify checkride #from #to 0 1 200 set ep #to 201 else 202 verify checkleap #from #to 0 1 203 set ep false 204 endif 205 if onboard where #to 0 #pzs 206 if != space #to moved 207 die "You may not promote a Pawn until it reaches the promotion zone." 208 endif 209 elseif == P space #to 210 askpromote #wprom 211 elseif not match space #to var wprom 212 set np space #to 213 die "You may not promote your Pawn to a" #np 214 endif 215 set nopvc 0 216 return true 217 endsub 218 sub p from to 219 verify < rank #to rank #from 220 verify <= distance #to #from #fps 221 if capture 222 verify checkleap #from #to 1 1 223 set ep false 224 elseif checkleap #from #to 1 1 and #ep 225 verify == filename var ep filename #to 226 verify > rankname var ep rankname #to 227 verify > rankname #to var wpr 228 capture #ep 229 set ep false 230 elseif > distance #to #from 1 231 verify == rankname #from #bpr 232 verify checkride #from #to 0 1 233 set ep #to 234 else 235 verify checkleap #from #to 0 1 236 set ep false 237 endif 238 if != space #to moved and onboard where #to 0 neg #pzs 239 die You may not promote a Pawn until it reaches the promotion zone. 240 endif 241 if not onboard where #to 0 neg #pzs 242 if == p space #to 243 askpromote #bprom 244 elseif not match space #to var bprom 245 set np space #to 246 die You may not promote your Pawn to a #np 247 endif 248 endif 249 set nopvc 0 250 return true 251 endsub 252 sub K from to 253 if not fn K #from #to 254 verify sub castle #from #to and match #to var wcastle 255 endif 256 set K #to 257 return true 258 endsub 259 sub k from to 260 if not fn k #from #to 261 verify sub castle #from #to and match #to var bcastle 262 endif 263 set k #to 264 return true 265 endsub 266 sub castle from to 267 local c RPOS RDEST xdir 268 if not flag #from 269 die A King may not castle after it moves. 270 endif 271 if capture 272 die A King may not castle to an occupied space. 273 endif 274 set xdir sign minus file #to file #from 275 if not checkaride #from #to #xdir 0 276 die A King may not castle across any occupied space. 277 endif 278 set c #to 279 do 280 set c where #c #xdir 0 281 if flag #c 282 break 283 elseif not onboard #c 284 die No piece was found to castle with. 285 elseif not empty #c 286 die The King cannot castle with the piece at #c 287 endif 288 loop 289 set RPOS #c 290 move #to #from 291 if sub checked #from 292 die A King may not castle out of check. 293 endif 294 store 295 for c path #from #to 296 move #from #c 297 if sub checked #c 298 die A King may not castle through check. 299 endif 300 restore 301 next 302 move #from #to 303 set RDEST where #to neg #xdir 0 304 move #RPOS #RDEST 305 return true 306 endsub 307 sub castlepos from to 308 local c RPOS RDEST xdir safe 309 verify flag #from 310 verify empty #to 311 set xdir sign minus file #to file #from 312 verify checkaride #from #to #xdir 0 313 verify not sub checked #from 314 set c #to 315 do 316 set c where #c #xdir 0 317 if flag #c 318 break 319 endif 320 verify onboard #c 321 verify empty #c 322 loop 323 verify flag #c 324 set RPOS #c 325 store 326 for c path #from #to 327 move #from #c 328 set safe not sub checked #c 329 restore 330 verify #safe 331 next 332 move #from #to 333 set RDEST where #to neg #xdir 0 334 move #RPOS #RDEST 335 set safe not sub checked #to 336 restore 337 return #safe 338 endsub 339 sub stalemated kingpos 340 store 341 local from piece to 342 if isupper space #kingpos 343 def friends onlyupper 344 def friend isupper #0 345 set cspaces var wcastle 346 else 347 def friends onlylower 348 def friend islower #0 349 set cspaces var bcastle 350 endif 351 set royal space var kingpos 352 store 353 for (from piece) fn friends 354 for to fn join #piece L #from 355 if fn #piece #from #to and not fn friend space #to and onboard #to 356 move #from #to 357 if not sub checked cond == #from #kingpos #to #kingpos 358 setlegal #from #to 359 endif 360 endif 361 restore 362 next 363 next 364 for to var cspaces 365 if sub castlepos #kingpos #to 366 setlegal #kingpos #to 367 endif 368 next 369 return cond count system legalmoves false true 370 endsub 371 sub enpassant piece from to 372 local pe 373 verify not capture and #ep 374 verify == P toupper #piece 375 set pe join filename #to rankname #from 376 verify == #ep #pe 377 capture #ep 378 endsub 379 endlibfunctions
Array ( [N] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 2 ) [B] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [R] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 ) [Q] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => fn [6] => R [7] => #0 [8] => #1 ) [K] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 0 ) [M] => Array ( [0] => fn [1] => N [2] => #0 [3] => #1 [4] => or [5] => fn [6] => R [7] => #0 [8] => #1 ) [A] => Array ( [0] => fn [1] => N [2] => #0 [3] => #1 [4] => or [5] => fn [6] => B [7] => #0 [8] => #1 ) [n] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 2 ) [b] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [r] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 ) [q] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => fn [6] => R [7] => #0 [8] => #1 ) [k] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 0 ) [m] => Array ( [0] => fn [1] => N [2] => #0 [3] => #1 [4] => or [5] => fn [6] => R [7] => #0 [8] => #1 ) [a] => Array ( [0] => fn [1] => N [2] => #0 [3] => #1 [4] => or [5] => fn [6] => B [7] => #0 [8] => #1 ) [C] => Array ( [0] => cond [1] => cond [2] => empty [3] => #0 [4] => capture [5] => Array ( [0] => not [1] => empty [2] => #1 ) [6] => Array ( [0] => checkhop [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [7] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [8] => and [9] => #1 ) [V] => Array ( [0] => cond [1] => cond [2] => empty [3] => #0 [4] => capture [5] => Array ( [0] => not [1] => empty [2] => #1 ) [6] => Array ( [0] => checkhop [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [7] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [8] => and [9] => #1 ) [c] => Array ( [0] => cond [1] => cond [2] => empty [3] => #0 [4] => capture [5] => Array ( [0] => not [1] => empty [2] => #1 ) [6] => Array ( [0] => checkhop [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [7] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [8] => and [9] => #1 ) [v] => Array ( [0] => cond [1] => cond [2] => empty [3] => #0 [4] => capture [5] => Array ( [0] => not [1] => empty [2] => #1 ) [6] => Array ( [0] => checkhop [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [7] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [8] => and [9] => #1 ) [P] => Array ( [0] => remove [1] => var [2] => ep [3] => and [4] => < [5] => rankname [6] => #1 [7] => var [8] => bpr [9] => and [10] => < [11] => rankname [12] => var [13] => ep [14] => rankname [15] => #1 [16] => and [17] => == [18] => filename [19] => var [20] => ep [21] => filename [22] => #1 [23] => and [24] => checkleap [25] => #0 [26] => #1 [27] => 1 [28] => 1 [29] => or [30] => and [31] => checkride [32] => #0 [33] => #1 [34] => 0 [35] => 1 [36] => == [37] => rankname [38] => #0 [39] => var [40] => wpr [41] => or [42] => checkleap [43] => #0 [44] => #1 [45] => 0 [46] => 1 [47] => and [48] => empty [49] => #1 [50] => or [51] => and [52] => islower [53] => space [54] => #1 [55] => checkleap [56] => #0 [57] => #1 [58] => 1 [59] => 1 [60] => and [61] => <= [62] => distance [63] => #0 [64] => #1 [65] => var [66] => fps [67] => and [68] => > [69] => rank [70] => #1 [71] => rank [72] => #0 ) [p] => Array ( [0] => remove [1] => var [2] => ep [3] => and [4] => > [5] => rankname [6] => #1 [7] => var [8] => wpr [9] => and [10] => > [11] => rankname [12] => var [13] => ep [14] => rankname [15] => #1 [16] => and [17] => == [18] => filename [19] => var [20] => ep [21] => filename [22] => #1 [23] => and [24] => checkleap [25] => #0 [26] => #1 [27] => 1 [28] => 1 [29] => or [30] => and [31] => checkride [32] => #0 [33] => #1 [34] => 0 [35] => 1 [36] => == [37] => rankname [38] => #0 [39] => var [40] => bpr [41] => or [42] => checkleap [43] => #0 [44] => #1 [45] => 0 [46] => 1 [47] => and [48] => empty [49] => #1 [50] => or [51] => and [52] => isupper [53] => space [54] => #1 [55] => checkleap [56] => #0 [57] => #1 [58] => 1 [59] => 1 [60] => and [61] => <= [62] => distance [63] => #0 [64] => #1 [65] => var [66] => fps [67] => and [68] => < [69] => rank [70] => #1 [71] => rank [72] => #0 ) [PL] => Array ( [0] => array [1] => where [2] => #0 [3] => 0 [4] => 2 [5] => where [6] => #0 [7] => 0 [8] => 1 [9] => where [10] => #0 [11] => -1 [12] => 1 [13] => where [14] => #0 [15] => 1 [16] => 1 ) [pL] => Array ( [0] => array [1] => where [2] => #0 [3] => 0 [4] => -2 [5] => where [6] => #0 [7] => 0 [8] => -1 [9] => where [10] => #0 [11] => -1 [12] => -1 [13] => where [14] => #0 [15] => 1 [16] => -1 ) [NL] => Array ( [0] => leaps [1] => #0 [2] => 1 [3] => 2 ) [BL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [RL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 0 ) [VL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [CL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 0 ) [QL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [KL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [AL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 2 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [ML] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 2 ) [nL] => Array ( [0] => leaps [1] => #0 [2] => 1 [3] => 2 ) [bL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [rL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 0 ) [vL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [cL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 0 ) [qL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [kL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [aL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 2 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [mL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 2 ) [@] => Array ( [0] => false ) )uservar
Array ( [0] => Array ( [main] => Array ( [k] => e8 [K] => e1 [ep] => [wpr] => 2 [bpr] => 7 [fps] => 1 [pzs] => 1 [wcastle] => Array ( [0] => g1 [1] => c1 ) [bcastle] => Array ( [0] => g8 [1] => c8 ) [wprom] => Array ( [0] => N [1] => B [2] => R [3] => Q ) [bprom] => Array ( [0] => n [1] => b [2] => r [3] => q ) ) ) )mline
Array ( [0] => MoveLine Object ( [movenum] => 0 [move] => [level] => 0 [comment] => [length] => 0 [newturn] => [turn] => 0 ) )allmoves
Array ( )movelist
constants
Array ( )