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 endlib

functions

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 ( )