This preset uses Antoine Fourriere's code for this game. Since he is no longer active as an editor, and this code is based on very paradigms, and has for some reason stopped working properly, Fergus Duniho has stored this as a new preset in order to replace Antoine's preset with new code.

Syntax Error on line 342

Function l requires more arguments than have been passed to it.

Edit the Settings File for Ultima

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 echo This preset uses Antoine Fourriere's old code for this game. Since he is no longer active as an editor, and this code is based on very old paradigms, and has for some reason stopped working properly, Fergus Duniho has stored this as a new preset in order to replace Antoine's old preset with new code.
   1 set k e8
   2 set K d1
   3 include ultima
   4 sub postauto1
   5   if and equal origin #oldorigin equal moved #oldmoved
   6     setglobal lastmoved old
   7     setglobal "origin" dest
   8   endif
   9   if islower moved
  10     die You may not move the pieces of your opponent.
  11   endif
  12   set suicide equal origin dest
  13   if and isupper old not #suicide
  14     die You may not capture your own pieces, except by suicide.
  15   endif
  16   if and and islower old not #suicide not equal moved K
  17     die Only the King (or the Chameleon) may capture by replacement
  18   endif
  19   set immobilized or or fn neighbor origin i and equal moved I fn neighbor origin x and equal moved K equal old i
  20   if and #immobilized not #suicide
  21     die An immobilized piece may only commit suicide.
  22   endif
  23   if and not #immobilized #suicide
  24     die Only an immobilized piece may only commit suicide.
  25   endif
  26   if and unequal space dest moved not #suicide
  27     die You may not change the type of this piece.
  28   endif
  29   set legal false
  30   if match moved K C X I W L P
  31     set legal fn moved origin dest
  32     if equal moved K
  33       set K dest
  34     endif
  35     if match moved W X
  36       set target where origin cmp file origin file dest cmp rank origin rank dest
  37       if or and equal moved W islower space #target equal space #target w
  38         capture #target
  39       endif
  40     endif
  41     if match moved C X
  42       set target1 join filename dest rankname #K
  43       set target2 join filename #K rankname dest
  44       if or and equal moved C islower space #target1 equal space #target1 c
  45         capture #target1
  46       endif
  47       if or and equal moved C islower space #target2 equal space #target2 c
  48         capture #target2
  49       endif
  50     endif
  51     if match moved L X
  52       set step origin
  53       if not fn Q origin dest
  54         set step where origin cmp file dest file origin cmp rank dest rank origin
  55         if unequal #step dest
  56           capture #step
  57           set step where #step cmp file dest file origin cmp rank dest rank origin
  58         endif
  59         if unequal #step dest
  60           capture #step
  61           set step where #step cmp file dest file origin cmp rank dest rank origin
  62         endif
  63         if unequal #step dest
  64           capture #step
  65           set step where #step cmp file dest file origin cmp rank dest rank origin
  66         endif
  67         if unequal #step dest
  68           capture #step
  69           set step where #step cmp file dest file origin cmp rank dest rank origin
  70         endif
  71         if unequal #step dest
  72           capture #step
  73           set step where #step cmp file dest file origin cmp rank dest rank origin
  74         endif
  75         if unequal #step dest
  76           capture #step
  77         endif
  78       endif
  79     endif
  80     if fn R origin dest and match moved P X
  81       set target1 where dest 1 0
  82       if and and islower space #target1 isupper what dest 2 0 or equal moved P equal space #target1 p
  83         capture #target1
  84       endif
  85       set target2 where dest 0 1
  86       if and and islower space #target2 isupper what dest 0 2 or equal moved P equal space #target2 p
  87         capture #target2
  88       endif
  89       set target3 where dest -1 0
  90       if and and islower space #target3 isupper what dest -2 0 or equal moved P equal space #target3 p
  91         capture #target3
  92       endif
  93       set target4 where dest 0 -1
  94       if and and islower space #target4 isupper what dest 0 -2 or equal moved P equal space #target4 p
  95         capture #target4
  96       endif
  97     endif
  98   endif
  99   if and not #suicide not var legal
 100     die You may not move a moved from origin to dest
 101   endif
 102   if sub checked #K
 103     die You may not move into check.
 104   endif
 105   set oldorigin origin
 106   set oldmoved moved
 107 endsub
 108 sub postauto2
 109   if and equal origin #oldorigin equal moved #oldmoved
 110     setglobal lastmoved old
 111     setglobal "origin" dest
 112   endif
 113   if isupper moved
 114     die You may not move the pieces of your opponent.
 115   endif
 116   set suicide equal origin dest
 117   if and islower old not #suicide
 118     die You may not capture your own pieces, except by suicide.
 119   endif
 120   if and and isupper old not #suicide not equal moved k
 121     die Only the King (or the Chameleon) may capture by replacement
 122   endif
 123   set immobilized or or fn neighbor origin I and equal moved i fn neighbor origin X and equal moved k equal old I
 124   if and #immobilized not #suicide
 125     die An immobilized piece may only commit suicide.
 126   endif
 127   if and not #immobilized #suicide
 128     die Only an immobilized piece may only commit suicide.
 129   endif
 130   if and unequal space dest moved not #suicide
 131     die You may not change the type of this piece.
 132   endif
 133   set legal false
 134   if match moved k c x i w l p
 135     set legal fn moved origin dest
 136     if equal moved k
 137       set k dest
 138     endif
 139     if match moved w x
 140       set target where origin cmp file origin file dest cmp rank origin rank dest
 141       if or and equal moved w isupper space #target equal space #target W
 142         capture #target
 143       endif
 144     endif
 145     if match moved c x
 146       set target1 join filename dest rankname #k
 147       set target2 join filename #k rankname dest
 148       if or and equal moved c isupper space #target1 equal space #target1 C
 149         capture #target1
 150       endif
 151       if or and equal moved c isupper space #target2 equal space #target2 C
 152         capture #target2
 153       endif
 154     endif
 155     if match moved l x
 156       set step origin
 157       if not fn q origin dest
 158         set step where origin cmp file dest file origin cmp rank dest rank origin
 159         if unequal #step dest
 160           capture #step
 161           set step where #step cmp file dest file origin cmp rank dest rank origin
 162         endif
 163         if unequal #step dest
 164           capture #step
 165           set step where #step cmp file dest file origin cmp rank dest rank origin
 166         endif
 167         if unequal #step dest
 168           capture #step
 169           set step where #step cmp file dest file origin cmp rank dest rank origin
 170         endif
 171         if unequal #step dest
 172           capture #step
 173           set step where #step cmp file dest file origin cmp rank dest rank origin
 174         endif
 175         if unequal #step dest
 176           capture #step
 177           set step where #step cmp file dest file origin cmp rank dest rank origin
 178         endif
 179         if unequal #step dest
 180           capture #step
 181         endif
 182       endif
 183     endif
 184     if fn r origin dest and match moved p x
 185       set target1 where dest 1 0
 186       if and and isupper space #target1 islower what dest 2 0 or equal moved p equal space #target1 P
 187         capture #target1
 188       endif
 189       set target2 where dest 0 1
 190       if and and isupper space #target2 islower what dest 0 2 or equal moved p equal space #target2 P
 191         capture #target2
 192       endif
 193       set target3 where dest -1 0
 194       if and and isupper space #target3 islower what dest -2 0 or equal moved p equal space #target3 P
 195         capture #target3
 196       endif
 197       set target4 where dest 0 -1
 198       if and and isupper space #target4 islower what dest 0 -2 or equal moved p equal space #target4 P
 199         capture #target4
 200       endif
 201     endif
 202   endif
 203   if and not #suicide not var legal
 204     die You may not move a moved from origin to dest
 205   endif
 206   if sub checked #k
 207     die You may not move into check.
 208   endif
 209   set oldorigin origin
 210   set oldmoved moved
 211 endsub
 212 if sub checked #K
 213   if sub stalemated #K
 214     say Checkmate! Black has won!
 215     won
 216   else
 217     say Check!
 218   endif
 219 elseif sub stalemated #K
 220   say Stalemate! Black has won!
 221   drawn
 222 endif
 223 end
 224 
 225 lib ultima
 226 def insightvect insight #0 cmp file #1 file #0 cmp rank #1 rank #0
 227 def R checkride #0 #1 1 0
 228 def Q checkride #0 #1 1 1 or fn R #0 #1
 229 def K checkleap #0 #1 1 1 or checkleap #0 #1 1 0
 230 def I fn Q #0 #1 and cond empty #0 not capture empty #1
 231 def L sub L #0 #1 and cond empty #0 not capture empty #1
 232 def X or or and fn Q #0 #1 cond empty #0 not capture empty #1 and fn K #0 #1 cond empty #0 == old k == space #1 k and and fn L #0 #1 equal fn insightvect #0 #1 l equal fn insightvect #1 #0 l
 233 def W fn Q #0 #1 and cond empty #0 not capture empty #1
 234 def C fn Q #0 #1 and cond empty #0 not capture empty #1
 235 def P fn R #0 #1 and cond empty #0 not capture empty #1
 236 def r checkride #0 #1 1 0
 237 def q or checkride #0 #1 1 1 fn r #0 #1
 238 def k or checkleap #0 #1 1 1 checkleap #0 #1 1 0
 239 def i and fn q #0 #1 cond empty #0 not capture empty #1
 240 def l sub l #0 #1 and cond empty #0 not capture empty #1
 241 def x or or and fn q #0 #1 cond empty #0 not capture empty #1 and fn k #0 #1 cond empty #0 == old K == space #1 K and and fn l #0 #1 equal fn insightvect #0 #1 L equal fn insightvect #1 #0 L
 242 def w and fn q #0 #1 cond empty #0 not capture empty #1
 243 def c and fn q #0 #1 cond empty #0 not capture empty #1
 244 def p and fn r #0 #1 cond empty #0 not capture empty #1
 245 set steps array 1 2 3 4 5 6 7
 246 sub L from to
 247   local step, cnt, i
 248   if != file #from file #to and != rank #from rank #to and != abs - file #from file #to abs - rank #from rank #to
 249     return false
 250   endif
 251   set step #from
 252   set cnt 0
 253   do
 254     for i #steps
 255       set step where #step cmp file #to file #from cmp rank #to rank #from
 256       if == #step #to
 257         return true
 258       endif
 259       if isupper space #step
 260         return false
 261       endif
 262       if islower space #step
 263         set cnt inc #cnt
 264       endif
 265       if empty #step
 266         set cnt 0
 267       endif
 268       if == #cnt 2
 269         return false
 270       endif
 271     next
 272   loop never
 273 endsub
 274 sub l from to
 275   local step, cnt, i
 276   if != file #from file #to and != rank #from rank #to and != abs - file #from file #to abs - rank #from rank #to
 277     return false
 278   endif
 279   set step #from
 280   set cnt 0
 281   do
 282     for i #steps
 283       set step where #step cmp file #to file #from cmp rank #to rank #from
 284       if == #step #to
 285         return true
 286       endif
 287       if islower space #step
 288         return false
 289       endif
 290       if isupper space #step
 291         set cnt inc #cnt
 292       endif
 293       if empty #step
 294         set cnt 0
 295       endif
 296       if == #cnt 2
 297         return false
 298       endif
 299     next
 300   loop never
 301 endsub
 302 def PL rays #0 1 0
 303 def IL merge rays #0 1 0 rays #0 1 1
 304 def LL merge rays #0 1 0 rays #0 1 1
 305 def XL merge rays #0 1 0 rays #0 1 1
 306 def WL merge rays #0 1 0 rays #0 1 1
 307 def CL merge rays #0 1 0 rays #0 1 1
 308 def KL merge leaps #0 1 0 leaps #0 1 1
 309 def pL rays #0 1 0
 310 def iL merge rays #0 1 0 rays #0 1 1
 311 def lL merge rays #0 1 0 rays #0 1 1
 312 def xL merge rays #0 1 0 rays #0 1 1
 313 def wL merge rays #0 1 0 rays #0 1 1
 314 def cL merge rays #0 1 0 rays #0 1 1
 315 def kL merge leaps #0 1 0 leaps #0 1 1
 316 def neighbor match #1 what #0 1 0 what #0 1 1 what #0 0 1 what #0 -1 1 what #0 -1 0 what #0 -1 -1 what #0 0 -1 what #0 1 -1
 317 sub checked king
 318   local from piece incheck
 319   if isupper cond empty #king moved space #king
 320     def enemies onlylower
 321     def enemy islower #0
 322     def KINGSQUARE #k
 323     def immobilizer I
 324     def LONGLEAPER l
 325   else
 326     def enemies onlyupper
 327     def enemy isupper #0
 328     def KINGSQUARE #K
 329     def immobilizer i
 330     def LONGLEAPER L
 331   endif
 332   for (from piece) fn enemies
 333     if fn neighbor #from fn immobilizer
 334       continue
 335     endif
 336     if fn K #from #king and match toupper #piece K X
 337       return true
 338     endif
 339     if == toupper #piece W and fn K #from #king and empty where #from cmp file #from file #king cmp rank #from rank #king
 340       return true
 341     endif
 342     if == toupper #piece L and fn fn LONGLEAPER #from where #king cmp file #king file #from cmp rank #king rank #from
 343       return true
 344     endif
 345     if == toupper #piece C
 346       set thr1 null
 347       set thr2 null
 348       set thr3 null
 349       set thr4 null
 350       set thr5 null
 351       set thr6 null
 352       set thr7 null
 353       set thr8 null
 354       if == file fn KINGSQUARE file #king
 355         set thr1 join a rankname #king
 356         set thr2 join b rankname #king
 357         set thr3 join c rankname #king
 358         set thr4 join d rankname #king
 359         set thr5 join e rankname #king
 360         set thr6 join f rankname #king
 361         set thr7 join g rankname #king
 362         set thr8 join h rankname #king
 363       endif
 364       if == rank fn KINGSQUARE rank #king
 365         set thr1 join filename #king 1
 366         set thr2 join filename #king 2
 367         set thr3 join filename #king 3
 368         set thr4 join filename #king 4
 369         set thr5 join filename #king 5
 370         set thr6 join filename #king 6
 371         set thr7 join filename #king 7
 372         set thr8 join filename #king 8
 373       endif
 374       set incheck or or or or or or or fn C #from #thr1 fn C #from #thr2 fn C #from #thr3 fn C #from #thr4 fn C #from #thr5 fn C #from #thr6 fn C #from #thr7 fn C #from #thr8
 375       if #incheck
 376         return true
 377       endif
 378     endif
 379     if == toupper #piece P
 380       set incheck or or or and fn P #from where #king 1 0 fn enemy what #king -1 0 and fn P #from where #king 0 1 fn enemy what #king 0 -1 and fn P #from where #king -1 0 fn enemy what #king 1 0 and fn P #from where #king 0 -1 fn enemy what #king 0 1
 381       if #incheck
 382         return true
 383       endif
 384     endif
 385   next
 386   return false
 387 endsub
 388 sub stalemated kingpos
 389   store
 390   local from piece to
 391   if isupper space #kingpos
 392     def friends onlyupper
 393     def nofriends noupper
 394     def friend isupper #0
 395     def enemy islower #0
 396     def IMMOBILIZER i
 397     def CHAMELEON x
 398   else
 399     def friends onlylower
 400     def nofriends nolower
 401     def friend islower #0
 402     def enemy isupper #0
 403     def IMMOBILIZER I
 404     def CHAMELEON X
 405   endif
 406   store
 407   if not fn neighbor #kingpos fn IMMOBILIZER
 408     for to fn KL #kingpos
 409       if fn space #kingpos #kingpos #to and not fn friend space #to and onboard #to
 410         move #kingpos #to
 411         set incheck sub checked #to
 412         restore
 413         verify #incheck
 414       endif
 415     next
 416   endif
 417   restore
 418   for (from piece) fn friends
 419     if == #from #kingpos
 420       continue
 421     endif
 422     if fn neighbor #from fn IMMOBILIZER
 423       capture #from
 424       set incheck sub checked #kingpos
 425       restore
 426       verify #incheck
 427       continue
 428     endif
 429     if == toupper #piece I and fn neighbor #from fn CHAMELEON
 430       capture #from
 431       set incheck sub checked #kingpos
 432       restore
 433       verify #incheck
 434       continue
 435     endif
 436     for to fn join #piece L #from
 437       if fn #piece #from #to and not fn friend space #to and onboard #to
 438         move #from #to
 439         if match toupper #piece W X
 440           set wtarget where #from cmp file #from file #to cmp rank #from rank #to
 441           if not fn friend space #wtarget
 442             if == toupper #piece W or == toupper space #wtarget
 443               capture #wtarget
 444             endif
 445           endif
 446         endif
 447         if match toupper #piece C X
 448           set ctarget1 join filename #kingpos rankname #to
 449           set ctarget2 join filename #to rankname #kingpos
 450           if not fn friend space #ctarget1 and match C toupper #piece toupper space #ctarget1
 451             capture #ctarget1
 452           endif
 453           if not fn friend space #ctarget2 and match C toupper #piece toupper space #ctarget2
 454             capture #ctarget2
 455           endif
 456         endif
 457         if match toupper #piece L X
 458           set ltarget #from
 459           do
 460             for i #steps
 461               set ltarget where #ltarget cmp file #to file #from cmp rank #to rank #from
 462               if != #ltarget #to
 463                 capture #ltarget
 464               endif
 465               if == #ltarget #to
 466                 break
 467               endif
 468             next
 469           loop never
 470         endif
 471         if fn R #from #to and match toupper #piece P X
 472           set ptarget1 where #to 1 0
 473           set ptarget2 where #to 0 1
 474           set ptarget3 where #to -1 0
 475           set ptarget4 where #to 0 -1
 476           if fn enemy space #ptarget1 and fn friend what #to 2 0 and match P toupper #piece toupper space #ptarget1
 477             capture #ptarget1
 478           endif
 479           if fn enemy space #ptarget2 and fn friend what #to 0 2 and match P toupper #piece toupper space #ptarget2
 480             capture #ptarget2
 481           endif
 482           if fn enemy space #ptarget3 and fn friend what #to -2 0 and match P toupper #piece toupper space #ptarget3
 483             capture #ptarget3
 484           endif
 485           if fn enemy space #ptarget4 and fn friend what #to 0 -2 and match P toupper #piece toupper space #ptarget4
 486             capture #ptarget4
 487           endif
 488         endif
 489         set incheck sub checked #kingpos
 490         restore
 491         verify #incheck
 492       endif
 493     next
 494   next
 495   return true
 496 endsub
 497 sub K from to
 498   set legal fn K #from #to
 499   set K #to
 500 endsub
 501 sub k from to
 502   set legal fn k #from #to
 503   set k #to
 504 endsub
 505 endlib

functions

Array ( [insightvect] => Array ( [0] => insight [1] => #0 [2] => cmp [3] => file [4] => #1 [5] => file [6] => #0 [7] => cmp [8] => rank [9] => #1 [10] => rank [11] => #0 ) [R] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 ) [Q] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => fn [7] => R [8] => #0 [9] => #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 ) [I] => Array ( [0] => fn [1] => Q [2] => #0 [3] => #1 [4] => and [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [L] => Array ( [0] => sub [1] => L [2] => #0 [3] => #1 [4] => and [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [X] => Array ( [0] => or [1] => or [2] => and [3] => fn [4] => Q [5] => #0 [6] => #1 [7] => cond [8] => empty [9] => #0 [10] => not [11] => capture [12] => empty [13] => #1 [14] => and [15] => fn [16] => K [17] => #0 [18] => #1 [19] => cond [20] => empty [21] => #0 [22] => == [23] => old [24] => k [25] => == [26] => space [27] => #1 [28] => k [29] => and [30] => and [31] => fn [32] => L [33] => #0 [34] => #1 [35] => equal [36] => fn [37] => insightvect [38] => #0 [39] => #1 [40] => l [41] => equal [42] => fn [43] => insightvect [44] => #1 [45] => #0 [46] => l ) [W] => Array ( [0] => fn [1] => Q [2] => #0 [3] => #1 [4] => and [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [C] => Array ( [0] => fn [1] => Q [2] => #0 [3] => #1 [4] => and [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [P] => Array ( [0] => fn [1] => R [2] => #0 [3] => #1 [4] => and [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [r] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 ) [q] => Array ( [0] => or [1] => checkride [2] => #0 [3] => #1 [4] => 1 [5] => 1 [6] => fn [7] => r [8] => #0 [9] => #1 ) [k] => Array ( [0] => or [1] => checkleap [2] => #0 [3] => #1 [4] => 1 [5] => 1 [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 0 ) [i] => Array ( [0] => and [1] => fn [2] => q [3] => #0 [4] => #1 [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [l] => Array ( [0] => sub [1] => l [2] => #0 [3] => #1 [4] => and [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [x] => Array ( [0] => or [1] => or [2] => and [3] => fn [4] => q [5] => #0 [6] => #1 [7] => cond [8] => empty [9] => #0 [10] => not [11] => capture [12] => empty [13] => #1 [14] => and [15] => fn [16] => k [17] => #0 [18] => #1 [19] => cond [20] => empty [21] => #0 [22] => == [23] => old [24] => K [25] => == [26] => space [27] => #1 [28] => K [29] => and [30] => and [31] => fn [32] => l [33] => #0 [34] => #1 [35] => equal [36] => fn [37] => insightvect [38] => #0 [39] => #1 [40] => L [41] => equal [42] => fn [43] => insightvect [44] => #1 [45] => #0 [46] => L ) [w] => Array ( [0] => and [1] => fn [2] => q [3] => #0 [4] => #1 [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [c] => Array ( [0] => and [1] => fn [2] => q [3] => #0 [4] => #1 [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [p] => Array ( [0] => and [1] => fn [2] => r [3] => #0 [4] => #1 [5] => cond [6] => empty [7] => #0 [8] => not [9] => capture [10] => empty [11] => #1 ) [PL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 0 ) [IL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [LL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [XL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [WL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [CL] => 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 ) [pL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 0 ) [iL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [lL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [xL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [wL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [cL] => 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 ) [neighbor] => Array ( [0] => match [1] => #1 [2] => what [3] => #0 [4] => 1 [5] => 0 [6] => what [7] => #0 [8] => 1 [9] => 1 [10] => what [11] => #0 [12] => 0 [13] => 1 [14] => what [15] => #0 [16] => -1 [17] => 1 [18] => what [19] => #0 [20] => -1 [21] => 0 [22] => what [23] => #0 [24] => -1 [25] => -1 [26] => what [27] => #0 [28] => 0 [29] => -1 [30] => what [31] => #0 [32] => 1 [33] => -1 ) [enemies] => Array ( [0] => onlylower ) [enemy] => Array ( [0] => islower [1] => #0 ) [KINGSQUARE] => Array ( [0] => #k ) [immobilizer] => Array ( [0] => I ) [LONGLEAPER] => Array ( [0] => l ) )

uservar

Array ( [0] => Array ( [main] => Array ( [k] => e8 [K] => d1 [steps] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 ) ) ) [2] => Array ( [checked] => Array ( [subargs] => Array ( [0] => d1 ) ) [main] => Array ( [king] => d1 [from] => a8 [piece] => c [incheck] => 0 ) ) )

mline

Array ( [0] => MoveLine Object ( [movenum] => 0 [move] => [level] => 0 [comment] => [length] => 0 [newturn] => [turn] => 0 ) )

allmoves

Array ( )

movelist

constants

Array ( )