Please report any bugs or errors to wdtr2

Syntax Error on line 207

The == operator requires at least two arguments.

Edit the Settings File for Chu_Shogi_pocket

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 Please report any bugs or errors to wdtr2
   1 set lioncaptured false
   2 set bpieces p p$ gb de$ c sm$ s vm$ g r$ fl b$ bt fs$ de cp$ ph fk$ ky ln$ l wh$ rc w$ sm fb$ vm fo$ b dh$ r dk$ dh hf$ dk se$ fk ln k
   3 set wpieces P P$ GB DE$ C SM$ S VM$ G R$ FL B$ BT FS$ DE CP$ PH FK$ KY LN$ L WH$ RC W$ SM FB$ VM FO$ B DH$ R DK$ DH HF$ DK SE$ FK LN K
   4 set pzs 4
   5 set promote assoc p p$ gb de$ c sm$ s vm$ g r$ fl b$ bt fs$ de cp$ ph fk$ ky ln$ l wh$ rc w$ sm fb$ vm fo$ b dh$ r dk$ dh hf$ dk se$ fk fk ln ln k k P P$ GB DE$ C SM$ S VM$ G R$ FL B$ BT FS$ DE CP$ PH FK$ KY LN$ L WH$ RC W$ SM FB$ VM FO$ B DH$ R DK$ DH HF$ DK SE$ FK FK LN LN K K
   6 alias +p p$ +gb de$ +c sm$ +s vm$ +g r$ +fl b$ +bt fs$ +de cp$ +ph fk$ +ky ln$ +l wh$ +rc w$ +sm fb$ +vm fo$ +b dh$ +r dk$ +dh hf$ +dk se$ q fk +P P$ +GB DE$ +C SM$ +S VM$ +G R$ +FL B$ +BT FS$ +DE CP$ +PH FK$ +KY LN$ +L WH$ +RC W$ +SM FB$ +VM FO$ +B DH$ +R DK$ +DH HF$ +DK SE$ Q FK
   7 setsystem maxmove 2
   8 ban commands allmoves
   9 allow drops 1 moves 1 captures 1 moves 2 captures 2 pass 2 promotions 2
  10 def p checkaleap #0 #1 0 1
  11 def P checkaleap #0 #1 0 -1
  12 def pL array where #0 0 1
  13 def PL array where #0 0 -1
  14 def gb checkaleap #0 #1 0 1 or checkaleap #0 #1 0 -1
  15 def GB checkaleap #0 #1 0 1 or checkaleap #0 #1 0 -1
  16 def gbL array where #0 0 1 where #0 0 -1
  17 def GBL array where #0 0 1 where #0 0 -1
  18 def c checkaleap #0 #1 -1 1 or checkaleap #0 #1 1 1 or fn gb #0 #1
  19 def C checkaleap #0 #1 -1 -1 or checkaleap #0 #1 1 -1 or fn GB #0 #1
  20 def cL array where #0 0 1 where #0 0 -1 where #0 -1 1 where #0 1 1
  21 def CL array where #0 0 1 where #0 0 -1 where #0 -1 -1 where #0 1 -1
  22 def s checkleap #0 #1 1 1 or fn p #0 #1
  23 def S checkleap #0 #1 1 1 or fn P #0 #1
  24 def sL merge leaps #0 1 1 array where #0 0 1
  25 def SL merge leaps #0 1 1 array where #0 0 -1
  26 def bt fn S #0 #1 or checkaleap #0 #1 -1 0 or checkaleap #0 #1 1 0
  27 def BT fn s #0 #1 or checkaleap #0 #1 -1 0 or checkaleap #0 #1 1 0
  28 def btL merge leaps #0 1 1 array where #0 -1 0 where #0 1 0 where #0 0 -1
  29 def BTL merge leaps #0 1 1 array where #0 -1 0 where #0 1 0 where #0 0 1
  30 def fl checkleap #0 #1 1 1 or checkaleap #0 #1 0 1 or checkaleap #0 #1 0 -1
  31 copyfn fl FL
  32 def flL merge leaps #0 1 1 array where #0 0 1 where #0 0 -1
  33 def FLL merge leaps #0 1 1 array where #0 0 1 where #0 0 -1
  34 def g checkleap #0 #1 0 1 or checkaleap #0 #1 -1 1 or checkaleap #0 #1 1 1
  35 def G checkleap #0 #1 0 1 or checkaleap #0 #1 -1 -1 or checkaleap #0 #1 1 -1
  36 def gL merge leaps #0 0 1 array where #0 -1 1 where #0 1 1
  37 def GL merge leaps #0 0 1 array where #0 -1 -1 where #0 1 -1
  38 def de fn BT #0 #1
  39 def DE fn bt #0 #1
  40 def deL merge leaps #0 1 1 array where #0 -1 0 where #0 1 0 where #0 0 1
  41 def DEL merge leaps #0 1 1 array where #0 -1 0 where #0 1 0 where #0 0 -1
  42 def rc checkaride #0 #1 0 1 or checkaride #0 #1 0 -1
  43 copyfn rc RC
  44 def rcL rays #0 0 1
  45 def RCL rays #0 0 1
  46 def l checkaride #0 #1 0 -1 and <= distance #0 #1 2 or checkaride #0 #1 0 1
  47 def L checkaride #0 #1 0 1 and <= distance #0 #1 2 or checkaride #0 #1 0 -1
  48 def lL rays #0 0 1
  49 def LL rays #0 0 1
  50 def ky checkleap #0 #1 1 1 or checkleap #0 #1 0 2
  51 copyfn ky KY
  52 def kyL merge leaps #0 1 1 leaps #0 0 2
  53 def KYL merge leaps #0 1 1 leaps #0 0 2
  54 def ph checkleap #0 #1 0 1 or checkleap #0 #1 2 2
  55 copyfn ph PH
  56 def phL merge leaps #0 0 1 leaps #0 2 2
  57 def PHL merge leaps #0 0 1 leaps #0 2 2
  58 def sm checkaride #0 #1 -1 0 or checkaride #0 #1 1 0 or checkleap #0 #1 0 1
  59 copyfn sm SM
  60 def smL rays #0 0 1
  61 def SML rays #0 0 1
  62 def vm checkaride #0 #1 0 -1 or checkaride #0 #1 0 1 or checkleap #0 #1 0 1
  63 copyfn vm VM
  64 def vmL rays #0 0 1
  65 def VML rays #0 0 1
  66 def b checkride #0 #1 1 1
  67 def B checkride #0 #1 1 1
  68 def bL rays #0 1 1
  69 def BL rays #0 1 1
  70 def r checkride #0 #1 0 1
  71 def R checkride #0 #1 0 1
  72 def rL rays #0 0 1
  73 def RL rays #0 0 1
  74 def dh fn b #0 #1 or checkleap #0 #1 0 1
  75 def DH fn B #0 #1 or checkleap #0 #1 0 1
  76 def dhL merge rays #0 1 1 leaps #0 0 1
  77 def DHL merge rays #0 1 1 leaps #0 0 1
  78 def dk fn r #0 #1 or checkleap #0 #1 1 1
  79 def DK fn R #0 #1 or checkleap #0 #1 1 1
  80 def dkL merge rays #0 0 1 leaps #0 1 1
  81 def DKL merge rays #0 0 1 leaps #0 1 1
  82 def ln <= distance #0 #1 cond var firstpart 2 1
  83 copyfn ln LN
  84 def lnL mergeall leaps #0 0 1 leaps #0 1 1 leaps #0 0 2 leaps #0 1 2 leaps #0 2 2
  85 def LNL mergeall leaps #0 0 1 leaps #0 1 1 leaps #0 0 2 leaps #0 1 2 leaps #0 2 2
  86 def fk fn r #0 #1 or fn b #0 #1
  87 def FK fn R #0 #1 or fn B #0 #1
  88 def fkL merge rays #0 0 1 rays #0 1 1
  89 def FKL merge rays #0 0 1 rays #0 1 1
  90 copyfn g p$
  91 copyfn G P$
  92 copyfn gL p$L
  93 copyfn GL P$L
  94 copyfn de de$
  95 copyfn DE DE$
  96 copyfn deL de$L
  97 copyfn DEL DE$L
  98 copyfn sm sm$
  99 copyfn SM SM$
 100 copyfn smL sm$L
 101 copyfn SML SM$L
 102 copyfn vm vm$
 103 copyfn VM VM$
 104 copyfn vmL vm$L
 105 copyfn VML VM$L
 106 def fs$ checkaride #0 #1 0 1 or checkaride #0 #1 0 -1 or checkleap #0 #1 0 1 or checkleap #0 #1 1 1
 107 copyfn fs$ FS$
 108 def fs$L mergeall ray #0 0 1 ray #0 0 -1 leaps #0 0 1 leaps #0 1 1
 109 def FS$L mergeall ray #0 0 1 ray #0 0 -1 leaps #0 0 1 leaps #0 1 1
 110 copyfn b b$
 111 copyfn B B$
 112 copyfn bL b$L
 113 copyfn BL B$L
 114 copyfn r r$
 115 copyfn R R$
 116 copyfn rL r$L
 117 copyfn RL R$L
 118 def cp$ checkleap #0 #1 0 1 or checkleap #0 #1 1 1
 119 copyfn cp$ CP$
 120 def cp$L merge leaps #0 0 1 leaps #0 1 1
 121 def CP$L merge leaps #0 0 1 leaps #0 1 1
 122 def w$ checkaride #0 #1 0 1 or checkaride #0 #1 0 -1 or checkaride #0 #1 -1 -1 or checkaride #0 #1 1 -1
 123 def W$ checkaride #0 #1 0 1 or checkaride #0 #1 0 -1 or checkaride #0 #1 -1 1 or checkaride #0 #1 1 1
 124 def w$L mergeall ray #0 0 1 ray #0 0 -1 ray #0 -1 -1 ray #0 1 -1
 125 def W$L mergeall ray #0 0 1 ray #0 0 -1 ray #0 -1 1 ray #0 1 1
 126 def wh$ checkaride #0 #1 0 1 or checkaride #0 #1 0 -1 or checkaride #0 #1 -1 1 or checkaride #0 #1 1 1
 127 def WH$ checkaride #0 #1 0 1 or checkaride #0 #1 0 -1 or checkaride #0 #1 -1 -1 or checkaride #0 #1 1 -1
 128 def wh$L mergeall ray #0 0 1 ray #0 0 -1 ray #0 -1 1 ray #0 1 1
 129 def WH$L mergeall ray #0 0 1 ray #0 0 -1 ray #0 -1 -1 ray #0 1 -1
 130 copyfn ln ln$
 131 copyfn LN LN$
 132 copyfn lnL ln$L
 133 copyfn LNL LN$L
 134 copyfn fk fk$
 135 copyfn FK FK$
 136 copyfn fkL fk$L
 137 copyfn FKL FK$L
 138 def fb$ checkride #0 #1 1 1 or checkaride #0 #1 -1 0 or checkaride #0 #1 1 0
 139 copyfn fb$ FB$
 140 def fb$L merge rays #0 0 1 rays #0 1 1
 141 def FB$L merge rays #0 0 1 rays #0 1 1
 142 def fo$ checkride #0 #1 1 1 or checkaride #0 #1 0 -1 or checkaride #0 #1 0 1
 143 copyfn fo$ FO$
 144 def fo$L merge rays #0 0 1 rays #0 1 1
 145 def FO$L merge rays #0 0 1 rays #0 1 1
 146 copyfn dh dh$
 147 copyfn DH DH$
 148 copyfn dhL dh$L
 149 copyfn DHL DH$L
 150 copyfn dk dk$
 151 copyfn DK DK$
 152 copyfn dkL dk$L
 153 copyfn DKL DK$L
 154 def hf$ cond var firstpart (checkride #0 #1 1 1 or checkaride #0 #1 -1 0 or checkaride #0 #1 1 0 or checkaride #0 #1 0 -1 or checkleap #0 #1 0 1 or checkaleap #0 #1 0 2) (checkaleap #0 #1 0 1 or checkaleap #0 #1 0 -1) and #0 and #1
 155 def HF$ cond var firstpart (checkride #0 #1 1 1 or checkaride #0 #1 -1 0 or checkaride #0 #1 1 0 or checkaride #0 #1 0 1 or checkleap #0 #1 0 1 or checkaleap #0 #1 0 -2) (checkaleap #0 #1 0 1 or checkaleap #0 #1 0 -1) and #0 and #1
 156 def hf$L mergeall rays #0 0 1 rays #0 1 1 leaps #0 0 2
 157 def HF$L mergeall rays #0 0 1 rays #0 1 1 leaps #0 0 2
 158 def se$ cond var firstpart (checkride #0 #1 0 1 or checkaride #0 #1 -1 -1 or checkaride #0 #1 1 -1 or checkleap #0 #1 1 1 or checkaleap #0 #1 -2 2 or checkaleap #0 #1 2 2) (sub SE #0 #1) and #0 and #1
 159 def SE$ cond var firstpart (checkride #0 #1 0 1 or checkaride #0 #1 -1 1 or checkaride #0 #1 1 1 or checkleap #0 #1 1 1 or checkaleap #0 #1 -2 -2 or checkaleap #0 #1 2 -2) (sub SE #0 #1) and #0 and #1
 160 def se$L mergeall rays #0 0 1 rays #0 1 1 leaps #0 2 2
 161 def SE$L mergeall rays #0 0 1 rays #0 1 1 leaps #0 2 2
 162 def k checkleap #0 #1 0 1 or checkleap #0 #1 1 1
 163 copyfn k K
 164 def kL merge leaps #0 0 1 leaps #0 1 1
 165 def KL merge leaps #0 0 1 leaps #0 1 1
 166 sub SE from to
 167   if > slope origin dest 0
 168     return checkaleap #from #to 1 1 or checkaleap #from #to -1 -1
 169   else
 170     return checkaleap #from #to 1 -1 or checkaleap #from #to -1 1
 171   endif
 172 endsub
 173 sub checked king to
 174   my from piece
 175   if isupper #king
 176     def enemies intersection noupper #bpieces
 177   else
 178     def enemies intersection nolower #wpieces
 179   endif
 180   for (from piece) fn enemies
 181     if fn #piece #from #to
 182       return #from
 183     endif
 184   next
 185   return false
 186 endsub
 187 sub stalemated kingpos
 188   store
 189   local from piece to
 190   if isupper #kingpos
 191     def friends intersection nolower #wpieces
 192     def friend match #0 #wpieces
 193   else
 194     def friends intersection noupper #bpieces
 195     def friend match #0 #bpieces
 196   endif
 197   set firstpart true
 198   store
 199   for (from piece) fn friends
 200     set colid filename #from
 201     for to fn join #piece L #from
 202       set xmov 0
 203       if fn #piece #from #to and not fn friend space #to and onboard #to
 204         move #from #to
 205         setlegal #from #to
 206         inc xmov
 207         if xmov == 1
 208           restore
 209           move #from 1h
 210           setlegal #from 1h
 211         endif
 212       endif
 213       restore
 214     next
 215   next
 216   gosub appmsg #msg1 #colid
 217   gosub appmsg #msg1 #from
 218   echo #msg1
 219   return cond count system legalmoves false true
 220 endsub
 221 sub legalmoves2 kingpos
 222   store
 223   local from piece to
 224   if isupper #kingpos
 225     def friends intersection nolower #wpieces
 226     def friend match #0 #wpieces
 227   else
 228     def friends intersection noupper #bpieces
 229     def friend match #0 #bpieces
 230   endif
 231   set firstpart false
 232   set oldto dest
 233   store
 234   for (from piece) fn friends
 235     if == #from #oldto
 236       for to fn join #piece L #from
 237         if fn #piece #from #to and not fn friend space #to and onboard #to
 238           move #from #to
 239           setlegal #from #to
 240         endif
 241         restore
 242       next
 243     endif
 244   next
 245   return cond count system legalmoves false true
 246 endsub
 247 sub isdoublemove from to
 248   if checkleap #from #to 0 1 or checkleap #from #to 1 1 and match moved ln LN ln$ LN$ and var firstpart
 249     return true
 250   elseif checkaleap #from #to 0 1 and match moved hf$ and var firstpart
 251     return true
 252   elseif checkaleap #from #to 0 -1 and match moved HF$ and var firstpart
 253     return true
 254   elseif checkaleap #from #to -1 1 or checkaleap #from #to 1 1 and match moved se$ and var firstpart
 255     return true
 256   elseif checkaleap #from #to -1 -1 or checkaleap #from #to 1 -1 and match moved SE$ and var firstpart
 257     return true
 258   else
 259     return false
 260   endif
 261 endsub
 262 sub bpromotion from to
 263   if onboard where #from 0 #pzs and onboard where #to 0 #pzs
 264     return false
 265   elseif not onboard where #from 0 #pzs and not capture and not var firstcapture
 266     if match moved p and not onboard where #to 0 1
 267       return true
 268     else
 269       return false
 270     endif
 271   elseif not match moved p gb c s bt fl g de rc l ky ph sm vm b r dh dk
 272     return false
 273   else
 274     return true
 275   endif
 276 endsub
 277 sub appmsg m1 m2
 278   local m1 m2
 279   set msg1 join join #m2 @ #m1
 280 endsub
 281 sub wpromotion from to
 282   if onboard where #from 0 neg #pzs and onboard where #to 0 neg #pzs
 283     return false
 284   elseif not onboard where #from 0 neg #pzs and not capture and not var firstcapture
 285     if match moved P and not onboard where #to 0 neg 1
 286       return true
 287     else
 288       return false
 289     endif
 290   elseif not match moved P GB C S BT FL G DE RC L KY PH SM VM B R DH DK
 291     return false
 292   else
 293     return true
 294   endif
 295 endsub
 296 sub bpromote from to
 297   set legal false
 298   verify fn moved origin dest
 299   if match moved ln ln$ and match old LN LN$ and > distance #from #to 1 and sub checked king #to and match #midpoint @ P GB
 300     die You may not capture a protected non-adjacent Lion with a Lion unless you first capture something other than a Pawn or Go between.
 301   elseif not match moved ln ln$ and match old LN LN$ and == #lioncaptured true and not flag dest
 302     die You may not capture a Lion with a non-Lion when a Lion was just captured by a non-Lion on another square.
 303   endif
 304   if != space #to moved and sub isdoublemove origin dest
 305     die "You may not promote any piece without completing your move."
 306   elseif != space #to moved and onboard where #from 0 #pzs and onboard where #to 0 #pzs
 307     die "You may not promote any piece without entering the promotion zone or capturing something while starting in it."
 308   elseif != moved p or onboard where #to 0 1 and != space #to moved and not onboard where #from 0 #pzs and not capture and not var firstcapture
 309     die "You may not promote any piece without entering the promotion zone or capturing something while starting in it."
 310   elseif not onboard where #from 0 #pzs or not onboard where #to 0 #pzs
 311     if == moved space #to and not fnmatch *-dest* thismove and onboard where #from 0 #pzs and not onboard where #to 0 #pzs and match moved p gb c s bt fl g de rc l ky ph sm vm b r dh dk and not sub isdoublemove origin dest
 312       set pc moved
 313       set pm elem moved promote
 314       askpromote #pm #pc
 315     elseif == moved space #to and not fnmatch *-dest* thismove and not onboard where #from 0 #pzs and (var firstcapture or capture) and match moved p gb c s bt fl g de rc l ky ph sm vm b r dh dk and not sub isdoublemove origin dest
 316       set pc moved
 317       set pm elem moved promote
 318       askpromote #pm #pc
 319     elseif not capture and not var firstcapture and == moved space #to and not fnmatch *-dest* thismove and match moved p and not onboard where #to 0 1 and not sub isdoublemove origin dest
 320       set pc moved
 321       set pm elem moved promote
 322       askpromote #pm #pc
 323     elseif != moved space dest and != elem moved promote space dest
 324       set np space #to
 325       die "You may not promote a" moved "to a" #np
 326     endif
 327   endif
 328   set legal true
 329   return true
 330 endsub
 331 sub wpromote from to
 332   set legal false
 333   verify fn moved origin dest
 334   if match moved LN LN$ and match old ln ln$ and > distance #from #to 1 and sub checked KING #to and match #midpoint @ p gb
 335     die You may not capture a protected non-adjacent Lion with a Lion unless you first capture something other than a Pawn or Go between.
 336   elseif not match moved LN LN$ and match old ln ln$ and == #lioncaptured true and not flag dest
 337     die You may not capture a Lion with a non-Lion when a Lion was just captured by a non-Lion on another square.
 338   endif
 339   if != space #to moved and sub isdoublemove origin dest
 340     die "You may not promote any piece without completing your move."
 341   elseif != space #to moved and onboard where #from 0 neg #pzs and onboard where #to 0 neg #pzs
 342     die "You may not promote any piece without entering the promotion zone or capturing something while starting in it."
 343   elseif != moved P or onboard where #to 0 neg 1 and != space #to moved and not onboard where #from 0 neg #pzs and not capture and not var firstcapture
 344     die "You may not promote any piece without entering the promotion zone or capturing something while starting in it."
 345   elseif not onboard where #from 0 neg #pzs or not onboard where #to 0 neg #pzs
 346     if == moved space #to and not fnmatch *-dest* thismove and onboard where #from 0 neg #pzs and not onboard where #to 0 neg #pzs and match moved P GB C S BT FL G DE RC L KY PH SM VM B R DH DK and not sub isdoublemove origin dest
 347       set pc moved
 348       set pm elem moved promote
 349       askpromote #pm #pc
 350     elseif == moved space #to and not fnmatch *-dest* thismove and not onboard where #from 0 neg #pzs and (var firstcapture or capture) and match moved P GB C S BT FL G DE RC L KY PH SM VM B R DH DK and not sub isdoublemove origin dest
 351       set pc moved
 352       set pm elem moved promote
 353       askpromote #pm #pc
 354     elseif not capture and not var firstcapture and == moved space #to and not fnmatch *-dest* thismove and match moved P and not onboard where #to 0 neg 1 and not sub isdoublemove origin dest
 355       set pc moved
 356       set pm elem moved promote
 357       askpromote #pm #pc
 358     elseif != moved space dest and != elem moved promote space dest
 359       set np space #to
 360       die "You may not promote a" moved "to a" #np
 361     endif
 362   endif
 363   set legal true
 364   return true
 365 endsub
 366 sub preauto1
 367   set msg1 ""
 368   store
 369 endsub
 370 sub preauto2
 371   set msg1 ""
 372   store
 373 endsub
 374 sub postauto1
 375   set mvs explode chr 59 thismove
 376   restore
 377   set i 0
 378   set firstpart true
 379   set firstcapture false
 380   eval join "MOVE: " trim elem var i mvs
 381   if match old #bpieces
 382     die You may not capture your own pieces.
 383   endif
 384   set ori origin
 385   set dst dest
 386   if not sub isdoublemove origin dest and sub bpromotion #ori dest
 387     inc i
 388     if < var i count var mvs
 389       set ori2 origin
 390       set dst2 dest
 391       eval join "MOVE: " trim elem var i mvs
 392       if != var dst2 dest or != var ori2 origin or == pass trim elem var i mvs
 393         die Only a promotion can immediately follow a promotable piece moving to or from the promotion zone.
 394       endif
 395     endif
 396   endif
 397   set legal false
 398   switch moved
 399     case p p$ gb de$ c sm$ s vm$ g r$ fl b$ bt fs$ de cp$ ph fk$ ky ln$ l wh$ rc w$ sm fb$ vm fo$ b dh$ r dk$ dh hf$ dk se$ fk ln k
 400     if capture and sub isdoublemove origin dest
 401       set midpoint old
 402     else
 403       set midpoint @
 404     endif
 405     gosub bpromote #ori dest
 406     break
 407     default
 408     die You may not move a moved
 409   endswitch
 410   if not var legal
 411     die You may not move a moved from origin to dest
 412   endif
 413   if capture
 414     set firstcapture true
 415   endif
 416   if var firstpart and sub isdoublemove origin dest
 417     inc i
 418     do while < var i count var mvs
 419       set firstpart false
 420       set mv trim elem var i mvs
 421       if == var mv pass
 422         if not sub isdoublemove origin dest and sub bpromotion #ori dest
 423           inc i
 424           if < var i count var mvs
 425             set ori2 origin
 426             set dst2 dest
 427             eval join "MOVE: " trim elem var i mvs
 428             if != var dst2 dest or != var ori2 origin
 429               die Only a promotion can immediately follow a promotable piece moving to or from the promotion zone.
 430             endif
 431           endif
 432         endif
 433         gosub bpromote #ori dest
 434         break
 435       endif
 436       eval join "MOVE: " var mv
 437       if match old #bpieces
 438         die You may not capture your own pieces.
 439       elseif != var dst origin
 440         die You may not move more than one piece per turn.
 441       endif
 442       if not sub isdoublemove origin dest and sub bpromotion #ori dest
 443         inc i
 444         if < var i count var mvs
 445           set ori2 origin
 446           set dst2 dest
 447           eval join "MOVE: " trim elem var i mvs
 448           if != var dst2 dest or != var ori2 origin
 449             die Only a promotion can immediately follow a promotable piece moving to or from the promotion zone.
 450           endif
 451         endif
 452       endif
 453       set legal false
 454       switch moved
 455         case ln ln$ hf$ se$
 456         gosub bpromote #ori dest
 457         break
 458         default
 459         die You may not move a moved
 460       endswitch
 461       if not var legal
 462         die You may not move a moved from origin to dest
 463       endif
 464     loop never
 465   endif
 466   inc i
 467   if < var i count var mvs
 468     die Too many moves.
 469   endif
 470   unsetflag spaces
 471   if == moved ky and match old (LN LN$)
 472     setflag dest
 473   endif
 474   if match #midpoint (LN LN$) or match old (LN LN$) and not match moved (ln ln$) and not sub isdoublemove origin dest
 475     set lioncaptured true
 476   else
 477     set lioncaptured false
 478   endif
 479 endsub
 480 sub postauto2
 481   set mvs explode chr 59 thismove
 482   restore
 483   set i 0
 484   set firstpart true
 485   set firstcapture false
 486   eval join "MOVE: " trim elem var i mvs
 487   if match old #wpieces
 488     die You may not capture your own pieces.
 489   endif
 490   set ori origin
 491   set dst dest
 492   if not sub isdoublemove origin dest and sub wpromotion #ori dest
 493     inc i
 494     if < var i count var mvs
 495       set ori2 origin
 496       set dst2 dest
 497       eval join "MOVE: " trim elem var i mvs
 498       if != var dst2 dest or != var ori2 origin or == pass trim elem var i mvs
 499         die Only a promotion can immediately follow a promotable piece moving to or from the promotion zone.
 500       endif
 501     endif
 502   endif
 503   set legal false
 504   switch moved
 505     case P P$ GB DE$ C SM$ S VM$ G R$ FL B$ BT FS$ DE CP$ PH FK$ KY LN$ L WH$ RC W$ SM FB$ VM FO$ B DH$ R DK$ DH HF$ DK SE$ FK LN K
 506     if capture and sub isdoublemove origin dest
 507       set midpoint old
 508     else
 509       set midpoint @
 510     endif
 511     gosub wpromote #ori dest
 512     break
 513     default
 514     die You may not move a moved
 515   endswitch
 516   if not var legal
 517     die You may not move a moved from origin to dest
 518   endif
 519   if capture
 520     set firstcapture true
 521   endif
 522   if var firstpart and sub isdoublemove origin dest
 523     inc i
 524     do while < var i count var mvs
 525       set firstpart false
 526       set mv trim elem var i mvs
 527       if == var mv pass
 528         if not sub isdoublemove origin dest and sub wpromotion #ori dest
 529           inc i
 530           if < var i count var mvs
 531             set ori2 origin
 532             set dst2 dest
 533             eval join "MOVE: " trim elem var i mvs
 534             if != var dst2 dest or != var ori2 origin
 535               die Only a promotion can immediately follow a promotable piece moving to or from the promotion zone.
 536             endif
 537           endif
 538         endif
 539         gosub wpromote #ori dest
 540         break
 541       endif
 542       eval join "MOVE: " var mv
 543       if match old #wpieces
 544         die You may not capture your own pieces.
 545       elseif != var dst origin
 546         die You may not move more than one piece per turn.
 547       endif
 548       if not sub isdoublemove origin dest and sub wpromotion #ori dest
 549         inc i
 550         if < var i count var mvs
 551           set ori2 origin
 552           set dst2 dest
 553           eval join "MOVE: " trim elem var i mvs
 554           if != var dst2 dest or != var ori2 origin
 555             die Only a promotion can immediately follow a promotable piece moving to or from the promotion zone.
 556           endif
 557         endif
 558       endif
 559       set legal false
 560       switch moved
 561         case LN LN$ HF$ SE$
 562         gosub wpromote #ori dest
 563         break
 564         default
 565         die You may not move a moved
 566       endswitch
 567       if not var legal
 568         die You may not move a moved from origin to dest
 569       endif
 570     loop never
 571   endif
 572   inc i
 573   if < var i count var mvs
 574     die Too many moves.
 575   endif
 576   unsetflag spaces
 577   if == moved KY and match old (ln ln$)
 578     setflag dest
 579   endif
 580   if match #midpoint (ln ln$) or match old (ln ln$) and not match moved (LN LN$) and not sub isdoublemove origin dest
 581     set lioncaptured true
 582   else
 583     set lioncaptured false
 584   endif
 585 endsub
 586 if not findpiece k spaces and not findpiece cp$ spaces
 587   say All Royals Captured! White has won!
 588   won
 589 endif
 590 if var firstpart and sub isdoublemove origin dest and match moved LN LN$ HF$ SE$
 591   remind "Enter second leg of move or press Pass"
 592   gosub legalmoves2 KING
 593   continuemove
 594 elseif sub stalemated king
 595 endif
 596 end
 597 

functions

Array ( [p] => Array ( [0] => checkaleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [P] => Array ( [0] => checkaleap [1] => #0 [2] => #1 [3] => 0 [4] => -1 ) [pL] => Array ( [0] => array [1] => where [2] => #0 [3] => 0 [4] => 1 ) [PL] => Array ( [0] => array [1] => where [2] => #0 [3] => 0 [4] => -1 ) [gb] => Array ( [0] => checkaleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => 0 [10] => -1 ) [GB] => Array ( [0] => checkaleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => 0 [10] => -1 ) [gbL] => Array ( [0] => array [1] => where [2] => #0 [3] => 0 [4] => 1 [5] => where [6] => #0 [7] => 0 [8] => -1 ) [GBL] => Array ( [0] => array [1] => where [2] => #0 [3] => 0 [4] => 1 [5] => where [6] => #0 [7] => 0 [8] => -1 ) [c] => 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] => fn [13] => gb [14] => #0 [15] => #1 ) [C] => 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] => fn [13] => GB [14] => #0 [15] => #1 ) [cL] => Array ( [0] => array [1] => where [2] => #0 [3] => 0 [4] => 1 [5] => where [6] => #0 [7] => 0 [8] => -1 [9] => where [10] => #0 [11] => -1 [12] => 1 [13] => where [14] => #0 [15] => 1 [16] => 1 ) [CL] => Array ( [0] => array [1] => where [2] => #0 [3] => 0 [4] => 1 [5] => where [6] => #0 [7] => 0 [8] => -1 [9] => where [10] => #0 [11] => -1 [12] => -1 [13] => where [14] => #0 [15] => 1 [16] => -1 ) [s] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => fn [7] => p [8] => #0 [9] => #1 ) [S] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => fn [7] => P [8] => #0 [9] => #1 ) [sL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => 0 [9] => 1 ) [SL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => 0 [9] => -1 ) [bt] => Array ( [0] => fn [1] => S [2] => #0 [3] => #1 [4] => or [5] => checkaleap [6] => #0 [7] => #1 [8] => -1 [9] => 0 [10] => or [11] => checkaleap [12] => #0 [13] => #1 [14] => 1 [15] => 0 ) [BT] => Array ( [0] => fn [1] => s [2] => #0 [3] => #1 [4] => or [5] => checkaleap [6] => #0 [7] => #1 [8] => -1 [9] => 0 [10] => or [11] => checkaleap [12] => #0 [13] => #1 [14] => 1 [15] => 0 ) [btL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => 0 [10] => where [11] => #0 [12] => 1 [13] => 0 [14] => where [15] => #0 [16] => 0 [17] => -1 ) [BTL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => 0 [10] => where [11] => #0 [12] => 1 [13] => 0 [14] => where [15] => #0 [16] => 0 [17] => 1 ) [fl] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => 0 [10] => 1 [11] => or [12] => checkaleap [13] => #0 [14] => #1 [15] => 0 [16] => -1 ) [FL] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => 0 [10] => 1 [11] => or [12] => checkaleap [13] => #0 [14] => #1 [15] => 0 [16] => -1 ) [flL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => 0 [9] => 1 [10] => where [11] => #0 [12] => 0 [13] => -1 ) [FLL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => 0 [9] => 1 [10] => where [11] => #0 [12] => 0 [13] => -1 ) [g] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => -1 [10] => 1 [11] => or [12] => checkaleap [13] => #0 [14] => #1 [15] => 1 [16] => 1 ) [G] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => -1 [10] => -1 [11] => or [12] => checkaleap [13] => #0 [14] => #1 [15] => 1 [16] => -1 ) [gL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => 1 [10] => where [11] => #0 [12] => 1 [13] => 1 ) [GL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => -1 [10] => where [11] => #0 [12] => 1 [13] => -1 ) [de] => Array ( [0] => fn [1] => BT [2] => #0 [3] => #1 ) [DE] => Array ( [0] => fn [1] => bt [2] => #0 [3] => #1 ) [deL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => 0 [10] => where [11] => #0 [12] => 1 [13] => 0 [14] => where [15] => #0 [16] => 0 [17] => 1 ) [DEL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => 0 [10] => where [11] => #0 [12] => 1 [13] => 0 [14] => where [15] => #0 [16] => 0 [17] => -1 ) [rc] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 ) [RC] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 ) [rcL] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [RCL] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [l] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => and [6] => <= [7] => distance [8] => #0 [9] => #1 [10] => 2 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [L] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => and [6] => <= [7] => distance [8] => #0 [9] => #1 [10] => 2 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 0 [16] => -1 ) [lL] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [LL] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [ky] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 0 [10] => 2 ) [KY] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 0 [10] => 2 ) [kyL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 0 [8] => 2 ) [KYL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 0 [8] => 2 ) [ph] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 ) [PH] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 ) [phL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 2 [8] => 2 ) [PHL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 2 [8] => 2 ) [sm] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => -1 [4] => 0 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 1 [10] => 0 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [SM] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => -1 [4] => 0 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 1 [10] => 0 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [smL] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [SML] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [vm] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => 1 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [VM] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => 1 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [vmL] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [VML] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [b] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [B] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [bL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [BL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [r] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [R] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [rL] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [RL] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [dh] => Array ( [0] => fn [1] => b [2] => #0 [3] => #1 [4] => or [5] => checkleap [6] => #0 [7] => #1 [8] => 0 [9] => 1 ) [DH] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => checkleap [6] => #0 [7] => #1 [8] => 0 [9] => 1 ) [dhL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 0 [8] => 1 ) [DHL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 0 [8] => 1 ) [dk] => Array ( [0] => fn [1] => r [2] => #0 [3] => #1 [4] => or [5] => checkleap [6] => #0 [7] => #1 [8] => 1 [9] => 1 ) [DK] => Array ( [0] => fn [1] => R [2] => #0 [3] => #1 [4] => or [5] => checkleap [6] => #0 [7] => #1 [8] => 1 [9] => 1 ) [dkL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [DKL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [ln] => Array ( [0] => <= [1] => distance [2] => #0 [3] => #1 [4] => cond [5] => var [6] => firstpart [7] => 2 [8] => 1 ) [LN] => Array ( [0] => <= [1] => distance [2] => #0 [3] => #1 [4] => cond [5] => var [6] => firstpart [7] => 2 [8] => 1 ) [lnL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 0 [12] => 2 [13] => leaps [14] => #0 [15] => 1 [16] => 2 [17] => leaps [18] => #0 [19] => 2 [20] => 2 ) [LNL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 0 [12] => 2 [13] => leaps [14] => #0 [15] => 1 [16] => 2 [17] => leaps [18] => #0 [19] => 2 [20] => 2 ) [fk] => Array ( [0] => fn [1] => r [2] => #0 [3] => #1 [4] => or [5] => fn [6] => b [7] => #0 [8] => #1 ) [FK] => Array ( [0] => fn [1] => R [2] => #0 [3] => #1 [4] => or [5] => fn [6] => B [7] => #0 [8] => #1 ) [fkL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [FKL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [p$] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => -1 [10] => 1 [11] => or [12] => checkaleap [13] => #0 [14] => #1 [15] => 1 [16] => 1 ) [P$] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => -1 [10] => -1 [11] => or [12] => checkaleap [13] => #0 [14] => #1 [15] => 1 [16] => -1 ) [p$L] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => 1 [10] => where [11] => #0 [12] => 1 [13] => 1 ) [P$L] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => -1 [10] => where [11] => #0 [12] => 1 [13] => -1 ) [de$] => Array ( [0] => fn [1] => BT [2] => #0 [3] => #1 ) [DE$] => Array ( [0] => fn [1] => bt [2] => #0 [3] => #1 ) [de$L] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => 0 [10] => where [11] => #0 [12] => 1 [13] => 0 [14] => where [15] => #0 [16] => 0 [17] => 1 ) [DE$L] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => array [6] => where [7] => #0 [8] => -1 [9] => 0 [10] => where [11] => #0 [12] => 1 [13] => 0 [14] => where [15] => #0 [16] => 0 [17] => -1 ) [sm$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => -1 [4] => 0 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 1 [10] => 0 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [SM$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => -1 [4] => 0 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 1 [10] => 0 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [sm$L] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [SM$L] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [vm$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => 1 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [VM$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => 1 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [vm$L] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [VM$L] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [fs$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 1 [22] => 1 ) [FS$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 0 [16] => 1 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 1 [22] => 1 ) [fs$L] => Array ( [0] => mergeall [1] => ray [2] => #0 [3] => 0 [4] => 1 [5] => ray [6] => #0 [7] => 0 [8] => -1 [9] => leaps [10] => #0 [11] => 0 [12] => 1 [13] => leaps [14] => #0 [15] => 1 [16] => 1 ) [FS$L] => Array ( [0] => mergeall [1] => ray [2] => #0 [3] => 0 [4] => 1 [5] => ray [6] => #0 [7] => 0 [8] => -1 [9] => leaps [10] => #0 [11] => 0 [12] => 1 [13] => leaps [14] => #0 [15] => 1 [16] => 1 ) [b$] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [B$] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [b$L] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [B$L] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [r$] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [R$] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [r$L] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [R$L] => Array ( [0] => rays [1] => #0 [2] => 0 [3] => 1 ) [cp$] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 1 ) [CP$] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 1 ) [cp$L] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [CP$L] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [w$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => -1 [16] => -1 [17] => or [18] => checkaride [19] => #0 [20] => #1 [21] => 1 [22] => -1 ) [W$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => -1 [16] => 1 [17] => or [18] => checkaride [19] => #0 [20] => #1 [21] => 1 [22] => 1 ) [w$L] => Array ( [0] => mergeall [1] => ray [2] => #0 [3] => 0 [4] => 1 [5] => ray [6] => #0 [7] => 0 [8] => -1 [9] => ray [10] => #0 [11] => -1 [12] => -1 [13] => ray [14] => #0 [15] => 1 [16] => -1 ) [W$L] => Array ( [0] => mergeall [1] => ray [2] => #0 [3] => 0 [4] => 1 [5] => ray [6] => #0 [7] => 0 [8] => -1 [9] => ray [10] => #0 [11] => -1 [12] => 1 [13] => ray [14] => #0 [15] => 1 [16] => 1 ) [wh$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => -1 [16] => 1 [17] => or [18] => checkaride [19] => #0 [20] => #1 [21] => 1 [22] => 1 ) [WH$] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => -1 [16] => -1 [17] => or [18] => checkaride [19] => #0 [20] => #1 [21] => 1 [22] => -1 ) [wh$L] => Array ( [0] => mergeall [1] => ray [2] => #0 [3] => 0 [4] => 1 [5] => ray [6] => #0 [7] => 0 [8] => -1 [9] => ray [10] => #0 [11] => -1 [12] => 1 [13] => ray [14] => #0 [15] => 1 [16] => 1 ) [WH$L] => Array ( [0] => mergeall [1] => ray [2] => #0 [3] => 0 [4] => 1 [5] => ray [6] => #0 [7] => 0 [8] => -1 [9] => ray [10] => #0 [11] => -1 [12] => -1 [13] => ray [14] => #0 [15] => 1 [16] => -1 ) [ln$] => Array ( [0] => <= [1] => distance [2] => #0 [3] => #1 [4] => cond [5] => var [6] => firstpart [7] => 2 [8] => 1 ) [LN$] => Array ( [0] => <= [1] => distance [2] => #0 [3] => #1 [4] => cond [5] => var [6] => firstpart [7] => 2 [8] => 1 ) [ln$L] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 0 [12] => 2 [13] => leaps [14] => #0 [15] => 1 [16] => 2 [17] => leaps [18] => #0 [19] => 2 [20] => 2 ) [LN$L] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 0 [12] => 2 [13] => leaps [14] => #0 [15] => 1 [16] => 2 [17] => leaps [18] => #0 [19] => 2 [20] => 2 ) [fk$] => Array ( [0] => fn [1] => r [2] => #0 [3] => #1 [4] => or [5] => fn [6] => b [7] => #0 [8] => #1 ) [FK$] => Array ( [0] => fn [1] => R [2] => #0 [3] => #1 [4] => or [5] => fn [6] => B [7] => #0 [8] => #1 ) [fk$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [FK$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [fb$] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => -1 [10] => 0 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 1 [16] => 0 ) [FB$] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => -1 [10] => 0 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 1 [16] => 0 ) [fb$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [FB$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [fo$] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [FO$] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => 0 [10] => -1 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 0 [16] => 1 ) [fo$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [FO$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 ) [dh$] => Array ( [0] => fn [1] => b [2] => #0 [3] => #1 [4] => or [5] => checkleap [6] => #0 [7] => #1 [8] => 0 [9] => 1 ) [DH$] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => checkleap [6] => #0 [7] => #1 [8] => 0 [9] => 1 ) [dh$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 0 [8] => 1 ) [DH$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 0 [8] => 1 ) [dk$] => Array ( [0] => fn [1] => r [2] => #0 [3] => #1 [4] => or [5] => checkleap [6] => #0 [7] => #1 [8] => 1 [9] => 1 ) [DK$] => Array ( [0] => fn [1] => R [2] => #0 [3] => #1 [4] => or [5] => checkleap [6] => #0 [7] => #1 [8] => 1 [9] => 1 ) [dk$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [DK$L] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [hf$] => Array ( [0] => cond [1] => var [2] => firstpart [3] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => -1 [10] => 0 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 1 [16] => 0 [17] => or [18] => checkaride [19] => #0 [20] => #1 [21] => 0 [22] => -1 [23] => or [24] => checkleap [25] => #0 [26] => #1 [27] => 0 [28] => 1 [29] => or [30] => checkaleap [31] => #0 [32] => #1 [33] => 0 [34] => 2 ) [4] => Array ( [0] => checkaleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => 0 [10] => -1 ) [5] => and [6] => #0 [7] => and [8] => #1 ) [HF$] => Array ( [0] => cond [1] => var [2] => firstpart [3] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => -1 [10] => 0 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 1 [16] => 0 [17] => or [18] => checkaride [19] => #0 [20] => #1 [21] => 0 [22] => 1 [23] => or [24] => checkleap [25] => #0 [26] => #1 [27] => 0 [28] => 1 [29] => or [30] => checkaleap [31] => #0 [32] => #1 [33] => 0 [34] => -2 ) [4] => Array ( [0] => checkaleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaleap [7] => #0 [8] => #1 [9] => 0 [10] => -1 ) [5] => and [6] => #0 [7] => and [8] => #1 ) [hf$L] => Array ( [0] => mergeall [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 0 [12] => 2 ) [HF$L] => Array ( [0] => mergeall [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 0 [12] => 2 ) [se$] => Array ( [0] => cond [1] => var [2] => firstpart [3] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => -1 [10] => -1 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 1 [16] => -1 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 1 [22] => 1 [23] => or [24] => checkaleap [25] => #0 [26] => #1 [27] => -2 [28] => 2 [29] => or [30] => checkaleap [31] => #0 [32] => #1 [33] => 2 [34] => 2 ) [4] => Array ( [0] => sub [1] => SE [2] => #0 [3] => #1 ) [5] => and [6] => #0 [7] => and [8] => #1 ) [SE$] => Array ( [0] => cond [1] => var [2] => firstpart [3] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkaride [7] => #0 [8] => #1 [9] => -1 [10] => 1 [11] => or [12] => checkaride [13] => #0 [14] => #1 [15] => 1 [16] => 1 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 1 [22] => 1 [23] => or [24] => checkaleap [25] => #0 [26] => #1 [27] => -2 [28] => -2 [29] => or [30] => checkaleap [31] => #0 [32] => #1 [33] => 2 [34] => -2 ) [4] => Array ( [0] => sub [1] => SE [2] => #0 [3] => #1 ) [5] => and [6] => #0 [7] => and [8] => #1 ) [se$L] => Array ( [0] => mergeall [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 2 [12] => 2 ) [SE$L] => Array ( [0] => mergeall [1] => rays [2] => #0 [3] => 0 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 2 [12] => 2 ) [k] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 1 ) [K] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 1 ) [kL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [KL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 0 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [friends] => Array ( [0] => intersection [1] => noupper [2] => #bpieces ) [friend] => Array ( [0] => match [1] => #0 [2] => #bpieces ) )

uservar

Array ( [0] => Array ( [main] => Array ( [lioncaptured] => [bpieces] => Array ( [0] => k [1] => ln [2] => fk [3] => se$ [4] => dk [5] => hf$ [6] => dh [7] => dk$ [8] => r [9] => dh$ [10] => b [11] => fo$ [12] => vm [13] => fb$ [14] => sm [15] => w$ [16] => rc [17] => wh$ [18] => l [19] => ln$ [20] => ky [21] => fk$ [22] => ph [23] => cp$ [24] => de [25] => fs$ [26] => bt [27] => b$ [28] => fl [29] => r$ [30] => g [31] => vm$ [32] => s [33] => sm$ [34] => c [35] => de$ [36] => gb [37] => p$ [38] => p ) [wpieces] => Array ( [0] => K [1] => LN [2] => FK [3] => SE$ [4] => DK [5] => HF$ [6] => DH [7] => DK$ [8] => R [9] => DH$ [10] => B [11] => FO$ [12] => VM [13] => FB$ [14] => SM [15] => W$ [16] => RC [17] => WH$ [18] => L [19] => LN$ [20] => KY [21] => FK$ [22] => PH [23] => CP$ [24] => DE [25] => FS$ [26] => BT [27] => B$ [28] => FL [29] => R$ [30] => G [31] => VM$ [32] => S [33] => SM$ [34] => C [35] => DE$ [36] => GB [37] => P$ [38] => P ) [pzs] => 4 [promote] => Array ( [p] => p$ [gb] => de$ [c] => sm$ [s] => vm$ [g] => r$ [fl] => b$ [bt] => fs$ [de] => cp$ [ph] => fk$ [ky] => ln$ [l] => wh$ [rc] => w$ [sm] => fb$ [vm] => fo$ [b] => dh$ [r] => dk$ [dh] => hf$ [dk] => se$ [fk] => fk [ln] => ln [k] => k [P] => P$ [GB] => DE$ [C] => SM$ [S] => VM$ [G] => R$ [FL] => B$ [BT] => FS$ [DE] => CP$ [PH] => FK$ [KY] => LN$ [L] => WH$ [RC] => W$ [SM] => FB$ [VM] => FO$ [B] => DH$ [R] => DK$ [DH] => HF$ [DK] => SE$ [FK] => FK [LN] => LN [K] => K ) [firstpart] => 1 [colid] => 11 [xmov] => 1 ) ) [2] => Array ( [stalemated] => Array ( [subargs] => Array ( [0] => king ) ) [main] => Array ( [kingpos] => king [from] => 11h [piece] => gb [to] => 11g ) ) )

mline

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

allmoves

Array ( )

movelist

constants

Array ( )