Please report any bugs or errors to Fergus Duniho
Syntax Error on line 194
The function 'l' has not been defined. Its arguments are g12 h2
Edit the Settings File for Multi-Omega 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 setflag b2 b13 m2 m13 h2 h13 5 set k findpiece k spaces 6 set K findpiece K spaces 7 set ep false 8 include chess3 9 set wpr 4 10 set bpr 11 11 set fps 3 12 set pzs 2 13 set wcastle d1 l1 14 set bcastle d13 l13 15 set wprom Q LAD LAE APQ G Z GU L R B N 16 set bprom q lad lae apq g z gu l r b n 17 set steps array 1 2 3 4 5 6 7 18 setsystem maxmove 2 19 ban commands allmoves 20 allow moves 1 captures 1 promotions 2 21 def ZL leaps #0 2 3 22 def gu fn k #0 #1 23 def lad checktwostep #0 #1 0 1 0 1 24 def z checkleap #0 #1 2 3 25 def G checkaleap #0 #1 1 1 or checkaleap #0 #1 1 -1 or checkleap #0 #1 0 1 26 def g fn G #0 #1 27 def lae checktwostep #0 #1 1 1 1 1 28 def apq fn B #0 #1 or checkride #0 #1 1 2 29 sub postauto1 30 if isupper old 31 die You may not capture your own pieces. 32 elseif islower moved 33 die You may not move one of your opponent's pieces. 34 endif 35 if != moved P 36 set ep false 37 if != space dest moved 38 die You may not change the type of this piece. 39 elseif capture 40 set nopvc 0 41 else 42 inc nopvc 43 endif 44 endif 45 if sub moved origin dest and match moved P K 46 elseif fn moved origin dest and match moved Q LAD LAE APQ G Z GU L R B N 47 else 48 die You may not move a moved from origin to dest 49 endif 50 sub K from to 51 if not fn K #from #to 52 verify match #to var wcastle 53 gosub castle #from #to 54 endif 55 set K #to 56 return true 57 endsub 58 if sub checked #K 59 die You may not move into check. 60 endif 61 unsetflag origin dest 62 set posvar join "w" join fencode boardflags 63 inc #posvar 64 endsub 65 sub postauto2 66 if islower old 67 die You may not capture your own pieces. 68 elseif isupper moved 69 die You may not move one of your opponent's pieces. 70 endif 71 if != moved p 72 set ep false 73 if != space dest moved 74 die You may not change the type of this piece. 75 elseif capture 76 set nopvc 0 77 else 78 inc nopvc 79 endif 80 endif 81 if sub moved origin dest and match moved p k 82 elseif fn moved origin dest and match moved q lad lae apq g z gu l r b n 83 else 84 die You may not move a moved from origin to dest 85 endif 86 sub k from to 87 if not fn k #from #to 88 verify match #to var bcastle 89 gosub castle #from #to 90 endif 91 set k #to 92 return true 93 endsub 94 if sub checked #k 95 die You may not move into check. 96 endif 97 unsetflag origin dest 98 set posvar join "b" join fencode boardflags 99 inc #posvar 100 endsub 101 set posvar join "b" join fencode boardflags 102 if >= var #posvar 3 103 say Three Times Repetition! Drawn Game! 104 drawn 105 elseif sub stalemated #K 106 if sub checked #K 107 say Checkmate! Black has won! 108 won 109 else 110 say Stalemate! The game is drawn. 111 drawn 112 endif 113 elseif >= #nopvc 100 114 say Fifty Moves Without Moving a Pawn or Capturing! Game Drawn! 115 drawn 116 elseif sub checked #K 117 say Check! 118 endif 119 store 120 for (from piece) fn friends 121 for to fn join #piece L #from 122 if fn #piece #from #to and not fn friend space #to and onboard #to 123 move #from #to 124 if not sub checked cond == #from #kingpos #to #kingpos 125 setlegal #from #to 126 endif 127 endif 128 restore 129 next 130 next 131 end 132 133 lib chess3 134 set wpr 2 135 set bpr 7 136 set fps 2 137 set pzs 1 138 set wcastle c1 g1 139 set bcastle c8 g8 140 set wprom Q R B N 141 set bprom q r b n 142 setsystem maxmove 2 143 ban commands allmoves 144 allow moves 1 captures 1 promotions 2 145 def N checkleap #0 #1 1 2 146 def B checkride #0 #1 1 1 147 def R checkride #0 #1 1 0 148 def Q fn B #0 #1 or fn R #0 #1 149 def K checkleap #0 #1 1 1 or checkleap #0 #1 1 0 150 def M fn N #0 #1 or fn R #0 #1 151 def A fn N #0 #1 or fn B #0 #1 152 def n checkleap #0 #1 1 2 153 def b checkride #0 #1 1 1 154 def r checkride #0 #1 1 0 155 def q fn B #0 #1 or fn R #0 #1 156 def k checkleap #0 #1 1 1 or checkleap #0 #1 1 0 157 def m fn N #0 #1 or fn R #0 #1 158 def a fn N #0 #1 or fn B #0 #1 159 def C cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1 160 def V cond cond empty #0 capture (not empty #1) (checkhop #0 #1 1 1) (checkride #0 #1 1 1) and #1 161 def c cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1 162 def v cond cond empty #0 capture (not empty #1) (checkhop #0 #1 1 1) (checkride #0 #1 1 1) and #1 163 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 164 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 165 def PL array where #0 0 2 where #0 0 1 where #0 -1 1 where #0 1 1 166 def pL array where #0 0 -2 where #0 0 -1 where #0 -1 -1 where #0 1 -1 167 def NL leaps #0 1 2 168 def BL rays #0 1 1 169 def RL rays #0 1 0 170 def VL rays #0 1 1 171 def CL rays #0 1 0 172 def QL merge rays #0 1 0 rays #0 1 1 173 def KL merge leaps #0 1 0 leaps #0 1 1 174 def AL merge leaps #0 1 2 rays #0 1 1 175 def ML merge rays #0 1 0 leaps #0 1 2 176 def nL leaps #0 1 2 177 def bL rays #0 1 1 178 def rL rays #0 1 0 179 def vL rays #0 1 1 180 def cL rays #0 1 0 181 def qL merge rays #0 1 0 rays #0 1 1 182 def kL merge leaps #0 1 0 leaps #0 1 1 183 def aL merge leaps #0 1 2 rays #0 1 1 184 def mL merge rays #0 1 0 leaps #0 1 2 185 def @ false 186 sub checked king 187 my from piece 188 if isupper cond empty #king moved space #king 189 def enemies onlylower 190 else 191 def enemies onlyupper 192 endif 193 for (from piece) fn enemies 194 if fn #piece #from #king 195 return #from 196 endif 197 next 198 return false 199 endsub 200 sub P from to 201 verify > rank #to rank #from 202 verify <= distance #to #from #fps 203 if capture 204 verify checkleap #from #to 1 1 205 set ep false 206 elseif checkleap #from #to 1 1 and #ep 207 verify == filename var ep filename #to 208 verify < rankname var ep rankname #to 209 verify < rankname #to var bpr 210 capture #ep 211 set ep false 212 elseif > distance #to #from 1 213 verify == rankname #from #wpr 214 verify checkride #from #to 0 1 215 set ep #to 216 else 217 verify checkleap #from #to 0 1 218 set ep false 219 endif 220 if onboard where #to 0 #pzs 221 if != space #to moved 222 die "You may not promote a Pawn until it reaches the promotion zone." 223 endif 224 elseif == P space #to 225 askpromote #wprom 226 elseif not match space #to var wprom 227 set np space #to 228 die "You may not promote your Pawn to a" #np 229 endif 230 set nopvc 0 231 return true 232 endsub 233 sub p from to 234 verify < rank #to rank #from 235 verify <= distance #to #from #fps 236 if capture 237 verify checkleap #from #to 1 1 238 set ep false 239 elseif checkleap #from #to 1 1 and #ep 240 verify == filename var ep filename #to 241 verify > rankname var ep rankname #to 242 verify > rankname #to var wpr 243 capture #ep 244 set ep false 245 elseif > distance #to #from 1 246 verify == rankname #from #bpr 247 verify checkride #from #to 0 1 248 set ep #to 249 else 250 verify checkleap #from #to 0 1 251 set ep false 252 endif 253 if != space #to moved and onboard where #to 0 neg #pzs 254 die You may not promote a Pawn until it reaches the promotion zone. 255 endif 256 if not onboard where #to 0 neg #pzs 257 if == p space #to 258 askpromote #bprom 259 elseif not match space #to var bprom 260 set np space #to 261 die You may not promote your Pawn to a #np 262 endif 263 endif 264 set nopvc 0 265 return true 266 endsub 267 sub K from to 268 if not fn K #from #to 269 verify sub castle #from #to and match #to var wcastle 270 endif 271 set K #to 272 return true 273 endsub 274 sub k from to 275 if not fn k #from #to 276 verify sub castle #from #to and match #to var bcastle 277 endif 278 set k #to 279 return true 280 endsub 281 sub castle from to 282 local c RPOS RDEST xdir 283 if not flag #from 284 die A King may not castle after it moves. 285 endif 286 if capture 287 die A King may not castle to an occupied space. 288 endif 289 set xdir sign minus file #to file #from 290 if not checkaride #from #to #xdir 0 291 die A King may not castle across any occupied space. 292 endif 293 set c #to 294 do 295 set c where #c #xdir 0 296 if flag #c 297 break 298 elseif not onboard #c 299 die No piece was found to castle with. 300 elseif not empty #c 301 die The King cannot castle with the piece at #c 302 endif 303 loop 304 set RPOS #c 305 move #to #from 306 if sub checked #from 307 die A King may not castle out of check. 308 endif 309 store 310 for c path #from #to 311 move #from #c 312 if sub checked #c 313 die A King may not castle through check. 314 endif 315 restore 316 next 317 move #from #to 318 set RDEST where #to neg #xdir 0 319 move #RPOS #RDEST 320 return true 321 endsub 322 sub castlepos from to 323 local c RPOS RDEST xdir safe 324 verify flag #from 325 verify empty #to 326 set xdir sign minus file #to file #from 327 verify checkaride #from #to #xdir 0 328 verify not sub checked #from 329 set c #to 330 do 331 set c where #c #xdir 0 332 if flag #c 333 break 334 endif 335 verify onboard #c 336 verify empty #c 337 loop 338 verify flag #c 339 set RPOS #c 340 store 341 for c path #from #to 342 move #from #c 343 set safe not sub checked #c 344 restore 345 verify #safe 346 next 347 move #from #to 348 set RDEST where #to neg #xdir 0 349 move #RPOS #RDEST 350 set safe not sub checked #to 351 restore 352 return #safe 353 endsub 354 sub stalemated kingpos 355 store 356 local from piece to 357 if isupper space #kingpos 358 def friends onlyupper 359 def friend isupper #0 360 set cspaces var wcastle 361 else 362 def friends onlylower 363 def friend islower #0 364 set cspaces var bcastle 365 endif 366 set royal space var kingpos 367 store 368 for (from piece) fn friends 369 for to fn join #piece L #from 370 if fn #piece #from #to and not fn friend space #to and onboard #to 371 move #from #to 372 if not sub checked cond == #from #kingpos #to #kingpos 373 setlegal #from #to 374 endif 375 endif 376 restore 377 next 378 next 379 for to var cspaces 380 if sub castlepos #kingpos #to 381 setlegal #kingpos #to 382 endif 383 next 384 return cond count system legalmoves false true 385 endsub 386 sub enpassant piece from to 387 local pe 388 verify not capture and #ep 389 verify == P toupper #piece 390 set pe join filename #to rankname #from 391 verify == #ep #pe 392 capture #ep 393 endsub 394 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 ) [ZL] => Array ( [0] => leaps [1] => #0 [2] => 2 [3] => 3 ) [gu] => Array ( [0] => fn [1] => k [2] => #0 [3] => #1 ) [lad] => Array ( [0] => checktwostep [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => 0 [6] => 1 ) [z] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 3 ) [G] => Array ( [0] => checkaleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => 1 [10] => -1 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [g] => Array ( [0] => fn [1] => G [2] => #0 [3] => #1 ) [lae] => Array ( [0] => checktwostep [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => 1 [6] => 1 ) [apq] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => checkride [6] => #0 [7] => #1 [8] => 1 [9] => 2 ) [friends] => Array ( [0] => onlyupper ) [friend] => Array ( [0] => isupper [1] => #0 ) [enemies] => Array ( [0] => onlylower ) )uservar
Array ( [0] => Array ( [main] => Array ( [k] => h13 [K] => h2 [ep] => [wpr] => 4 [bpr] => 11 [fps] => 3 [pzs] => 2 [wcastle] => Array ( [0] => l1 [1] => d1 ) [bcastle] => Array ( [0] => l13 [1] => d13 ) [wprom] => Array ( [0] => N [1] => B [2] => R [3] => L [4] => GU [5] => Z [6] => G [7] => APQ [8] => LAE [9] => LAD [10] => Q ) [bprom] => Array ( [0] => n [1] => b [2] => r [3] => l [4] => gu [5] => z [6] => g [7] => apq [8] => lae [9] => lad [10] => q ) [steps] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 ) [posvar] => bg------------g-rnb{gu}{lad}qk{lad}{gu}bnr--1z{lae}{apq}1ll1{apq}{lae}z1--pppppppppppp--12--12--12--12--12--12--PPPPPPPPPPPP--1Z{LAE}{APQ}1LL1{APQ}{LAE}Z1--RNB{GU}{LAD}QK{LAD}{GU}BNR-G------------G,b13,b2,h13,h2,m13,m2 [cspaces] => Array ( [0] => l1 [1] => d1 ) [royal] => K ) ) [2] => Array ( [stalemated] => Array ( [subargs] => Array ( [0] => h2 ) ) [main] => Array ( [kingpos] => h2 [from] => b4 [piece] => P [to] => b6 ) ) [8] => Array ( [checked] => Array ( [subargs] => Array ( [0] => h2 ) [from] => g12 [piece] => l ) [main] => Array ( [king] => h2 ) ) )mline
Array ( [0] => MoveLine Object ( [movenum] => 0 [move] => [level] => 0 [comment] => [length] => 0 [newturn] => [turn] => 0 ) )allmoves
Array ( )movelist
constants
Array ( )