Since no firstrank constant has been stored for this game, one will be calculated by analyzing the moves in the game. This will work only if the game lasted long enough to put enough pieces into play.

mv is g2-g3, p is #p, o is g2

space g2 is P

0 P g2-g3 27 61 59 61 59 61 59 29

11011 111101 111011 111101 111011 111101 111011 11101

mv is d7-d6, p is #p, o is d7

space d7 is p

1 p d7-d6 27 61 59 61 59 61 59 29

11011 111101 111011 111101 111011 111101 111011 11101

mv is d2-d4, p is #p, o is d2

space d2 is P

2 P d2-d4 27 61 59 61 59 61 59 29

11011 111101 111011 111101 111011 111101 111011 11101

mv is n e8-f6, p is n, o is e8

space e8 is e1

3 e1 n e8-f6 27 61 59 61 59 61 59 29

11011 111101 111011 111101 111011 111101 111011 11101

5 one bits in var e1

11011 111101 111011 111101 1 111101 111011 11101

q end n e8-f6 27 61 59 61 1 61 59 29

bb end n e8-f6 27 61 59 61 1 61 59 29

bw end n e8-f6 27 61 59 61 1 61 59 29

firstr is a1, and lastr is h1

r n e8-f6 27 61 59 61 1 61 59 29

first 27 61 59 61 1 61 59 29

mv is c1-g5, p is #p, o is c1

space c1 is c1

4 c1 c1-g5 27 61 59 61 1 61 59 29

11011 111101 111011 111101 1 111101 111011 11101

5 one bits in var c1

11011 111101 10010 111101 1 111101 111011 11101

q end c1-g5 27 61 18 61 1 61 59 29

bb end c1-g5 27 61 18 61 1 61 59 29

bw end c1-g5 27 61 18 61 1 61 59 29

firstr is a1, and lastr is h1

r c1-g5 27 61 18 61 1 61 59 29

first 27 61 18 61 1 61 59 29

mv is b c8-f5, p is b, o is c8

space c8 is c1

5 c1 b c8-f5 27 61 18 61 1 61 59 29

11011 111101 10010 111101 1 111101 111011 11101

2 one bits in var c1

11011 111101 10 111101 1 111101 111011 11101

q end b c8-f5 27 61 2 61 1 61 59 29

bb end b c8-f5 25 61 2 61 1 61 57 29

bw end b c8-f5 25 61 2 61 1 61 57 29

firstr is a1, and lastr is h1

r b c8-f5 25 61 2 61 1 61 57 29

first 25 61 2 61 1 61 57 29

11001 111101 10 111101 1 111101 111001 11101

q end b c8-f5 25 61 2 61 1 61 57 29

bb end b c8-f5 25 61 2 61 1 61 57 29

bw end b c8-f5 25 61 2 61 1 61 57 29

firstr is a1, and lastr is h1

r b c8-f5 25 61 2 61 1 61 57 29

first 25 61 2 61 1 61 57 29

mv is e1-d3, p is #p, o is e1

space e1 is e1

6 e1 e1-d3 25 61 2 61 1 61 57 29

11001 111101 10 111101 1 111101 111001 11101

1 one bits in var e1

11001 111101 10 111101 1 111101 111001 11101

q end e1-d3 25 61 2 61 1 61 57 29

bb end e1-d3 25 61 2 61 1 61 57 29

bw end e1-d3 25 61 2 61 1 61 57 29

firstr is a1, and lastr is h1

r e1-d3 25 61 2 61 1 61 57 29

first 25 61 2 61 1 61 57 29

mv is h7-h6, p is #p, o is h7

space h7 is p

7 p h7-h6 25 61 2 61 1 61 57 29

11001 111101 10 111101 1 111101 111001 11101

mv is g5-e3, p is #p, o is g5

space g5 is c1

8 c1 g5-e3 25 61 2 61 1 61 57 29

11001 111101 10 111101 1 111101 111001 11101

1 one bits in var c1

11001 111101 10 111101 1 111101 111001 11101

q end g5-e3 25 61 2 61 1 61 57 29

bb end g5-e3 25 61 2 61 1 61 57 29

bw end g5-e3 25 61 2 61 1 61 57 29

firstr is a1, and lastr is h1

r g5-e3 25 61 2 61 1 61 57 29

first 25 61 2 61 1 61 57 29

mv is g7-g5, p is #p, o is g7

space g7 is p

9 p g7-g5 25 61 2 61 1 61 57 29

11001 111101 10 111101 1 111101 111001 11101

mv is f2-f4, p is #p, o is f2

space f2 is P

10 P f2-f4 25 61 2 61 1 61 57 29

11001 111101 10 111101 1 111101 111001 11101

mv is b f5-e4, p is b, o is f5

space f5 is c1

11 c1 b f5-e4 25 61 2 61 1 61 57 29

11001 111101 10 111101 1 111101 111001 11101

1 one bits in var c1

11001 111101 10 111101 1 111101 111001 11101

q end b f5-e4 25 61 2 61 1 61 57 29

bb end b f5-e4 25 61 2 61 1 61 57 29

bw end b f5-e4 25 61 2 61 1 61 57 29

firstr is a1, and lastr is h1

r b f5-e4 25 61 2 61 1 61 57 29

first 25 61 2 61 1 61 57 29

mv is h1-e4, p is #p, o is h1

space h1 is h1

12 h1 h1-e4 25 61 2 61 1 61 57 29

11001 111101 10 111101 1 111101 111001 11101

4 one bits in var h1

11001 111101 10 111101 1 111101 111001 10100

q end h1-e4 25 61 2 61 1 61 57 20

bb end h1-e4 25 61 2 61 1 61 57 20

bw end h1-e4 25 61 2 61 1 61 57 20

firstr is a1, and lastr is g1

r h1-e4 25 61 2 61 1 61 25 20

first 25 61 2 61 1 61 25 20

11001 111101 10 111101 1 111101 11001 10100

q end h1-e4 25 61 2 61 1 61 25 20

bb end h1-e4 25 61 2 61 1 61 25 20

bw end h1-e4 25 61 2 61 1 61 25 20

firstr is a1, and lastr is g1

r h1-e4 25 61 2 61 1 61 25 20

first 25 61 2 61 1 61 25 20

mv is n f6-e4, p is n, o is f6

space f6 is e1

13 e1 n f6-e4 25 61 2 61 1 61 25 20

11001 111101 10 111101 1 111101 11001 10100

1 one bits in var e1

11001 111101 10 111101 1 111101 11001 10100

q end n f6-e4 25 61 2 61 1 61 25 20

bb end n f6-e4 25 61 2 61 1 61 25 20

bw end n f6-e4 25 61 2 61 1 61 25 20

firstr is a1, and lastr is g1

r n f6-e4 25 61 2 61 1 61 25 20

first 25 61 2 61 1 61 25 20

mv is d1-e1, p is #p, o is d1

space d1 is d1

14 d1 d1-e1 25 61 2 61 1 61 25 20

11001 111101 10 111101 1 111101 11001 10100

5 one bits in var d1

11001 111101 10 111000 1 111101 11001 10100

q end d1-e1 25 61 2 56 1 61 25 20

bb end d1-e1 25 61 2 56 1 61 25 20

bw end d1-e1 25 61 2 56 1 61 25 20

firstr is a1, and lastr is g1

r d1-e1 25 61 2 56 1 61 25 20

first 25 61 2 56 1 61 25 20

mv is q d8-d7, p is q, o is d8

space d8 is d1

15 d1 q d8-d7 25 61 2 56 1 61 25 20

11001 111101 10 111000 1 111101 11001 10100

3 one bits in var d1

11001 111101 10 10000 1 111101 11001 10100

queen before q d8-d7 25 61 2 16 1 61 25 20

queen after q d8-d7 9 45 2 16 1 45 9 4

q end q d8-d7 9 45 2 16 1 45 9 4

bb end q d8-d7 9 45 2 16 1 45 9 4

bw end q d8-d7 9 41 2 16 1 41 9 4

firstr is a1, and lastr is g1

r q d8-d7 9 41 2 16 1 41 9 4

first 9 41 2 16 1 41 9 4

1001 101001 10 10000 1 101001 1001 100

q end q d8-d7 9 41 2 16 1 41 9 4

bb end q d8-d7 9 41 2 16 1 41 9 4

bw end q d8-d7 9 41 2 16 1 41 9 4

firstr is a1, and lastr is g1

r q d8-d7 9 41 2 16 1 41 9 4

first 9 41 2 16 1 41 9 4

mv is g1-f3, p is #p, o is g1

space g1 is g1

16 g1 g1-f3 9 41 2 16 1 41 9 4

1001 101001 10 10000 1 101001 1001 100

2 one bits in var g1

1001 101001 10 10000 1 101001 1 100

q end g1-f3 9 41 2 16 1 41 1 4

bb end g1-f3 9 41 2 16 1 41 1 4

bw end g1-f3 9 41 2 16 1 41 1 4

firstr is a1, and lastr is f1

One Rook found

g1 1

h1 4

r g1-f3 9 33 2 16 1 8 1 4

first 9 33 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end g1-f3 8 32 2 16 1 8 1 4

bb end g1-f3 8 32 2 16 1 8 1 4

bw end g1-f3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r a8-d8, p is r, o is a8

space a8 is a1

17 a1 r a8-d8 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r a8-d8 8 32 2 16 1 8 1 4

bb end r a8-d8 8 32 2 16 1 8 1 4

bw end r a8-d8 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is R a1-d1, p is R, o is a1

space a1 is a1

18 a1 R a1-d1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end R a1-d1 8 32 2 16 1 8 1 4

bb end R a1-d1 8 32 2 16 1 8 1 4

bw end R a1-d1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b h8-f6, p is b, o is h8

space h8 is h1

19 h1 b h8-f6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b h8-f6 8 32 2 16 1 8 1 4

bb end b h8-f6 8 32 2 16 1 8 1 4

bw end b h8-f6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is f4-g5, p is #p, o is f4

space f4 is P

20 P f4-g5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is h6-g5, p is #p, o is h6

space h6 is p

21 p h6-g5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is d3-f2, p is #p, o is d3

space d3 is e1

22 e1 d3-f2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var e1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d3-f2 8 32 2 16 1 8 1 4

bb end d3-f2 8 32 2 16 1 8 1 4

bw end d3-f2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is n e4-f2, p is n, o is e4

space e4 is e1

23 e1 n e4-f2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var e1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end n e4-f2 8 32 2 16 1 8 1 4

bb end n e4-f2 8 32 2 16 1 8 1 4

bw end n e4-f2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e1-f2, p is #p, o is e1

space e1 is d1

24 d1 e1-f2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var d1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e1-f2 8 32 2 16 1 8 1 4

bb end e1-f2 8 32 2 16 1 8 1 4

bw end e1-f2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is g5-g4, p is #p, o is g5

space g5 is p

25 p g5-g4 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is f3-d2, p is #p, o is f3

space f3 is g1

26 g1 f3-d2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end f3-d2 8 32 2 16 1 8 1 4

bb end f3-d2 8 32 2 16 1 8 1 4

bw end f3-d2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b f6-h8, p is b, o is f6

space f6 is h1

27 h1 b f6-h8 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b f6-h8 8 32 2 16 1 8 1 4

bb end b f6-h8 8 32 2 16 1 8 1 4

bw end b f6-h8 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is c1-b1, p is #p, o is c1

space c1 is @

28 @ c1-b1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end c1-b1 8 32 2 16 1 8 1 4

bb end c1-b1 8 32 2 16 1 8 1 4

bw end c1-b1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is n g8-f6, p is n, o is g8

space g8 is g1

29 g1 n g8-f6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end n g8-f6 8 32 2 16 1 8 1 4

bb end n g8-f6 8 32 2 16 1 8 1 4

bw end n g8-f6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is f2-f5, p is #p, o is f2

space f2 is d1

30 d1 f2-f5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var d1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end f2-f5 8 32 2 16 1 8 1 4

bb end f2-f5 8 32 2 16 1 8 1 4

bw end f2-f5 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is q d7-f5, p is q, o is d7

space d7 is d1

31 d1 q d7-f5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var d1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end q d7-f5 8 32 2 16 1 8 1 4

bb end q d7-f5 8 32 2 16 1 8 1 4

bw end q d7-f5 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is f1-f5, p is #p, o is f1

space f1 is f1

32 f1 f1-f5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var f1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end f1-f5 8 32 2 16 1 8 1 4

bb end f1-f5 8 32 2 16 1 8 1 4

bw end f1-f5 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is n f6-d7, p is n, o is f6

space f6 is g1

33 g1 n f6-d7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end n f6-d7 8 32 2 16 1 8 1 4

bb end n f6-d7 8 32 2 16 1 8 1 4

bw end n f6-d7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e3-h6, p is #p, o is e3

space e3 is c1

34 c1 e3-h6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var c1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e3-h6 8 32 2 16 1 8 1 4

bb end e3-h6 8 32 2 16 1 8 1 4

bw end e3-h6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e7-e6, p is #p, o is e7

space e7 is p

35 p e7-e6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is h6-f8, p is #p, o is h6

space h6 is c1

36 c1 h6-f8 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var c1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end h6-f8 8 32 2 16 1 8 1 4

bb end h6-f8 8 32 2 16 1 8 1 4

bw end h6-f8 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e6-f5, p is #p, o is e6

space e6 is p

37 p e6-f5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is f8-d6, p is #p, o is f8

space f8 is c1

38 c1 f8-d6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var c1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end f8-d6 8 32 2 16 1 8 1 4

bb end f8-d6 8 32 2 16 1 8 1 4

bw end f8-d6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is c7-d6, p is #p, o is c7

space c7 is p

39 p c7-d6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is c2-c3, p is #p, o is c2

space c2 is P

40 P c2-c3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is b h8-g7, p is b, o is h8

space h8 is h1

41 h1 b h8-g7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b h8-g7 8 32 2 16 1 8 1 4

bb end b h8-g7 8 32 2 16 1 8 1 4

bw end b h8-g7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d2-c4, p is #p, o is d2

space d2 is g1

42 g1 d2-c4 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d2-c4 8 32 2 16 1 8 1 4

bb end d2-c4 8 32 2 16 1 8 1 4

bw end d2-c4 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is k c8-c7, p is k, o is c8

space c8 is @

43 @ k c8-c7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end k c8-c7 8 32 2 16 1 8 1 4

bb end k c8-c7 8 32 2 16 1 8 1 4

bw end k c8-c7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is c4-e3, p is #p, o is c4

space c4 is g1

44 g1 c4-e3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end c4-e3 8 32 2 16 1 8 1 4

bb end c4-e3 8 32 2 16 1 8 1 4

bw end c4-e3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b g7-f6, p is b, o is g7

space g7 is h1

45 h1 b g7-f6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b g7-f6 8 32 2 16 1 8 1 4

bb end b g7-f6 8 32 2 16 1 8 1 4

bw end b g7-f6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e3-f5, p is #p, o is e3

space e3 is g1

46 g1 e3-f5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e3-f5 8 32 2 16 1 8 1 4

bb end e3-f5 8 32 2 16 1 8 1 4

bw end e3-f5 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r d8-e8, p is r, o is d8

space d8 is a1

47 a1 r d8-e8 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r d8-e8 8 32 2 16 1 8 1 4

bb end r d8-e8 8 32 2 16 1 8 1 4

bw end r d8-e8 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d1-e1, p is #p, o is d1

space d1 is a1

48 a1 d1-e1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d1-e1 8 32 2 16 1 8 1 4

bb end d1-e1 8 32 2 16 1 8 1 4

bw end d1-e1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b f6-g5, p is b, o is f6

space f6 is h1

49 h1 b f6-g5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b f6-g5 8 32 2 16 1 8 1 4

bb end b f6-g5 8 32 2 16 1 8 1 4

bw end b f6-g5 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b1-c2, p is #p, o is b1

space b1 is @

50 @ b1-c2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b1-c2 8 32 2 16 1 8 1 4

bb end b1-c2 8 32 2 16 1 8 1 4

bw end b1-c2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is n d7-f6, p is n, o is d7

space d7 is g1

51 g1 n d7-f6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end n d7-f6 8 32 2 16 1 8 1 4

bb end n d7-f6 8 32 2 16 1 8 1 4

bw end n d7-f6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is c2-d3, p is #p, o is c2

space c2 is @

52 @ c2-d3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end c2-d3 8 32 2 16 1 8 1 4

bb end c2-d3 8 32 2 16 1 8 1 4

bw end c2-d3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d6-d5, p is #p, o is d6

space d6 is p

53 p d6-d5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is e1-g1, p is #p, o is e1

space e1 is a1

54 a1 e1-g1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e1-g1 8 32 2 16 1 8 1 4

bb end e1-g1 8 32 2 16 1 8 1 4

bw end e1-g1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is n f6-e4, p is n, o is f6

space f6 is g1

55 g1 n f6-e4 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end n f6-e4 8 32 2 16 1 8 1 4

bb end n f6-e4 8 32 2 16 1 8 1 4

bw end n f6-e4 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is g1-g2, p is #p, o is g1

space g1 is a1

56 a1 g1-g2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end g1-g2 8 32 2 16 1 8 1 4

bb end g1-g2 8 32 2 16 1 8 1 4

bw end g1-g2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is n e4-d6, p is n, o is e4

space e4 is g1

57 g1 n e4-d6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end n e4-d6 8 32 2 16 1 8 1 4

bb end n e4-d6 8 32 2 16 1 8 1 4

bw end n e4-d6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is f5-d6, p is #p, o is f5

space f5 is g1

58 g1 f5-d6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var g1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end f5-d6 8 32 2 16 1 8 1 4

bb end f5-d6 8 32 2 16 1 8 1 4

bw end f5-d6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r e8-e3, p is r, o is e8

space e8 is a1

59 a1 r e8-e3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r e8-e3 8 32 2 16 1 8 1 4

bb end r e8-e3 8 32 2 16 1 8 1 4

bw end r e8-e3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d3-c2, p is #p, o is d3

space d3 is @

60 @ d3-c2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d3-c2 8 32 2 16 1 8 1 4

bb end d3-c2 8 32 2 16 1 8 1 4

bw end d3-c2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is k c7-d6, p is k, o is c7

space c7 is @

61 @ k c7-d6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end k c7-d6 8 32 2 16 1 8 1 4

bb end k c7-d6 8 32 2 16 1 8 1 4

bw end k c7-d6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is a2-a4, p is #p, o is a2

space a2 is P

62 P a2-a4 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is b7-b6, p is #p, o is b7

space b7 is p

63 p b7-b6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is c2-d1, p is #p, o is c2

space c2 is @

64 @ c2-d1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end c2-d1 8 32 2 16 1 8 1 4

bb end c2-d1 8 32 2 16 1 8 1 4

bw end c2-d1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is k d6-e6, p is k, o is d6

space d6 is @

65 @ k d6-e6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end k d6-e6 8 32 2 16 1 8 1 4

bb end k d6-e6 8 32 2 16 1 8 1 4

bw end k d6-e6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d1-c2, p is #p, o is d1

space d1 is @

66 @ d1-c2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d1-c2 8 32 2 16 1 8 1 4

bb end d1-c2 8 32 2 16 1 8 1 4

bw end d1-c2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is k e6-f5, p is k, o is e6

space e6 is @

67 @ k e6-f5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end k e6-f5 8 32 2 16 1 8 1 4

bb end k e6-f5 8 32 2 16 1 8 1 4

bw end k e6-f5 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is c2-d1, p is #p, o is c2

space c2 is @

68 @ c2-d1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end c2-d1 8 32 2 16 1 8 1 4

bb end c2-d1 8 32 2 16 1 8 1 4

bw end c2-d1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is f7-f6, p is #p, o is f7

space f7 is p

69 p f7-f6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is g2-g1, p is #p, o is g2

space g2 is a1

70 a1 g2-g1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end g2-g1 8 32 2 16 1 8 1 4

bb end g2-g1 8 32 2 16 1 8 1 4

bw end g2-g1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r e3-e8, p is r, o is e3

space e3 is a1

71 a1 r e3-e8 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r e3-e8 8 32 2 16 1 8 1 4

bb end r e3-e8 8 32 2 16 1 8 1 4

bw end r e3-e8 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is g1-f1, p is #p, o is g1

space g1 is a1

72 a1 g1-f1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end g1-f1 8 32 2 16 1 8 1 4

bb end g1-f1 8 32 2 16 1 8 1 4

bw end g1-f1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is k f5-e6, p is k, o is f5

space f5 is @

73 @ k f5-e6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end k f5-e6 8 32 2 16 1 8 1 4

bb end k f5-e6 8 32 2 16 1 8 1 4

bw end k f5-e6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d1-c2, p is #p, o is d1

space d1 is @

74 @ d1-c2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d1-c2 8 32 2 16 1 8 1 4

bb end d1-c2 8 32 2 16 1 8 1 4

bw end d1-c2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r e8-f8, p is r, o is e8

space e8 is a1

75 a1 r e8-f8 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r e8-f8 8 32 2 16 1 8 1 4

bb end r e8-f8 8 32 2 16 1 8 1 4

bw end r e8-f8 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is c2-d3, p is #p, o is c2

space c2 is @

76 @ c2-d3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end c2-d3 8 32 2 16 1 8 1 4

bb end c2-d3 8 32 2 16 1 8 1 4

bw end c2-d3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is f6-f5, p is #p, o is f6

space f6 is p

77 p f6-f5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is e2-e3, p is #p, o is e2

space e2 is P

78 P e2-e3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is r f8-f7, p is r, o is f8

space f8 is a1

79 a1 r f8-f7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r f8-f7 8 32 2 16 1 8 1 4

bb end r f8-f7 8 32 2 16 1 8 1 4

bw end r f8-f7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is f1-f2, p is #p, o is f1

space f1 is a1

80 a1 f1-f2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end f1-f2 8 32 2 16 1 8 1 4

bb end f1-f2 8 32 2 16 1 8 1 4

bw end f1-f2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r f7-e7, p is r, o is f7

space f7 is a1

81 a1 r f7-e7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r f7-e7 8 32 2 16 1 8 1 4

bb end r f7-e7 8 32 2 16 1 8 1 4

bw end r f7-e7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is f2-e2, p is #p, o is f2

space f2 is a1

82 a1 f2-e2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end f2-e2 8 32 2 16 1 8 1 4

bb end f2-e2 8 32 2 16 1 8 1 4

bw end f2-e2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r e7-c7, p is r, o is e7

space e7 is a1

83 a1 r e7-c7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r e7-c7 8 32 2 16 1 8 1 4

bb end r e7-c7 8 32 2 16 1 8 1 4

bw end r e7-c7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e2-e1, p is #p, o is e2

space e2 is a1

84 a1 e2-e1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e2-e1 8 32 2 16 1 8 1 4

bb end e2-e1 8 32 2 16 1 8 1 4

bw end e2-e1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is a7-a6, p is #p, o is a7

space a7 is p

85 p a7-a6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is e1-e2, p is #p, o is e1

space e1 is a1

86 a1 e1-e2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e1-e2 8 32 2 16 1 8 1 4

bb end e1-e2 8 32 2 16 1 8 1 4

bw end e1-e2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b6-b5, p is #p, o is b6

space b6 is p

87 p b6-b5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is a4-b5, p is #p, o is a4

space a4 is P

88 P a4-b5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is a6-b5, p is #p, o is a6

space a6 is p

89 p a6-b5 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is b2-b4, p is #p, o is b2

space b2 is P

90 P b2-b4 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

mv is b g5-e7, p is b, o is g5

space g5 is h1

91 h1 b g5-e7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b g5-e7 8 32 2 16 1 8 1 4

bb end b g5-e7 8 32 2 16 1 8 1 4

bw end b g5-e7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e2-a2, p is #p, o is e2

space e2 is a1

92 a1 e2-a2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e2-a2 8 32 2 16 1 8 1 4

bb end e2-a2 8 32 2 16 1 8 1 4

bw end e2-a2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b e7-d6, p is b, o is e7

space e7 is h1

93 h1 b e7-d6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b e7-d6 8 32 2 16 1 8 1 4

bb end b e7-d6 8 32 2 16 1 8 1 4

bw end b e7-d6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is a2-a6, p is #p, o is a2

space a2 is a1

94 a1 a2-a6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end a2-a6 8 32 2 16 1 8 1 4

bb end a2-a6 8 32 2 16 1 8 1 4

bw end a2-a6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r c7-h7, p is r, o is c7

space c7 is a1

95 a1 r c7-h7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r c7-h7 8 32 2 16 1 8 1 4

bb end r c7-h7 8 32 2 16 1 8 1 4

bw end r c7-h7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is a6-a2, p is #p, o is a6

space a6 is a1

96 a1 a6-a2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end a6-a2 8 32 2 16 1 8 1 4

bb end a6-a2 8 32 2 16 1 8 1 4

bw end a6-a2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b d6-c7, p is b, o is d6

space d6 is h1

97 h1 b d6-c7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b d6-c7 8 32 2 16 1 8 1 4

bb end b d6-c7 8 32 2 16 1 8 1 4

bw end b d6-c7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is a2-a7, p is #p, o is a2

space a2 is a1

98 a1 a2-a7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end a2-a7 8 32 2 16 1 8 1 4

bb end a2-a7 8 32 2 16 1 8 1 4

bw end a2-a7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is k e6-d7, p is k, o is e6

space e6 is @

99 @ k e6-d7 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end k e6-d7 8 32 2 16 1 8 1 4

bb end k e6-d7 8 32 2 16 1 8 1 4

bw end k e6-d7 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is a7-a2, p is #p, o is a7

space a7 is a1

100 a1 a7-a2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end a7-a2 8 32 2 16 1 8 1 4

bb end a7-a2 8 32 2 16 1 8 1 4

bw end a7-a2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r h7-h3, p is r, o is h7

space h7 is a1

101 a1 r h7-h3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r h7-h3 8 32 2 16 1 8 1 4

bb end r h7-h3 8 32 2 16 1 8 1 4

bw end r h7-h3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is a2-g2, p is #p, o is a2

space a2 is a1

102 a1 a2-g2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end a2-g2 8 32 2 16 1 8 1 4

bb end a2-g2 8 32 2 16 1 8 1 4

bw end a2-g2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is k d7-e6, p is k, o is d7

space d7 is @

103 @ k d7-e6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end k d7-e6 8 32 2 16 1 8 1 4

bb end k d7-e6 8 32 2 16 1 8 1 4

bw end k d7-e6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d3-d2, p is #p, o is d3

space d3 is @

104 @ d3-d2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d3-d2 8 32 2 16 1 8 1 4

bb end d3-d2 8 32 2 16 1 8 1 4

bw end d3-d2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r h3-h8, p is r, o is h3

space h3 is a1

105 a1 r h3-h8 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r h3-h8 8 32 2 16 1 8 1 4

bb end r h3-h8 8 32 2 16 1 8 1 4

bw end r h3-h8 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d2-d3, p is #p, o is d2

space d2 is @

106 @ d2-d3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d2-d3 8 32 2 16 1 8 1 4

bb end d2-d3 8 32 2 16 1 8 1 4

bw end d2-d3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r h8-a8, p is r, o is h8

space h8 is a1

107 a1 r h8-a8 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r h8-a8 8 32 2 16 1 8 1 4

bb end r h8-a8 8 32 2 16 1 8 1 4

bw end r h8-a8 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is g2-d2, p is #p, o is g2

space g2 is a1

108 a1 g2-d2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end g2-d2 8 32 2 16 1 8 1 4

bb end g2-d2 8 32 2 16 1 8 1 4

bw end g2-d2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is b c7-d6, p is b, o is c7

space c7 is h1

109 h1 b c7-d6 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var h1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end b c7-d6 8 32 2 16 1 8 1 4

bb end b c7-d6 8 32 2 16 1 8 1 4

bw end b c7-d6 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d2-b2, p is #p, o is d2

space d2 is a1

110 a1 d2-b2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d2-b2 8 32 2 16 1 8 1 4

bb end d2-b2 8 32 2 16 1 8 1 4

bw end d2-b2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r a8-a3, p is r, o is a8

space a8 is a1

111 a1 r a8-a3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r a8-a3 8 32 2 16 1 8 1 4

bb end r a8-a3 8 32 2 16 1 8 1 4

bw end r a8-a3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d3-c2, p is #p, o is d3

space d3 is @

112 @ d3-c2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d3-c2 8 32 2 16 1 8 1 4

bb end d3-c2 8 32 2 16 1 8 1 4

bw end d3-c2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r a3-a1, p is r, o is a3

space a3 is a1

113 a1 r a3-a1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r a3-a1 8 32 2 16 1 8 1 4

bb end r a3-a1 8 32 2 16 1 8 1 4

bw end r a3-a1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is c2-d3, p is #p, o is c2

space c2 is @

114 @ c2-d3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end c2-d3 8 32 2 16 1 8 1 4

bb end c2-d3 8 32 2 16 1 8 1 4

bw end c2-d3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r a1-d1, p is r, o is a1

space a1 is a1

115 a1 r a1-d1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r a1-d1 8 32 2 16 1 8 1 4

bb end r a1-d1 8 32 2 16 1 8 1 4

bw end r a1-d1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d3-e2, p is #p, o is d3

space d3 is @

116 @ d3-e2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d3-e2 8 32 2 16 1 8 1 4

bb end d3-e2 8 32 2 16 1 8 1 4

bw end d3-e2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r d1-h1, p is r, o is d1

space d1 is a1

117 a1 r d1-h1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r d1-h1 8 32 2 16 1 8 1 4

bb end r d1-h1 8 32 2 16 1 8 1 4

bw end r d1-h1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e2-d3, p is #p, o is e2

space e2 is @

118 @ e2-d3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e2-d3 8 32 2 16 1 8 1 4

bb end e2-d3 8 32 2 16 1 8 1 4

bw end e2-d3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r h1-d1, p is r, o is h1

space h1 is a1

119 a1 r h1-d1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r h1-d1 8 32 2 16 1 8 1 4

bb end r h1-d1 8 32 2 16 1 8 1 4

bw end r h1-d1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d3-e2, p is #p, o is d3

space d3 is @

120 @ d3-e2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d3-e2 8 32 2 16 1 8 1 4

bb end d3-e2 8 32 2 16 1 8 1 4

bw end d3-e2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r d1-h1, p is r, o is d1

space d1 is a1

121 a1 r d1-h1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r d1-h1 8 32 2 16 1 8 1 4

bb end r d1-h1 8 32 2 16 1 8 1 4

bw end r d1-h1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is e2-d3, p is #p, o is e2

space e2 is @

122 @ e2-d3 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end e2-d3 8 32 2 16 1 8 1 4

bb end e2-d3 8 32 2 16 1 8 1 4

bw end e2-d3 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is r h1-d1, p is r, o is h1

space h1 is a1

123 a1 r h1-d1 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

1 one bits in var a1

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end r h1-d1 8 32 2 16 1 8 1 4

bb end r h1-d1 8 32 2 16 1 8 1 4

bw end r h1-d1 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is d3-e2, p is #p, o is d3

space d3 is @

124 @ d3-e2 8 32 2 16 1 8 1 4

1000 100000 10 10000 1 1000 1 100

0 one bits in var @

1000 100000 10 10000 1 1000 1 100

b1

Array
(
    [0] => a1
)

q end d3-e2 8 32 2 16 1 8 1 4

bb end d3-e2 8 32 2 16 1 8 1 4

bw end d3-e2 8 32 2 16 1 8 1 4

first 8 32 2 16 1 8 1 4

mv is drawn, p is #p, o is drawn

Continue because drawn is drawn

Continue because mv is empty

firstrank is RKBQNRNB

Castling with Rook! a1 d1 a1 d1 f1 f1






Check out Atomic Chess, our featured variant for November, 2024.

Viewing Game

The game is declared drawn.

8
7
6 b k
5 p p p
4 P P p
3 P P P
2 R K P
1 r
a b c d e f g h

Fischer Random Chess

White:
Black:



Orientation:
Scale:

Render as:
Shape:

Piece Set:

Colors:


a Fischer Random Chess problem from this position.

Rules of Fischer Random Chess

K
King
Q
Queen
R
Rook
B
Bishop
N
Knight
P
Pawn

Fischer Random Chess is played just like Chess except as follows:

Notation

You should be aware that Game Courier's notation is not identical with standard Chess notation. Game Courier has been designed for general use with any of several different Chess variants, and it accordingly uses a generic system of notation. This system is described in detail in the User's Guide. Here are the basics you need to know for Chess. Move a piece by writing its present coordinate, a hyphen, and its destination coordinate. For example, "e2-e4". There is no special operator for captures. A hyphen should be used even when a piece is captured. To signal to your opponent what piece you moved, and to provide an extra bit of error checking on the move you enter, you may include Game Courier's notation for the piece before the move. For example, "P e2-e4". Note that Game Courier uses uppercase letters for White pieces and lowercase for Black pieces. Black could enter "p e7-e5" for a move but not "P e7-e5".

This preset enforces the rules. It also automates en passant and castling. To capture by en passant, just move your Pawn to its destination. If it is a legal en passant move, your opponent's Pawn will be automatically captured.

To castle, move either your King or your Rook, but not both, to where it must go to castle. This move should be an otherwise illegal move. Either the King should move two or more spaces, or the King or Rook should hop over or capture the other. If you move your King only one space or move your Rook only across empty spaces, then your move will not count as castling. Once you have made half the castling move, the other piece will automatically move into place.

All promotions must be done explicitly. After moving your Pawn to the last rank, tack a semicolon to your Pawn move and add the new piece to the Pawn's space. For example, "P f7-f8; Q-f8".

How to Move Pieces

Full Algebraic Notation

Algebraic notation identifies each space by a coordinate that begins with its file label and ends with its rank label. On the Chess board, files go up and down from one player to the other, and ranks go from left to right. In most games, files are represented by letters, and ranks are represented by numbers, but there is no fixed rule requiring this for all games, and some games, such as Shogi, reverse this convention. If you look at the diagram, you will usually see the file labels going from left to right and the file labels going up and down. And if you hover your mouse over a space, you will normally see the name of the coordinate appear in a tooltip.

It is not uncommon to see algebraic notation being used for Chess, but it is often in an abbreviated format that requires you to know both the rules of the game and the current position to know exactly which piece moves where. For example, the notation "Ne6" indicates that a Knight is moving to e6, but it doesn't indicate which Knight, and it doesn't specify where the Knight is coming from. To figure this out, you need to know how a Knight moves and which Knight on the board can make a legal move to e6.

Although rules may be programmed for individual games, Game Courier itself does not know the rules of any game, and it is unable to parse abbreviated algebraic notation. Therefore, it relies on full algebraic notation, which completely specifies the move without requiring any knowledge of the game's rules or the current position. The most usual type of full algebraic notation indicates the piece that is moving by its label, the space it is moving from, and the space it moving to. In Chess, a typical first move might be written as "P e2-e4". When you hover your mouse over a piece, you will normally see the piece label followed by the coordinate for the space, and when you hover it over an empty space, you will normally see the coordinate label. Including the piece label in your notation allows Game Courier to check that the piece you're moving is the right one, and it makes game notation easier to follow, but it is not mandatory.

You may promote a piece by including a promotion move after your regular move. A promotion move has a piece go directly to a coordinate. Here is an example: "p e7-e8; q-e8".

You may remove a piece from a space by adding an @ to the space or by omitting the destination coordinate. For example, both "@-e4" and "e4-" would remove the piece on "e4". This is useful for en passant when you are playing a game that does not handle this automatically. For example, "P d5-e6; e5-" removes the Pawn on e5 after a Pawn moves from d5 to e6.

You will not need to remove spaces for most games, but if you should need to, you can do this by omitting the first coordinate in a move. For example, "-e4" would remove e4 from the board. To add or return a space to the board, you may add an @ or any other piece to it.

Available Pieces

Pieces are represented by labels, usually using uppercase letters for White and lowercase letter for Black. When you enter a move or specify the starting position for a game, you should remember that piece labels are case-sensitive. Many piece sets are available for use with Game Courier, and this table shows you which pieces belong to the piece set you are currently using.

The inclusion of a piece does not indicate that it is used in the game you are playing. But if your game uses pieces not included here, you should choose a different piece set.

WKnightBishop.gif
A
WBishop.gif
B
WCamel.gif
C
WWarmachine.gif
D
WElephant.gif
E
WFers.gif
F
WGrasshopper.gif
G
WHorse.gif
H
WNightrider.gif
I
WGiraffe.gif
J
WKing.gif
K
WLion.gif
L
WKnightRook.gif
M
WKnight.gif
N
WKingRook.gif
O
WPawn.gif
P
WQueen.gif
Q
WRook.gif
R
WBerlinPawn.gif
S
WAmazon.gif
T
WNightPrincess.gif
U
WVao.gif
V
WWazir.gif
W
WKnightKing.gif
X
WKingBishop.gif
Y
WZebra.gif
Z
BKnightBishop.gif
a
BBishop.gif
b
BCamel.gif
c
BWarmachine.gif
d
BElephant.gif
e
BFers.gif
f
BGrasshopper.gif
g
BHorse.gif
h
BNightrider.gif
i
BGiraffe.gif
j
BKing.gif
k
BLion.gif
l
BKnightRook.gif
m
BKnight.gif
n
BKingRook.gif
o
BPawn.gif
p
BQueen.gif
q
BRook.gif
r
BBerlinPawn.gif
s
BAmazon.gif
t
BNightPrincess.gif
u
BVao.gif
v
BWazir.gif
w
BKnightKing.gif
x
BKingBishop.gif
y
BZebra.gif
z

Credits

This preset uses the Abstract settings file for Fischer Random Chess, which was made by Fergus Duniho.

Game Courier was created, programmed and written by Fergus Duniho.

Game Courier, Copyright © Fergus Duniho, 2001-2017


WWW Page Created: 15 August 2001

Kibbitzing Etiquette

Kibbitzing is the practice of commenting on a game you are not playing. In commenting on a game, please follow these rules of etiquette.

(1) If you notice that someone has made an illegal move, please mention it. Some Game Courier presets cannot enforce rules, but Game Courier does enable players to take back any previous move. Details on how to take back a move are provided in the User's Guide, linked to above the board.

(2) Unless otherwise specifically asked to, do not offer hints or suggestions to players on what moves they should make. In general, avoid coaching comments.

(3) Once a game is over, it should be alright to offer your analysis of the game and your specific comments on what moves players should have made. If some players don't want this, they may mention it in the Kibbitzing section, and you should honor this request by not commenting on the game.

(4) Be polite. At the appropriate time, offer any criticism you have in a constructive manner. Avoid heckling players for bad moves.

(5) Don't spam this space with irrelevant comments. If you have a comment about Game Courier, rather than about the specific game you're viewing, please post it on Game Courier's Index page to give it.