Please report any bugs or errors to Fergus Duniho

Syntax Error on line 193

The function 'bi' has not been defined. Its arguments are a16 h2

Edit the Settings File for Bigorra

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 is a beta-version under tests. Written by Jean-Louis Cazaux
   2 endif
   3 echo Please report any bugs or errors to Fergus Duniho
   4 set ep false
   5 setsystem groupsets array alfaerie-metamachy
   6 set mypieces ()
   7 foreach label (a A b B c C d D e E f F g G h H i I j J k K l L m M n N o O p P q Q r R s S t T u U v V w W x X y Y z Z)
   8   setelem mypieces #label pieceimg #label
   9 next
  10 if == pieceset alfaerie-metamachy
  11   set mypieces.sq pieceimg sq
  12   set mypieces.SQ pieceimg SQ
  13   set mypieces.sn pieceimg sn
  14   set mypieces.SN pieceimg SN
  15   set mypieces.sh pieceimg sh
  16   set mypieces.SH pieceimg SH
  17   set mypieces.hk pieceimg bi
  18   set mypieces.HK pieceimg BI
  19   set mypieces.mm pieceimg ra
  20   set mypieces.MM pieceimg RA
  21   set mypieces.ch pieceimg ti
  22   set mypieces.CH pieceimg TI
  23   set mypieces.dw pieceimg dr
  24   set mypieces.DW pieceimg DR
  25 endif
  26 setsystem pieces #mypieces
  27 set wpr 5
  28 set bpr 12
  29 set wsr 4
  30 set bsr 13
  31 set fps 2
  32 set pzs 1
  33 set wprom Q
  34 set bprom q
  35 set wpromi A
  36 set bpromi a
  37 set wpromf F
  38 set bpromf f
  39 set wproml L
  40 set bproml l
  41 set wpromd D
  42 set bpromd d
  43 set wpromg G
  44 set bpromg g
  45 set wpromu U
  46 set bpromu u
  47 set wpromdw DW
  48 set bpromdw dw
  49 setsystem maxmove 2
  50 ban commands allmoves
  51 allow moves 1 captures 1 promotions 2 skip 1
  52 def N checkleap #0 #1 1 2
  53 def B checkride #0 #1 1 1
  54 def R checkride #0 #1 1 0
  55 def Q fn B #0 #1 or fn R #0 #1
  56 def K checkleap #0 #1 1 1 or checkleap #0 #1 1 0
  57 def n checkleap #0 #1 1 2
  58 def b checkride #0 #1 1 1
  59 def r checkride #0 #1 1 0
  60 def q fn B #0 #1 or fn R #0 #1
  61 def k checkleap #0 #1 1 1 or checkleap #0 #1 1 0
  62 def NL leaps #0 1 2
  63 def BL rays #0 1 1
  64 def RL rays #0 1 0
  65 def QL merge rays #0 1 0 rays #0 1 1
  66 def KL merge leaps #0 1 0 leaps #0 1 1
  67 def nL leaps #0 1 2
  68 def bL rays #0 1 1
  69 def rL rays #0 1 0
  70 def qL merge rays #0 1 0 rays #0 1 1
  71 def kL merge leaps #0 1 0 leaps #0 1 1
  72 def P
remove var ep
and < rankname #1 var bpr
and < rankname var ep rankname #1
and == filename var ep filename #1
and == rankname var ep rankname #0
and checkleap #0 #1 1 1
or checkride #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
  73 def p
remove var ep
and > rankname #1 var wpr
and > rankname var ep rankname #1
and == filename var ep filename #1
and == rankname var ep rankname #0
and checkleap #0 #1 1 1
or checkride #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
  74 def PL array where #0 0 2 where #0 0 1 where #0 -1 1 where #0 1 1
  75 def pL array where #0 0 -2 where #0 0 -1 where #0 -1 -1 where #0 1 -1
  76 def T
checkleap #0 #1 0 1
and empty #1
or and islower space #1 checkleap #0 #1 1 1
and > rank #1 rank #0
or checkleap #0 #1 3 0 or checkleap #0 #1 3 3
  77 def t
checkleap #0 #1 0 1
and empty #1
or and isupper space #1 checkleap #0 #1 1 1
and < rank #1 rank #0
or checkleap #0 #1 3 0 or checkleap #0 #1 3 3
  78 def TL mergeall leaps #0 3 0 leaps #0 3 3 leaps #0 0 1 array where #0 0 1 where #0 -1 1 where #0 1 1
  79 def tL mergeall leaps #0 3 0 leaps #0 3 3 leaps #0 0 1 array where #0 0 -1 where #0 -1 -1 where #0 1 -1
  80 def I
checkaride #0 #1 0 1
and <= distance #0 #1 var fps
and empty #1
or checkleap #0 #1 1 1
or checkleap #0 #1 1 0
  81 def i
checkaride #0 #1 0 -1
and <= distance #0 #1 var fps
and empty #1
or checkleap #0 #1 1 1
or checkleap #0 #1 1 0
  82 def iL mergeall leaps #0 1 1 leaps #0 1 0 array where #0 0 -2
  83 def IL mergeall leaps #0 1 1 leaps #0 1 0 array where #0 0 2
  84 def e checkleap #0 #1 1 1 or checkleap #0 #1 2 2
  85 def E checkleap #0 #1 1 1 or checkleap #0 #1 2 2
  86 def eL merge leaps #0 1 1 leaps #0 2 2
  87 def EL merge leaps #0 1 1 leaps #0 2 2
  88 def w checkleap #0 #1 1 0 or checkleap #0 #1 2 0
  89 def W checkleap #0 #1 1 0 or checkleap #0 #1 2 0
  90 def wL merge leaps #0 1 0 leaps #0 2 0
  91 def WL merge leaps #0 1 0 leaps #0 2 0
  92 def d checkleap #0 #1 1 0 or checkleap #0 #1 2 0 or checkleap #0 #1 1 1 or checkleap #0 #1 2 2 or checkleap #0 #1 3 0 or checkleap #0 #1 3 3
  93 def D checkleap #0 #1 1 0 or checkleap #0 #1 2 0 or checkleap #0 #1 1 1 or checkleap #0 #1 2 2 or checkleap #0 #1 3 0 or checkleap #0 #1 3 3
  94 def dL mergeall leaps #0 1 0 leaps #0 2 0 leaps #0 1 1 leaps #0 2 2 leaps #0 3 3 leaps #0 3 0
  95 def DL mergeall leaps #0 1 0 leaps #0 2 0 leaps #0 1 1 leaps #0 2 2 leaps #0 3 3 leaps #0 3 0
  96 def G fn (checkride #0 #1 1 0 and empty #0)
where #0 sign - file #1 file #0 sign - rank #1 rank #0
#1
and != file #1 file #0
and != rank #1 rank #0
or checkleap #0 #1 1 1
  97 def GL mergeall
leaps #0 1 1
rays where #0 1 1 1 0
rays where #0 1 -1 1 0
rays where #0 -1 -1 1 0
rays where #0 -1 1 1 0
  98 def g fn (checkride #0 #1 1 0 and empty #0)
where #0 sign - file #1 file #0 sign - rank #1 rank #0
#1
and != file #1 file #0
and != rank #1 rank #0
or checkleap #0 #1 1 1
  99 def gL mergeall
leaps #0 1 1
rays where #0 1 1 1 0
rays where #0 1 -1 1 0
rays where #0 -1 -1 1 0
rays where #0 -1 1 1 0
 100 def U fn (checkride #0 #1 1 1 and empty #0)
where #0 0 sign - rank #1 rank #0
#1
or fn (checkride #0 #1 1 1 and empty #0)
where #0 sign - file #1 file #0 0
#1
or checkleap #0 #1 1 0
 101 def UL mergeall
leaps #0 1 0
rays where #0 0 1 1 1
rays where #0 0 -1 1 1
rays where #0 1 0 1 1
rays where #0 -1 0 1 1
 102 def u fn (checkride #0 #1 1 1 and empty #0)
where #0 0 sign - rank #1 rank #0
#1
or fn (checkride #0 #1 1 1 and empty #0)
where #0 sign - file #1 file #0 0
#1
or checkleap #0 #1 1 0
 103 def uL mergeall
leaps #0 1 0
rays where #0 0 1 1 1
rays where #0 0 -1 1 1
rays where #0 1 0 1 1
rays where #0 -1 0 1 1
 104 def C cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1
 105 def c cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1
 106 def CL rays #0 1 0
 107 def cL rays #0 1 0
 108 def V cond cond empty #0 capture (not empty #1) (checkhop #0 #1 1 1) (checkride #0 #1 1 1) and #1
 109 def v cond cond empty #0 capture (not empty #1) (checkhop #0 #1 1 1) (checkride #0 #1 1 1) and #1
 110 def VL rays #0 1 1
 111 def vL rays #0 1 1
 112 def O cond cond empty #0 capture (not empty #1) (checkhop #0 #1 1 1) (checkride #0 #1 1 1) and #1
or cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1
 113 def o cond cond empty #0 capture (not empty #1) (checkhop #0 #1 1 1) (checkride #0 #1 1 1) and #1
or cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1
 114 def OL merge rays #0 1 1 rays #0 1 0
 115 def oL merge rays #0 1 1 rays #0 1 0
 116 def L <= distance #0 #1 2 and != #0 #1
 117 def l <= distance #0 #1 2 and != #0 #1
 118 def LL mergeall leaps #0 1 0 leaps #0 1 1 leaps #0 2 0 leaps #0 2 1 leaps #0 2 2
 119 def lL mergeall leaps #0 1 0 leaps #0 1 1 leaps #0 2 0 leaps #0 2 1 leaps #0 2 2
 120 def m checkleap #0 #1 1 3
 121 def M checkleap #0 #1 1 3
 122 def mL leaps #0 1 3
 123 def ML leaps #0 1 3
 124 def z checkleap #0 #1 2 3
 125 def Z checkleap #0 #1 2 3
 126 def zL leaps #0 2 3
 127 def ZL leaps #0 2 3
 128 def f checkleap #0 #1 1 3 or checkleap #0 #1 1 2 or checkleap #0 #1 2 3
 129 def F checkleap #0 #1 1 3 or checkleap #0 #1 1 2 or checkleap #0 #1 2 3
 130 def fL merge merge leaps #0 1 2 leaps #0 1 3 leaps #0 2 3
 131 def FL merge merge leaps #0 1 2 leaps #0 1 3 leaps #0 2 3
 132 def H fn R #0 #1 or fn N #0 #1
 133 def h fn R #0 #1 or fn N #0 #1
 134 def X fn B #0 #1 or fn N #0 #1
 135 def x fn B #0 #1 or fn N #0 #1
 136 def HL merge rays #0 1 0 leaps #0 1 2
 137 def hL merge rays #0 1 0 leaps #0 1 2
 138 def XL merge rays #0 1 1 leaps #0 1 2
 139 def xL merge rays #0 1 1 leaps #0 1 2
 140 def A fn B #0 #1 or fn R #0 #1 or fn N #0 #1
 141 def AL merge merge rays #0 1 0 rays #0 1 1 leaps #0 1 2
 142 def a fn B #0 #1 or fn R #0 #1 or fn N #0 #1
 143 def aL merge merge rays #0 1 0 rays #0 1 1 leaps #0 1 2
 144 def J fn N #0 #1 or fn K #0 #1
 145 def JL merge merge leaps #0 1 0 leaps #0 1 1 leaps #0 1 2
 146 def j fn N #0 #1 or fn K #0 #1
 147 def jL merge merge leaps #0 1 0 leaps #0 1 1 leaps #0 1 2
 148 def S checkride #0 #1 1 0 or checkleap #0 #1 1 1
 149 def Y checkride #0 #1 1 1 or checkleap #0 #1 1 0
 150 def SL merge rays #0 1 0 leaps #0 1 1
 151 def YL merge rays #0 1 1 leaps #0 1 0
 152 def s checkride #0 #1 1 0 or checkleap #0 #1 1 1
 153 def y checkride #0 #1 1 1 or checkleap #0 #1 1 0
 154 def sL merge rays #0 1 0 leaps #0 1 1
 155 def yL merge rays #0 1 1 leaps #0 1 0
 156 def mm checkleap #0 #1 1 1 or checkleap #0 #1 2 2 or checkleap #0 #1 1 0 or checkleap #0 #1 2 0
 157 def MM checkleap #0 #1 1 1 or checkleap #0 #1 2 2 or checkleap #0 #1 1 0 or checkleap #0 #1 2 0
 158 def mmL mergeall leaps #0 1 1 leaps #0 2 2 leaps #0 1 0 leaps #0 2 0
 159 def MML mergeall leaps #0 1 1 leaps #0 2 2 leaps #0 1 0 leaps #0 2 0
 160 def SH fn (checkaride #0 #1 0 1 and empty #0)
where #0 1 1
#1
or fn (checkaride #0 #1 0 1 and empty #0)
where #0 -1 1
#1
or fn (checkaride #0 #1 0 -1 and empty #0)
where #0 1 -1
#1
or fn (checkaride #0 #1 0 -1 and empty #0)
where #0 -1 -1
#1
or checkleap #0 #1 1 1
 161 def SHL mergeall
leaps #0 1 1
ray where #0 1 1 0 1
ray where #0 1 -1 0 -1
ray where #0 -1 1 0 1
ray where #0 -1 -1 0 -1
 162 def sh fn (checkaride #0 #1 0 1 and empty #0)
where #0 1 1
#1
or fn (checkaride #0 #1 0 1 and empty #0)
where #0 -1 1
#1
or fn (checkaride #0 #1 0 -1 and empty #0)
where #0 1 -1
#1
or fn (checkaride #0 #1 0 -1 and empty #0)
where #0 -1 -1
#1
or checkleap #0 #1 1 1
 163 def shL mergeall
leaps #0 1 1
ray where #0 1 1 0 1
ray where #0 1 -1 0 -1
ray where #0 -1 1 0 1
ray where #0 -1 -1 0 -1
 164 def SN fn (checkaride #0 #1 1 1 and empty #0)
where #0 0 1
#1
or fn (checkaride #0 #1 -1 1 and empty #0)
where #0 0 1
#1
or fn (checkaride #0 #1 1 1 and empty #0)
where #0 0 1
#1
or fn (checkaride #0 #1 -1 -1 and empty #0)
where #0 0 -1
#1
or fn (checkaride #0 #1 1 -1 and empty #0)
where #0 0 -1
#1
or checkaleap #0 #1 0 1
or checkaleap #0 #1 0 -1
 165 def SNL mergeall
ray where #0 0 1 1 1
ray where #0 0 1 -1 1
ray where #0 0 -1 -1 -1
ray where #0 0 -1 1 -1
where #0 0 1
where #0 0 -1
 166 def sn fn (checkaride #0 #1 1 1 and empty #0)
where #0 0 1
#1
or fn (checkaride #0 #1 -1 1 and empty #0)
where #0 0 1
#1
or fn (checkaride #0 #1 1 1 and empty #0)
where #0 0 1
#1
or fn (checkaride #0 #1 -1 -1 and empty #0)
where #0 0 -1
#1
or fn (checkaride #0 #1 1 -1 and empty #0)
where #0 0 -1
#1
or checkaleap #0 #1 0 1
or checkaleap #0 #1 0 -1
 167 def snL mergeall
ray where #0 0 1 1 1
ray where #0 0 1 -1 1
ray where #0 0 -1 -1 -1
ray where #0 0 -1 1 -1
where #0 0 1
where #0 0 -1
 168 def sq checkleap #0 #1 2 0 or checkleap #0 #1 2 2 or checkleap #0 #1 1 2
 169 def SQ checkleap #0 #1 2 0 or checkleap #0 #1 2 2 or checkleap #0 #1 1 2
 170 def sqL mergeall leaps #0 2 0 leaps #0 2 2 leaps #0 1 2
 171 def SQL mergeall leaps #0 2 0 leaps #0 2 2 leaps #0 1 2
 172 def ch checkleap #0 #1 1 3 or checkleap #0 #1 0 3 or checkleap #0 #1 2 3 or checkleap #0 #1 3 3
 173 def CH checkleap #0 #1 1 3 or checkleap #0 #1 0 3 or checkleap #0 #1 2 3 or checkleap #0 #1 3 3
 174 def chL mergeall leaps #0 0 3 leaps #0 1 3 leaps #0 2 3 leaps #0 3 3
 175 def CHL mergeall leaps #0 0 3 leaps #0 1 3 leaps #0 2 3 leaps #0 3 3
 176 def dw checkleap #0 #1 2 0 or checkleap #0 #1 2 2 or checkleap #0 #1 1 2 or checkleap #0 #1 1 3 or checkleap #0 #1 0 3 or checkleap #0 #1 2 3 or checkleap #0 #1 3 3
 177 def DW checkleap #0 #1 2 0 or checkleap #0 #1 2 2 or checkleap #0 #1 1 2 or checkleap #0 #1 1 3 or checkleap #0 #1 0 3 or checkleap #0 #1 2 3 or checkleap #0 #1 3 3
 178 def dwL mergeall leaps #0 2 0 leaps #0 2 2 leaps #0 1 2 leaps #0 0 3 leaps #0 1 3 leaps #0 2 3 leaps #0 3 3
 179 def DWL mergeall leaps #0 2 0 leaps #0 2 2 leaps #0 1 2 leaps #0 0 3 leaps #0 1 3 leaps #0 2 3 leaps #0 3 3
 180 def hk checkleap #0 #1 2 0 or checkleap #0 #1 2 2 or checkleap #0 #1 3 0 or checkleap #0 #1 3 3
 181 def HK checkleap #0 #1 2 0 or checkleap #0 #1 2 2 or checkleap #0 #1 3 0 or checkleap #0 #1 3 3
 182 def hkL mergeall leaps #0 2 0 leaps #0 2 2 leaps #0 3 3 leaps #0 3 0
 183 def HKL mergeall leaps #0 2 0 leaps #0 2 2 leaps #0 3 3 leaps #0 3 0
 184 def @ false
 185 sub checked king
 186   my from piece
 187   if isupper cond empty #king moved space #king
 188     def enemies onlylower
 189   else
 190     def enemies onlyupper
 191   endif
 192   for (from piece) fn enemies
 193     if fn #piece #from #king
 194       return #from
 195     endif
 196   next
 197   return false
 198 endsub
 199 sub P from to
 200   verify > rank #to rank #from
 201   verify <= distance #to #from #fps
 202   if capture
 203     verify checkleap #from #to 1 1
 204     set ep false
 205   elseif checkleap #from #to 1 1 and #ep
 206     verify == rankname var ep rankname #from
 207     verify == filename var ep filename #to
 208     verify < rankname var ep rankname #to
 209     capture #ep
 210     set ep false
 211   elseif > distance #to #from 1
 212     verify checkride #from #to 0 1
 213     set ep #to
 214   else
 215     verify checkleap #from #to 0 1
 216     set ep false
 217   endif
 218   if onboard where #to 0 #pzs
 219     if != space #to moved
 220       die "You may not promote a Pawn until it reaches the promotion zone."
 221     endif
 222   elseif == P space #to
 223     askpromote #wprom
 224   elseif not match space #to var wprom
 225     set np space #to
 226     die "You may not promote your Pawn to a" #np
 227   endif
 228   set nopvc 0
 229   return true
 230 endsub
 231 sub I from to
 232   if > distance #to #from 1
 233     verify <= distance #to #from #fps
 234     verify checkaride #from #to 0 1
 235     set ep #to
 236   else
 237     verify checkleap #from #to 0 1 or checkleap #from #to 1 1
 238     set ep false
 239   endif
 240   if onboard where #to 0 #pzs
 241     if != space #to moved
 242       die "You may not promote a Prince until it reaches the promotion zone."
 243     endif
 244   elseif == I space #to
 245     askpromote #wpromi
 246   elseif not match space #to var wpromi
 247     set np space #to
 248     die "You may not promote your Pawn to a" #np
 249   endif
 250   return true
 251 endsub
 252 sub p from to
 253   verify < rank #to rank #from
 254   verify <= distance #to #from #fps
 255   if capture
 256     verify checkleap #from #to 1 1
 257     set ep false
 258   elseif checkleap #from #to 1 1 and #ep
 259     verify == rankname var ep rankname #from
 260     verify == filename var ep filename #to
 261     verify > rankname var ep rankname #to
 262     capture #ep
 263     set ep false
 264   elseif > distance #to #from 1
 265     verify checkride #from #to 0 1
 266     set ep #to
 267   else
 268     verify checkleap #from #to 0 1
 269     set ep false
 270   endif
 271   if != space #to moved and onboard where #to 0 neg #pzs
 272     die You may not promote a Pawn until it reaches the promotion zone.
 273   endif
 274   if not onboard where #to 0 neg #pzs
 275     if == p space #to
 276       askpromote #bprom
 277     elseif not match space #to var bprom
 278       set np space #to
 279       die You may not promote your Pawn to a #np
 280     endif
 281   endif
 282   set nopvc 0
 283   return true
 284 endsub
 285 sub i from to
 286   if > distance #to #from 1
 287     verify <= distance #to #from #fps
 288     verify checkaride #from #to 0 -1
 289     set ep #to
 290   else
 291     verify checkleap #from #to 0 1 or checkleap #from #to 1 1
 292     set ep false
 293   endif
 294   if != space #to moved and onboard where #to 0 neg #pzs
 295     die You may not promote a Prince until it reaches the promotion zone.
 296   endif
 297   if not onboard where #to 0 neg #pzs
 298     if == i space #to
 299       askpromote #bpromi
 300     elseif not match space #to var bpromi
 301       set np space #to
 302       die You may not promote your Prince to a #np
 303     endif
 304   endif
 305   return true
 306 endsub
 307 sub T from to
 308   verify > rank #to rank #from
 309   if capture
 310     verify checkleap #from #to 1 1
 311   elseif checkleap #from #to 1 1
elseif > distance #to #from 1
 312     verify checkride #from #to 0 1
 313   else
 314     verify checkleap #from #to 0 1
 315   endif
 316   if onboard where #to 0 #pzs
 317     if != space #to moved
 318       die "You may not promote a Troll until it reaches the promotion zone."
 319     endif
 320   elseif == T space #to
 321     askpromote #wpromdw
 322   elseif not match space #to var wpromdw
 323     set np space #to
 324     die "You may not promote your Troll to a" #np
 325   endif
 326   set nopvc 0
 327   return true
 328 endsub
 329 sub t from to
 330   verify < rank #to rank #from
 331   if capture
 332     verify checkleap #from #to 1 1
 333   elseif checkleap #from #to 1 1
elseif > distance #to #from 1
 334     verify checkride #from #to 0 1
 335   else
 336     verify checkleap #from #to 0 1
 337   endif
 338   if != space #to moved and onboard where #to 0 neg #pzs
 339     die You may not promote a Troll until it reaches the promotion zone.
 340   endif
 341   if not onboard where #to 0 neg #pzs
 342     if == t space #to
 343       askpromote #bpromdw
 344     elseif not match space #to var bpromdw
 345       set np space #to
 346       die You may not promote your Troll to a #np
 347     endif
 348   endif
 349   set nopvc 0
 350   return true
 351 endsub
 352 sub K from to
 353   if not fn K #from #to
 354     restore
 355     if not flag #from
 356       die You may not move your King two spaces after it has already moved.
 357     elseif not empty #to
 358       die You may not capture another piece with the King's two-space leap.
 359     elseif sub checked #from
 360       die Your King may not leap two spaces to escape check.
 361     endif
 362     verify sub king-double-leap #from #to
 363     move #from #to
 364   endif
 365   if flag #from
 366     echo #from
 367   endif
 368   unsetflag #from #to
 369   set K #to
 370   return true
 371 endsub
 372 sub k from to
 373   if not fn k #from #to
 374     restore
 375     if not flag #from
 376       die You may not move your King two spaces after it has already moved.
 377     elseif not empty #to
 378       die You may not capture another piece with the King's two-space leap.
 379     elseif sub checked #from
 380       die Your King may not leap two spaces to escape check.
 381     endif
 382     verify sub king-double-leap #from #to
 383     move #from #to
 384   endif
 385   unsetflag #from #to
 386   set k #to
 387   return true
 388 endsub
 389 sub king-double-leap from to
 390   verify == 2 distance #from #to
 391   store
 392   if checkleap #from #to 0 2 or checkleap #from #to 2 2
 393     set over where #from sign minus file #to file #from sign minus rank #to rank #from
 394     move #from #over
 395     if sub checked #over
 396       restore
 397       return false
 398     endif
 399     restore
 400   elseif checkleap #from #to 1 2
 401     set over where #from sign minus file #to file #from sign minus rank #to rank #from
 402     move #from #over
 403     if sub checked #over
 404       restore
 405       set over where #to sign minus file #from file #to sign minus rank #from rank #to
 406       move #from #over
 407       if sub checked #over
 408         restore
 409         return false
 410       endif
 411     endif
 412     restore
 413   else
 414     return false
 415   endif
 416   return true
 417 endsub
 418 sub stalemated kingpos
 419   store
 420   local from piece to
 421   if isupper space #kingpos
 422     def friends onlyupper
 423     def friend isupper #0
 424     set cspaces var wcastle
 425   else
 426     def friends onlylower
 427     def friend islower #0
 428     set cspaces var bcastle
 429   endif
 430   set royal space var kingpos
 431   store
 432   for (from piece) fn friends
 433     for to fn join #piece L #from
 434       if fn #piece #from #to and not fn friend space #to and onboard #to
 435         move #from #to
 436         if not sub checked cond == #from #kingpos #to #kingpos
 437           setlegal #from #to
 438         endif
 439       endif
 440       restore
 441     next
 442   next
 443   if not sub checked #kingpos and flag #kingpos
 444     set tos mergeall leaps #kingpos 2 0 leaps #kingpos 2 1 leaps #kingpos 2 2
 445     for to var tos
 446       if sub king-double-leap #kingpos #to and empty #to
 447         move #from #to
 448         if not sub checked #to
 449           setlegal #kingpos #to
 450         endif
 451         restore
 452       endif
 453     next
 454   endif
 455   return cond count system legalmoves false true
 456 endsub
 457 sub N from to
 458   if onboard where #to 0 #pzs
 459     if != space #to moved
 460       die "You may not promote a Knight until it reaches the promotion zone."
 461     endif
 462   elseif == N space #to
 463     askpromote #wpromf
 464   elseif not match space #to var wpromf
 465     set np space #to
 466     die "You may not promote your Knight to a" #np
 467   endif
 468   return true
 469 endsub
 470 sub n from to
 471   if != space #to moved and onboard where #to 0 neg #pzs
 472     die You may not promote a Knight until it reaches the promotion zone.
 473   endif
 474   if not onboard where #to 0 neg #pzs
 475     if == n space #to
 476       askpromote #bpromf
 477     elseif not match space #to var bpromf
 478       set np space #to
 479       die You may not promote your Knight to a #np
 480     endif
 481   endif
 482   return true
 483 endsub
 484 sub M from to
 485   if onboard where #to 0 #pzs
 486     if != space #to moved
 487       die "You may not promote a Camel until it reaches the promotion zone."
 488     endif
 489   elseif == M space #to
 490     askpromote #wpromf
 491   elseif not match space #to var wpromf
 492     set np space #to
 493     die "You may not promote your Camel to a" #np
 494   endif
 495   return true
 496 endsub
 497 sub m from to
 498   if != space #to moved and onboard where #to 0 neg #pzs
 499     die You may not promote a Camel until it reaches the promotion zone.
 500   endif
 501   if not onboard where #to 0 neg #pzs
 502     if == m space #to
 503       askpromote #bpromf
 504     elseif not match space #to var bpromf
 505       set np space #to
 506       die You may not promote your Camel to a #np
 507     endif
 508   endif
 509   return true
 510 endsub
 511 sub Z from to
 512   if onboard where #to 0 #pzs
 513     if != space #to moved
 514       die "You may not promote a Giraffe until it reaches the promotion zone."
 515     endif
 516   elseif == Z space #to
 517     askpromote #wpromf
 518   elseif not match space #to var wpromf
 519     set np space #to
 520     die "You may not promote your Giraffe to a" #np
 521   endif
 522   return true
 523 endsub
 524 sub z from to
 525   if != space #to moved and onboard where #to 0 neg #pzs
 526     die You may not promote a Giraffe until it reaches the promotion zone.
 527   endif
 528   if not onboard where #to 0 neg #pzs
 529     if == z space #to
 530       askpromote #bpromf
 531     elseif not match space #to var bpromf
 532       set np space #to
 533       die You may not promote your Giraffe to a #np
 534     endif
 535   endif
 536   return true
 537 endsub
 538 sub E from to
 539   if onboard where #to 0 #pzs
 540     if != space #to moved
 541       die "You may not promote an Elephant until it reaches the promotion zone."
 542     endif
 543   elseif == E space #to
 544     askpromote #wproml
 545   elseif not match space #to var wproml
 546     set np space #to
 547     die "You may not promote your Elephant to a" #np
 548   endif
 549   return true
 550 endsub
 551 sub e from to
 552   if != space #to moved and onboard where #to 0 neg #pzs
 553     die You may not promote an Elephant until it reaches the promotion zone.
 554   endif
 555   if not onboard where #to 0 neg #pzs
 556     if == e space #to
 557       askpromote #bproml
 558     elseif not match space #to var bproml
 559       set np space #to
 560       die You may not promote your Elephant to a #np
 561     endif
 562   endif
 563   return true
 564 endsub
 565 sub W from to
 566   if onboard where #to 0 #pzs
 567     if != space #to moved
 568       die "You may not promote a Machine until it reaches the promotion zone."
 569     endif
 570   elseif == W space #to
 571     askpromote #wproml
 572   elseif not match space #to var wproml
 573     set np space #to
 574     die "You may not promote your Machine to a" #np
 575   endif
 576   return true
 577 endsub
 578 sub w from to
 579   if != space #to moved and onboard where #to 0 neg #pzs
 580     die You may not promote a Machine until it reaches the promotion zone.
 581   endif
 582   if not onboard where #to 0 neg #pzs
 583     if == w space #to
 584       askpromote #bproml
 585     elseif not match space #to var bproml
 586       set np space #to
 587       die You may not promote your Machine to a #np
 588     endif
 589   endif
 590   return true
 591 endsub
 592 sub J from to
 593   if onboard where #to 0 #pzs
 594     if != space #to moved
 595       die "You may not promote a Centaur until it reaches the promotion zone."
 596     endif
 597   elseif == J space #to
 598     askpromote #wproml
 599   elseif not match space #to var wproml
 600     set np space #to
 601     die "You may not promote your Centaur to a" #np
 602   endif
 603   return true
 604 endsub
 605 sub j from to
 606   if != space #to moved and onboard where #to 0 neg #pzs
 607     die You may not promote a Centaur until it reaches the promotion zone.
 608   endif
 609   if not onboard where #to 0 neg #pzs
 610     if == j space #to
 611       askpromote #bproml
 612     elseif not match space #to var bproml
 613       set np space #to
 614       die You may not promote your Centaur to a #np
 615     endif
 616   endif
 617   return true
 618 endsub
 619 sub SN from to
 620   if onboard where #to 0 #pzs
 621     if != space #to moved
 622       die "You may not promote a Snake until it reaches the promotion zone."
 623     endif
 624   elseif == SN space #to
 625     askpromote #wpromu
 626   elseif not match space #to var wpromu
 627     set np space #to
 628     die "You may not promote your Snake to a" #np
 629   endif
 630   return true
 631 endsub
 632 sub sn from to
 633   if != space #to moved and onboard where #to 0 neg #pzs
 634     die You may not promote a Snake until it reaches the promotion zone.
 635   endif
 636   if not onboard where #to 0 neg #pzs
 637     if == sn space #to
 638       askpromote #bpromu
 639     elseif not match space #to var bpromu
 640       set np space #to
 641       die You may not promote your Snake to a #np
 642     endif
 643   endif
 644   return true
 645 endsub
 646 sub SH from to
 647   if onboard where #to 0 #pzs
 648     if != space #to moved
 649       die "You may not promote a Ship until it reaches the promotion zone."
 650     endif
 651   elseif == SH space #to
 652     askpromote #wpromg
 653   elseif not match space #to var wpromg
 654     set np space #to
 655     die "You may not promote your Ship to a" #np
 656   endif
 657   return true
 658 endsub
 659 sub sh from to
 660   if != space #to moved and onboard where #to 0 neg #pzs
 661     die You may not promote a Ship until it reaches the promotion zone.
 662   endif
 663   if not onboard where #to 0 neg #pzs
 664     if == sh space #to
 665       askpromote #bpromg
 666     elseif not match space #to var bpromg
 667       set np space #to
 668       die You may not promote your Ship to a #np
 669     endif
 670   endif
 671   return true
 672 endsub
 673 sub MM from to
 674   if onboard where #to 0 #pzs
 675     if != space #to moved
 676       die "You may not promote a Mammoth until it reaches the promotion zone."
 677     endif
 678   elseif == MM space #to
 679     askpromote #wproml
 680   elseif not match space #to var wproml
 681     set np space #to
 682     die "You may not promote your Mammoth to a" #np
 683   endif
 684   return true
 685 endsub
 686 sub mm from to
 687   if != space #to moved and onboard where #to 0 neg #pzs
 688     die You may not promote a Mammoth until it reaches the promotion zone.
 689   endif
 690   if not onboard where #to 0 neg #pzs
 691     if == mm space #to
 692       askpromote #bproml
 693     elseif not match space #to var bproml
 694       set np space #to
 695       die You may not promote your Mammoth to a #np
 696     endif
 697   endif
 698   return true
 699 endsub
 700 sub SQ from to
 701   if onboard where #to 0 #pzs
 702     if != space #to moved
 703       die "You may not promote a Squirrel until it reaches the promotion zone."
 704     endif
 705   elseif == SQ space #to
 706     askpromote #wproml
 707   elseif not match space #to var wproml
 708     set np space #to
 709     die "You may not promote your Squirrel to a" #np
 710   endif
 711   return true
 712 endsub
 713 sub sq from to
 714   if != space #to moved and onboard where #to 0 neg #pzs
 715     die You may not promote a Squirrel until it reaches the promotion zone.
 716   endif
 717   if not onboard where #to 0 neg #pzs
 718     if == sq space #to
 719       askpromote #bproml
 720     elseif not match space #to var bproml
 721       set np space #to
 722       die You may not promote your Squirrel to a #np
 723     endif
 724   endif
 725   return true
 726 endsub
 727 sub HK from to
 728   if onboard where #to 0 #pzs
 729     if != space #to moved
 730       die "You may not promote a Hawk until it reaches the promotion zone."
 731     endif
 732   elseif == HK space #to
 733     askpromote #wpromd
 734   elseif not match space #to var wpromd
 735     set np space #to
 736     die "You may not promote your Hawk to a" #np
 737   endif
 738   return true
 739 endsub
 740 sub hk from to
 741   if != space #to moved and onboard where #to 0 neg #pzs
 742     die You may not promote a Hawk until it reaches the promotion zone.
 743   endif
 744   if not onboard where #to 0 neg #pzs
 745     if == hk space #to
 746       askpromote #bpromd
 747     elseif not match space #to var bpromd
 748       set np space #to
 749       die You may not promote your Hawk to a #np
 750     endif
 751   endif
 752   return true
 753 endsub
 754 set k findpiece k spaces
 755 set K findpiece K spaces
 756 setflag #k #K startofgame
 757 sub preauto1
 758   store
 759 endsub
 760 sub preauto2
 761   store
 762 endsub
 763 sub postauto1
 764   if isupper old
 765     die You may not capture your own pieces.
 766   elseif islower moved
 767     die You may not move one of your opponent's pieces.
 768   endif
 769   if not match moved P I T N M Z E W J SQ MM HK SH SN
 770     set ep false
 771     if != space dest moved
 772       die You may not change the type of this piece.
 773     elseif capture
 774       set nopvc 0
 775     else
 776       inc nopvc
 777     endif
 778   elseif == moved P
 779     set nopvc 0
 780   else
 781     inc nopvc
 782   endif
 783   if sub moved origin dest and match moved P K I T N M Z E W J SQ MM HK SH SN
 784   elseif fn moved origin dest and match moved Q R B C G L V F U H X A S Y T D O CH DW
 785   else
 786     die You may not move a moved from origin to dest
 787   endif
 788   if sub checked #K
 789     die You may not move into check.
 790   endif
 791   unsetflag origin dest
 792   set posvar join "w" join fencode boardflags
 793   inc #posvar
 794 endsub
 795 sub postauto2
 796   if islower old
 797     die You may not capture your own pieces.
 798   elseif isupper moved
 799     die You may not move one of your opponent's pieces.
 800   endif
 801   if not match moved p i t n m z e w j sq mm hk sh sn
 802     set ep false
 803     if != space dest moved
 804       die You may not change the type of this piece.
 805     elseif capture
 806       set nopvc 0
 807     else
 808       inc nopvc
 809     endif
 810   elseif == moved p
 811     set nopvc 0
 812   else
 813     inc nopvc
 814   endif
 815   if sub moved origin dest and match moved p k i t n m z e w j sq mm hk sh sn
 816   elseif fn moved origin dest and match moved q r b c g l v f u h x a s y t d o ch dw
 817   else
 818     die You may not move a moved from origin to dest
 819   endif
 820   if sub checked #k
 821     die You may not move into check.
 822   endif
 823   unsetflag origin dest
 824   set posvar join "b" join fencode boardflags
 825   inc #posvar
 826 endsub
 827 set posvar join "b" join fencode boardflags
 828 if >= var #posvar 3
 829   say Three Times Repetition! Drawn Game!
 830   drawn
 831 elseif sub stalemated #K
 832   if sub checked #K
 833     say Checkmate! Black has won!
 834     won
 835   else
 836     say Stalemate! The game is drawn.
 837     drawn
 838   endif
 839 elseif >= #nopvc 100
 840   say Fifty Moves Without Moving a Pawn or Capturing! Game Drawn!
 841   drawn
 842 elseif sub checked #K
 843   say Check!
 844 endif
 845 end
 846 

functions

Array ( [N] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 2 ) [B] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 ) [R] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 ) [Q] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => fn [6] => R [7] => #0 [8] => #1 ) [K] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 0 ) [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 ) [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 ) [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 ) [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 ) [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 ) [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] => == [25] => rankname [26] => var [27] => ep [28] => rankname [29] => #0 [30] => and [31] => checkleap [32] => #0 [33] => #1 [34] => 1 [35] => 1 [36] => or [37] => checkride [38] => #0 [39] => #1 [40] => 0 [41] => 1 [42] => and [43] => empty [44] => #1 [45] => or [46] => and [47] => islower [48] => space [49] => #1 [50] => checkleap [51] => #0 [52] => #1 [53] => 1 [54] => 1 [55] => and [56] => <= [57] => distance [58] => #0 [59] => #1 [60] => var [61] => fps [62] => and [63] => > [64] => rank [65] => #1 [66] => rank [67] => #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] => == [25] => rankname [26] => var [27] => ep [28] => rankname [29] => #0 [30] => and [31] => checkleap [32] => #0 [33] => #1 [34] => 1 [35] => 1 [36] => or [37] => checkride [38] => #0 [39] => #1 [40] => 0 [41] => 1 [42] => and [43] => empty [44] => #1 [45] => or [46] => and [47] => isupper [48] => space [49] => #1 [50] => checkleap [51] => #0 [52] => #1 [53] => 1 [54] => 1 [55] => and [56] => <= [57] => distance [58] => #0 [59] => #1 [60] => var [61] => fps [62] => and [63] => < [64] => rank [65] => #1 [66] => rank [67] => #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 ) [T] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => and [6] => empty [7] => #1 [8] => or [9] => and [10] => islower [11] => space [12] => #1 [13] => checkleap [14] => #0 [15] => #1 [16] => 1 [17] => 1 [18] => and [19] => > [20] => rank [21] => #1 [22] => rank [23] => #0 [24] => or [25] => checkleap [26] => #0 [27] => #1 [28] => 3 [29] => 0 [30] => or [31] => checkleap [32] => #0 [33] => #1 [34] => 3 [35] => 3 ) [t] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => and [6] => empty [7] => #1 [8] => or [9] => and [10] => isupper [11] => space [12] => #1 [13] => checkleap [14] => #0 [15] => #1 [16] => 1 [17] => 1 [18] => and [19] => < [20] => rank [21] => #1 [22] => rank [23] => #0 [24] => or [25] => checkleap [26] => #0 [27] => #1 [28] => 3 [29] => 0 [30] => or [31] => checkleap [32] => #0 [33] => #1 [34] => 3 [35] => 3 ) [TL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 3 [4] => 0 [5] => leaps [6] => #0 [7] => 3 [8] => 3 [9] => leaps [10] => #0 [11] => 0 [12] => 1 [13] => array [14] => where [15] => #0 [16] => 0 [17] => 1 [18] => where [19] => #0 [20] => -1 [21] => 1 [22] => where [23] => #0 [24] => 1 [25] => 1 ) [tL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 3 [4] => 0 [5] => leaps [6] => #0 [7] => 3 [8] => 3 [9] => leaps [10] => #0 [11] => 0 [12] => 1 [13] => array [14] => where [15] => #0 [16] => 0 [17] => -1 [18] => where [19] => #0 [20] => -1 [21] => -1 [22] => where [23] => #0 [24] => 1 [25] => -1 ) [I] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => and [6] => <= [7] => distance [8] => #0 [9] => #1 [10] => var [11] => fps [12] => and [13] => empty [14] => #1 [15] => or [16] => checkleap [17] => #0 [18] => #1 [19] => 1 [20] => 1 [21] => or [22] => checkleap [23] => #0 [24] => #1 [25] => 1 [26] => 0 ) [i] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => and [6] => <= [7] => distance [8] => #0 [9] => #1 [10] => var [11] => fps [12] => and [13] => empty [14] => #1 [15] => or [16] => checkleap [17] => #0 [18] => #1 [19] => 1 [20] => 1 [21] => or [22] => checkleap [23] => #0 [24] => #1 [25] => 1 [26] => 0 ) [iL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 0 [9] => array [10] => where [11] => #0 [12] => 0 [13] => -2 ) [IL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 0 [9] => array [10] => where [11] => #0 [12] => 0 [13] => 2 ) [e] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 ) [E] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 ) [eL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 2 [8] => 2 ) [EL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 2 [8] => 2 ) [w] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 0 ) [W] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 0 ) [wL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 0 ) [WL] => Array ( [0] => merge [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 0 ) [d] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 0 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 1 [16] => 1 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 2 [22] => 2 [23] => or [24] => checkleap [25] => #0 [26] => #1 [27] => 3 [28] => 0 [29] => or [30] => checkleap [31] => #0 [32] => #1 [33] => 3 [34] => 3 ) [D] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 0 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 1 [16] => 1 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 2 [22] => 2 [23] => or [24] => checkleap [25] => #0 [26] => #1 [27] => 3 [28] => 0 [29] => or [30] => checkleap [31] => #0 [32] => #1 [33] => 3 [34] => 3 ) [dL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 0 [9] => leaps [10] => #0 [11] => 1 [12] => 1 [13] => leaps [14] => #0 [15] => 2 [16] => 2 [17] => leaps [18] => #0 [19] => 3 [20] => 3 [21] => leaps [22] => #0 [23] => 3 [24] => 0 ) [DL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 0 [9] => leaps [10] => #0 [11] => 1 [12] => 1 [13] => leaps [14] => #0 [15] => 2 [16] => 2 [17] => leaps [18] => #0 [19] => 3 [20] => 3 [21] => leaps [22] => #0 [23] => 3 [24] => 0 ) [G] => Array ( [0] => fn [1] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 [5] => and [6] => empty [7] => #0 ) [2] => where [3] => #0 [4] => sign [5] => - [6] => file [7] => #1 [8] => file [9] => #0 [10] => sign [11] => - [12] => rank [13] => #1 [14] => rank [15] => #0 [16] => #1 [17] => and [18] => != [19] => file [20] => #1 [21] => file [22] => #0 [23] => and [24] => != [25] => rank [26] => #1 [27] => rank [28] => #0 [29] => or [30] => checkleap [31] => #0 [32] => #1 [33] => 1 [34] => 1 ) [GL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => rays [6] => where [7] => #0 [8] => 1 [9] => 1 [10] => 1 [11] => 0 [12] => rays [13] => where [14] => #0 [15] => 1 [16] => -1 [17] => 1 [18] => 0 [19] => rays [20] => where [21] => #0 [22] => -1 [23] => -1 [24] => 1 [25] => 0 [26] => rays [27] => where [28] => #0 [29] => -1 [30] => 1 [31] => 1 [32] => 0 ) [g] => Array ( [0] => fn [1] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 [5] => and [6] => empty [7] => #0 ) [2] => where [3] => #0 [4] => sign [5] => - [6] => file [7] => #1 [8] => file [9] => #0 [10] => sign [11] => - [12] => rank [13] => #1 [14] => rank [15] => #0 [16] => #1 [17] => and [18] => != [19] => file [20] => #1 [21] => file [22] => #0 [23] => and [24] => != [25] => rank [26] => #1 [27] => rank [28] => #0 [29] => or [30] => checkleap [31] => #0 [32] => #1 [33] => 1 [34] => 1 ) [gL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => rays [6] => where [7] => #0 [8] => 1 [9] => 1 [10] => 1 [11] => 0 [12] => rays [13] => where [14] => #0 [15] => 1 [16] => -1 [17] => 1 [18] => 0 [19] => rays [20] => where [21] => #0 [22] => -1 [23] => -1 [24] => 1 [25] => 0 [26] => rays [27] => where [28] => #0 [29] => -1 [30] => 1 [31] => 1 [32] => 0 ) [U] => Array ( [0] => fn [1] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [2] => where [3] => #0 [4] => 0 [5] => sign [6] => - [7] => rank [8] => #1 [9] => rank [10] => #0 [11] => #1 [12] => or [13] => fn [14] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [15] => where [16] => #0 [17] => sign [18] => - [19] => file [20] => #1 [21] => file [22] => #0 [23] => 0 [24] => #1 [25] => or [26] => checkleap [27] => #0 [28] => #1 [29] => 1 [30] => 0 ) [UL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => where [7] => #0 [8] => 0 [9] => 1 [10] => 1 [11] => 1 [12] => rays [13] => where [14] => #0 [15] => 0 [16] => -1 [17] => 1 [18] => 1 [19] => rays [20] => where [21] => #0 [22] => 1 [23] => 0 [24] => 1 [25] => 1 [26] => rays [27] => where [28] => #0 [29] => -1 [30] => 0 [31] => 1 [32] => 1 ) [u] => Array ( [0] => fn [1] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [2] => where [3] => #0 [4] => 0 [5] => sign [6] => - [7] => rank [8] => #1 [9] => rank [10] => #0 [11] => #1 [12] => or [13] => fn [14] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [15] => where [16] => #0 [17] => sign [18] => - [19] => file [20] => #1 [21] => file [22] => #0 [23] => 0 [24] => #1 [25] => or [26] => checkleap [27] => #0 [28] => #1 [29] => 1 [30] => 0 ) [uL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => rays [6] => where [7] => #0 [8] => 0 [9] => 1 [10] => 1 [11] => 1 [12] => rays [13] => where [14] => #0 [15] => 0 [16] => -1 [17] => 1 [18] => 1 [19] => rays [20] => where [21] => #0 [22] => 1 [23] => 0 [24] => 1 [25] => 1 [26] => rays [27] => where [28] => #0 [29] => -1 [30] => 0 [31] => 1 [32] => 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 ) [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 ) [CL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 0 ) [cL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 0 ) [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 ) [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 ) [VL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [vL] => Array ( [0] => rays [1] => #0 [2] => 1 [3] => 1 ) [O] => 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 [10] => or [11] => cond [12] => cond [13] => empty [14] => #0 [15] => capture [16] => Array ( [0] => not [1] => empty [2] => #1 ) [17] => Array ( [0] => checkhop [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [18] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [19] => and [20] => #1 ) [o] => 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 [10] => or [11] => cond [12] => cond [13] => empty [14] => #0 [15] => capture [16] => Array ( [0] => not [1] => empty [2] => #1 ) [17] => Array ( [0] => checkhop [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [18] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 0 [4] => 1 ) [19] => and [20] => #1 ) [OL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 0 ) [oL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => rays [6] => #0 [7] => 1 [8] => 0 ) [L] => Array ( [0] => <= [1] => distance [2] => #0 [3] => #1 [4] => 2 [5] => and [6] => != [7] => #0 [8] => #1 ) [l] => Array ( [0] => <= [1] => distance [2] => #0 [3] => #1 [4] => 2 [5] => and [6] => != [7] => #0 [8] => #1 ) [LL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 2 [12] => 0 [13] => leaps [14] => #0 [15] => 2 [16] => 1 [17] => leaps [18] => #0 [19] => 2 [20] => 2 ) [lL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 1 [9] => leaps [10] => #0 [11] => 2 [12] => 0 [13] => leaps [14] => #0 [15] => 2 [16] => 1 [17] => leaps [18] => #0 [19] => 2 [20] => 2 ) [m] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 3 ) [M] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 3 ) [mL] => Array ( [0] => leaps [1] => #0 [2] => 1 [3] => 3 ) [ML] => Array ( [0] => leaps [1] => #0 [2] => 1 [3] => 3 ) [z] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 3 ) [Z] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 3 ) [zL] => Array ( [0] => leaps [1] => #0 [2] => 2 [3] => 3 ) [ZL] => Array ( [0] => leaps [1] => #0 [2] => 2 [3] => 3 ) [f] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 3 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 2 [16] => 3 ) [F] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 3 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 2 [16] => 3 ) [fL] => Array ( [0] => merge [1] => merge [2] => leaps [3] => #0 [4] => 1 [5] => 2 [6] => leaps [7] => #0 [8] => 1 [9] => 3 [10] => leaps [11] => #0 [12] => 2 [13] => 3 ) [FL] => Array ( [0] => merge [1] => merge [2] => leaps [3] => #0 [4] => 1 [5] => 2 [6] => leaps [7] => #0 [8] => 1 [9] => 3 [10] => leaps [11] => #0 [12] => 2 [13] => 3 ) [H] => Array ( [0] => fn [1] => R [2] => #0 [3] => #1 [4] => or [5] => fn [6] => N [7] => #0 [8] => #1 ) [h] => Array ( [0] => fn [1] => R [2] => #0 [3] => #1 [4] => or [5] => fn [6] => N [7] => #0 [8] => #1 ) [X] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => fn [6] => N [7] => #0 [8] => #1 ) [x] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => fn [6] => N [7] => #0 [8] => #1 ) [HL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 2 ) [hL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 2 ) [XL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 2 ) [xL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 2 ) [A] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => fn [6] => R [7] => #0 [8] => #1 [9] => or [10] => fn [11] => N [12] => #0 [13] => #1 ) [AL] => Array ( [0] => merge [1] => merge [2] => rays [3] => #0 [4] => 1 [5] => 0 [6] => rays [7] => #0 [8] => 1 [9] => 1 [10] => leaps [11] => #0 [12] => 1 [13] => 2 ) [a] => Array ( [0] => fn [1] => B [2] => #0 [3] => #1 [4] => or [5] => fn [6] => R [7] => #0 [8] => #1 [9] => or [10] => fn [11] => N [12] => #0 [13] => #1 ) [aL] => Array ( [0] => merge [1] => merge [2] => rays [3] => #0 [4] => 1 [5] => 0 [6] => rays [7] => #0 [8] => 1 [9] => 1 [10] => leaps [11] => #0 [12] => 1 [13] => 2 ) [J] => Array ( [0] => fn [1] => N [2] => #0 [3] => #1 [4] => or [5] => fn [6] => K [7] => #0 [8] => #1 ) [JL] => Array ( [0] => merge [1] => merge [2] => leaps [3] => #0 [4] => 1 [5] => 0 [6] => leaps [7] => #0 [8] => 1 [9] => 1 [10] => leaps [11] => #0 [12] => 1 [13] => 2 ) [j] => Array ( [0] => fn [1] => N [2] => #0 [3] => #1 [4] => or [5] => fn [6] => K [7] => #0 [8] => #1 ) [jL] => Array ( [0] => merge [1] => merge [2] => leaps [3] => #0 [4] => 1 [5] => 0 [6] => leaps [7] => #0 [8] => 1 [9] => 1 [10] => leaps [11] => #0 [12] => 1 [13] => 2 ) [S] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 1 ) [Y] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 0 ) [SL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [YL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 0 ) [s] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 1 ) [y] => Array ( [0] => checkride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 1 [10] => 0 ) [sL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 0 [5] => leaps [6] => #0 [7] => 1 [8] => 1 ) [yL] => Array ( [0] => merge [1] => rays [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 1 [8] => 0 ) [mm] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 1 [16] => 0 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 2 [22] => 0 ) [MM] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 1 [16] => 0 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 2 [22] => 0 ) [mmL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 2 [8] => 2 [9] => leaps [10] => #0 [11] => 1 [12] => 0 [13] => leaps [14] => #0 [15] => 2 [16] => 0 ) [MML] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => leaps [6] => #0 [7] => 2 [8] => 2 [9] => leaps [10] => #0 [11] => 1 [12] => 0 [13] => leaps [14] => #0 [15] => 2 [16] => 0 ) [SH] => Array ( [0] => fn [1] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => and [6] => empty [7] => #0 ) [2] => where [3] => #0 [4] => 1 [5] => 1 [6] => #1 [7] => or [8] => fn [9] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => and [6] => empty [7] => #0 ) [10] => where [11] => #0 [12] => -1 [13] => 1 [14] => #1 [15] => or [16] => fn [17] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => and [6] => empty [7] => #0 ) [18] => where [19] => #0 [20] => 1 [21] => -1 [22] => #1 [23] => or [24] => fn [25] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => and [6] => empty [7] => #0 ) [26] => where [27] => #0 [28] => -1 [29] => -1 [30] => #1 [31] => or [32] => checkleap [33] => #0 [34] => #1 [35] => 1 [36] => 1 ) [SHL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => ray [6] => where [7] => #0 [8] => 1 [9] => 1 [10] => 0 [11] => 1 [12] => ray [13] => where [14] => #0 [15] => 1 [16] => -1 [17] => 0 [18] => -1 [19] => ray [20] => where [21] => #0 [22] => -1 [23] => 1 [24] => 0 [25] => 1 [26] => ray [27] => where [28] => #0 [29] => -1 [30] => -1 [31] => 0 [32] => -1 ) [sh] => Array ( [0] => fn [1] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => and [6] => empty [7] => #0 ) [2] => where [3] => #0 [4] => 1 [5] => 1 [6] => #1 [7] => or [8] => fn [9] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => 1 [5] => and [6] => empty [7] => #0 ) [10] => where [11] => #0 [12] => -1 [13] => 1 [14] => #1 [15] => or [16] => fn [17] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => and [6] => empty [7] => #0 ) [18] => where [19] => #0 [20] => 1 [21] => -1 [22] => #1 [23] => or [24] => fn [25] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 0 [4] => -1 [5] => and [6] => empty [7] => #0 ) [26] => where [27] => #0 [28] => -1 [29] => -1 [30] => #1 [31] => or [32] => checkleap [33] => #0 [34] => #1 [35] => 1 [36] => 1 ) [shL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 1 [4] => 1 [5] => ray [6] => where [7] => #0 [8] => 1 [9] => 1 [10] => 0 [11] => 1 [12] => ray [13] => where [14] => #0 [15] => 1 [16] => -1 [17] => 0 [18] => -1 [19] => ray [20] => where [21] => #0 [22] => -1 [23] => 1 [24] => 0 [25] => 1 [26] => ray [27] => where [28] => #0 [29] => -1 [30] => -1 [31] => 0 [32] => -1 ) [SN] => Array ( [0] => fn [1] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [2] => where [3] => #0 [4] => 0 [5] => 1 [6] => #1 [7] => or [8] => fn [9] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => -1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [10] => where [11] => #0 [12] => 0 [13] => 1 [14] => #1 [15] => or [16] => fn [17] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [18] => where [19] => #0 [20] => 0 [21] => 1 [22] => #1 [23] => or [24] => fn [25] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => -1 [4] => -1 [5] => and [6] => empty [7] => #0 ) [26] => where [27] => #0 [28] => 0 [29] => -1 [30] => #1 [31] => or [32] => fn [33] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 1 [4] => -1 [5] => and [6] => empty [7] => #0 ) [34] => where [35] => #0 [36] => 0 [37] => -1 [38] => #1 [39] => or [40] => checkaleap [41] => #0 [42] => #1 [43] => 0 [44] => 1 [45] => or [46] => checkaleap [47] => #0 [48] => #1 [49] => 0 [50] => -1 ) [SNL] => Array ( [0] => mergeall [1] => ray [2] => where [3] => #0 [4] => 0 [5] => 1 [6] => 1 [7] => 1 [8] => ray [9] => where [10] => #0 [11] => 0 [12] => 1 [13] => -1 [14] => 1 [15] => ray [16] => where [17] => #0 [18] => 0 [19] => -1 [20] => -1 [21] => -1 [22] => ray [23] => where [24] => #0 [25] => 0 [26] => -1 [27] => 1 [28] => -1 [29] => where [30] => #0 [31] => 0 [32] => 1 [33] => where [34] => #0 [35] => 0 [36] => -1 ) [sn] => Array ( [0] => fn [1] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [2] => where [3] => #0 [4] => 0 [5] => 1 [6] => #1 [7] => or [8] => fn [9] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => -1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [10] => where [11] => #0 [12] => 0 [13] => 1 [14] => #1 [15] => or [16] => fn [17] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 1 [4] => 1 [5] => and [6] => empty [7] => #0 ) [18] => where [19] => #0 [20] => 0 [21] => 1 [22] => #1 [23] => or [24] => fn [25] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => -1 [4] => -1 [5] => and [6] => empty [7] => #0 ) [26] => where [27] => #0 [28] => 0 [29] => -1 [30] => #1 [31] => or [32] => fn [33] => Array ( [0] => checkaride [1] => #0 [2] => #1 [3] => 1 [4] => -1 [5] => and [6] => empty [7] => #0 ) [34] => where [35] => #0 [36] => 0 [37] => -1 [38] => #1 [39] => or [40] => checkaleap [41] => #0 [42] => #1 [43] => 0 [44] => 1 [45] => or [46] => checkaleap [47] => #0 [48] => #1 [49] => 0 [50] => -1 ) [snL] => Array ( [0] => mergeall [1] => ray [2] => where [3] => #0 [4] => 0 [5] => 1 [6] => 1 [7] => 1 [8] => ray [9] => where [10] => #0 [11] => 0 [12] => 1 [13] => -1 [14] => 1 [15] => ray [16] => where [17] => #0 [18] => 0 [19] => -1 [20] => -1 [21] => -1 [22] => ray [23] => where [24] => #0 [25] => 0 [26] => -1 [27] => 1 [28] => -1 [29] => where [30] => #0 [31] => 0 [32] => 1 [33] => where [34] => #0 [35] => 0 [36] => -1 ) [sq] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 1 [16] => 2 ) [SQ] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 1 [16] => 2 ) [sqL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 2 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 2 [9] => leaps [10] => #0 [11] => 1 [12] => 2 ) [SQL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 2 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 2 [9] => leaps [10] => #0 [11] => 1 [12] => 2 ) [ch] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 3 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 0 [10] => 3 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 2 [16] => 3 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 3 [22] => 3 ) [CH] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 1 [4] => 3 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 0 [10] => 3 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 2 [16] => 3 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 3 [22] => 3 ) [chL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 0 [4] => 3 [5] => leaps [6] => #0 [7] => 1 [8] => 3 [9] => leaps [10] => #0 [11] => 2 [12] => 3 [13] => leaps [14] => #0 [15] => 3 [16] => 3 ) [CHL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 0 [4] => 3 [5] => leaps [6] => #0 [7] => 1 [8] => 3 [9] => leaps [10] => #0 [11] => 2 [12] => 3 [13] => leaps [14] => #0 [15] => 3 [16] => 3 ) [dw] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 1 [16] => 2 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 1 [22] => 3 [23] => or [24] => checkleap [25] => #0 [26] => #1 [27] => 0 [28] => 3 [29] => or [30] => checkleap [31] => #0 [32] => #1 [33] => 2 [34] => 3 [35] => or [36] => checkleap [37] => #0 [38] => #1 [39] => 3 [40] => 3 ) [DW] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 1 [16] => 2 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 1 [22] => 3 [23] => or [24] => checkleap [25] => #0 [26] => #1 [27] => 0 [28] => 3 [29] => or [30] => checkleap [31] => #0 [32] => #1 [33] => 2 [34] => 3 [35] => or [36] => checkleap [37] => #0 [38] => #1 [39] => 3 [40] => 3 ) [dwL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 2 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 2 [9] => leaps [10] => #0 [11] => 1 [12] => 2 [13] => leaps [14] => #0 [15] => 0 [16] => 3 [17] => leaps [18] => #0 [19] => 1 [20] => 3 [21] => leaps [22] => #0 [23] => 2 [24] => 3 [25] => leaps [26] => #0 [27] => 3 [28] => 3 ) [DWL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 2 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 2 [9] => leaps [10] => #0 [11] => 1 [12] => 2 [13] => leaps [14] => #0 [15] => 0 [16] => 3 [17] => leaps [18] => #0 [19] => 1 [20] => 3 [21] => leaps [22] => #0 [23] => 2 [24] => 3 [25] => leaps [26] => #0 [27] => 3 [28] => 3 ) [hk] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 3 [16] => 0 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 3 [22] => 3 ) [HK] => Array ( [0] => checkleap [1] => #0 [2] => #1 [3] => 2 [4] => 0 [5] => or [6] => checkleap [7] => #0 [8] => #1 [9] => 2 [10] => 2 [11] => or [12] => checkleap [13] => #0 [14] => #1 [15] => 3 [16] => 0 [17] => or [18] => checkleap [19] => #0 [20] => #1 [21] => 3 [22] => 3 ) [hkL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 2 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 2 [9] => leaps [10] => #0 [11] => 3 [12] => 3 [13] => leaps [14] => #0 [15] => 3 [16] => 0 ) [HKL] => Array ( [0] => mergeall [1] => leaps [2] => #0 [3] => 2 [4] => 0 [5] => leaps [6] => #0 [7] => 2 [8] => 2 [9] => leaps [10] => #0 [11] => 3 [12] => 3 [13] => leaps [14] => #0 [15] => 3 [16] => 0 ) [@] => Array ( [0] => false ) [friends] => Array ( [0] => onlyupper ) [friend] => Array ( [0] => isupper [1] => #0 ) [enemies] => Array ( [0] => onlylower ) )

uservar

Array ( [0] => Array ( [main] => Array ( [ep] => [mypieces] => Array ( [a] => bamazon.png [A] => wamazon.png [b] => bbishop.png [B] => wbishop.png [c] => bcannon.png [C] => wcannon.png [d] => bfalcon.png [D] => wfalcon.png [e] => belephant.png [E] => welephant.png [f] => bwildebeest.png [F] => wwildebeest.png [g] => bgryphon.png [G] => wgryphon.png [h] => bchancellor.png [H] => wchancellor.png [i] => bduke.png [I] => wduke.png [j] => bknightguard.png [J] => wknightguard.png [k] => bking.png [K] => wking.png [l] => blion.png [L] => wlion.png [m] => bcamel.png [M] => wcamel.png [n] => bknight.png [N] => wknight.png [o] => bslidinggeneral.png [O] => wslidinggeneral.png [p] => bpawn.png [P] => wpawn.png [q] => bqueen.png [Q] => wqueen.png [r] => brook.png [R] => wrook.png [s] => bpromotedrook.png [S] => wpromotedrook.png [t] => bman.png [T] => wman.png [u] => brhino.png [U] => wrhino.png [v] => bcrocodile.png [V] => wcrocodile.png [w] => bwarmachinewazir.png [W] => wwarmachinewazir.png [x] => bcardinal.png [X] => wcardinal.png [y] => bpromotedbishop.png [Y] => wpromotedbishop.png [z] => bgiraffe.png [Z] => wgiraffe.png [sq] => bsquirrel.png [SQ] => wsquirrel.png [sn] => bsnake.png [SN] => wsnake.png [sh] => bship.png [SH] => wship.png [hk] => bbird.png [HK] => wbird.png [mm] => bram.png [MM] => wram.png [ch] => btiger.png [CH] => wtiger.png [dw] => bdragon.png [DW] => wdragon.png ) [label] => Z [wpr] => 5 [bpr] => 12 [wsr] => 4 [bsr] => 13 [fps] => 2 [pzs] => 1 [wprom] => Q [bprom] => q [wpromi] => A [bpromi] => a [wpromf] => F [bpromf] => f [wproml] => L [bproml] => l [wpromd] => D [bpromd] => d [wpromg] => G [bpromg] => g [wpromu] => U [bpromu] => u [wpromdw] => DW [bpromdw] => dw [k] => h15 [K] => h2 [posvar] => b{bi}{ra}{sq}{ti}jfoa{dr}duj{ti}{sq}{ra}{bi}cmzvsxlkqghyvzmcernb{sh}{sn}iwwi{sn}{sh}bnret{cp}t{cp}t{cp}t{cp}{cp}t{cp}t{cp}t{cp}tpppppppppppppppp96PPPPPPPPPPPPPPPPT{CP}T{CP}T{CP}T{CP}{CP}T{CP}T{CP}T{CP}TERNB{SH}{SN}IWWI{SN}{SH}BNRECMZVSXLKQGHYVZMC{BI}{RA}{SQ}{TI}JFOA{DR}DUJ{TI}{SQ}{RA}{BI},h15,h2 [cspaces] => [royal] => K ) ) [2] => Array ( [stalemated] => Array ( [subargs] => Array ( [0] => h2 ) ) [main] => Array ( [kingpos] => h2 [from] => a5 [piece] => P [to] => a7 ) ) [8] => Array ( [checked] => Array ( [subargs] => Array ( [0] => h2 ) [from] => a16 [piece] => bi ) [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 ( )