line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Chess::PGN::Moves;
|
2
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
15200
|
use 5.006;
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
38
|
|
4
|
1
|
|
|
1
|
|
5
|
use strict;
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
30
|
|
5
|
1
|
|
|
1
|
|
5
|
use warnings;
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
104
|
|
6
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
require Exporter;
|
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
our @ISA = qw(Exporter);
|
10
|
|
|
|
|
|
|
our @EXPORT = qw(
|
11
|
|
|
|
|
|
|
%King_Moves
|
12
|
|
|
|
|
|
|
%Queen_Moves
|
13
|
|
|
|
|
|
|
%Rook_Moves
|
14
|
|
|
|
|
|
|
%Bishop_Moves
|
15
|
|
|
|
|
|
|
%Knight_Moves
|
16
|
|
|
|
|
|
|
%pawnWhite
|
17
|
|
|
|
|
|
|
%pawnBlack
|
18
|
|
|
|
|
|
|
%from_algebraic
|
19
|
|
|
|
|
|
|
%move_table
|
20
|
|
|
|
|
|
|
%engWhite
|
21
|
|
|
|
|
|
|
%engBlack
|
22
|
|
|
|
|
|
|
%Whiteeng
|
23
|
|
|
|
|
|
|
%Blackeng
|
24
|
|
|
|
|
|
|
);
|
25
|
|
|
|
|
|
|
our $VERSION = '0.05';
|
26
|
|
|
|
|
|
|
|
27
|
1
|
|
|
|
|
4237
|
use vars qw(
|
28
|
|
|
|
|
|
|
%King_Moves
|
29
|
|
|
|
|
|
|
%Queen_Moves
|
30
|
|
|
|
|
|
|
%Rook_Moves
|
31
|
|
|
|
|
|
|
%Bishop_Moves
|
32
|
|
|
|
|
|
|
%Knight_Moves
|
33
|
|
|
|
|
|
|
%pawnWhite
|
34
|
|
|
|
|
|
|
%pawnBlack
|
35
|
|
|
|
|
|
|
%from_algebraic
|
36
|
|
|
|
|
|
|
%move_table
|
37
|
|
|
|
|
|
|
%engWhite
|
38
|
|
|
|
|
|
|
%engBlack
|
39
|
|
|
|
|
|
|
%Whiteeng
|
40
|
|
|
|
|
|
|
%Blackeng
|
41
|
1
|
|
|
1
|
|
4
|
);
|
|
1
|
|
|
|
|
1
|
|
42
|
|
|
|
|
|
|
|
43
|
|
|
|
|
|
|
%engWhite = qw (
|
44
|
|
|
|
|
|
|
a1 QR1 a2 QR2 a3 QR3 a4 QR4 a5 QR5 a6 QR6 a7 QR7 a8 QR8
|
45
|
|
|
|
|
|
|
b1 QN1 b2 QN2 b3 QN3 b4 QN4 b5 QN5 b6 QN6 b7 QN7 b8 QN8
|
46
|
|
|
|
|
|
|
c1 QB1 c2 QB2 c3 QB3 c4 QB4 c5 QB5 c6 QB6 c7 QB7 c8 QB8
|
47
|
|
|
|
|
|
|
d1 Q1 d2 Q2 d3 Q3 d4 Q4 d5 Q5 d6 Q6 d7 Q7 d8 Q8
|
48
|
|
|
|
|
|
|
e1 K1 e2 K2 e3 K3 e4 K4 e5 K5 e6 K6 e7 K7 e8 K8
|
49
|
|
|
|
|
|
|
f1 KB1 f2 KB2 f3 KB3 f4 KB4 f5 KB5 f6 KB6 f7 KB7 f8 KB8
|
50
|
|
|
|
|
|
|
g1 KN1 g2 KN2 g3 KN3 g4 KN4 g5 KN5 g6 KN6 g7 KN7 g8 KN8
|
51
|
|
|
|
|
|
|
h1 KR1 h2 KR2 h3 KR3 h4 KR4 h5 KR5 h6 KR6 h7 KR7 h8 KR8
|
52
|
|
|
|
|
|
|
);
|
53
|
|
|
|
|
|
|
|
54
|
|
|
|
|
|
|
%engBlack = qw (
|
55
|
|
|
|
|
|
|
a1 QR8 a2 QR7 a3 QR6 a4 QR5 a5 QR4 a6 QR3 a7 QR2 a8 QR1
|
56
|
|
|
|
|
|
|
b1 QN8 b2 QN7 b3 QN6 b4 QN5 b5 QN4 b6 QN3 b7 QN2 b8 QN1
|
57
|
|
|
|
|
|
|
c1 QB8 c2 QB7 c3 QB6 c4 QB5 c5 QB4 c6 QB3 c7 QB2 c8 QB1
|
58
|
|
|
|
|
|
|
d1 Q8 d2 Q7 d3 Q6 d4 Q5 d5 Q4 d6 Q3 d7 Q2 d8 Q1
|
59
|
|
|
|
|
|
|
e1 K8 e2 K7 e3 K6 e4 K5 e5 K4 e6 K3 e7 K2 e8 K1
|
60
|
|
|
|
|
|
|
f1 KB8 f2 KB7 f3 KB6 f4 KB5 f5 KB4 f6 KB3 f7 KB2 f8 KB1
|
61
|
|
|
|
|
|
|
g1 KN8 g2 KN7 g3 KN6 g4 KN5 g5 KN4 g6 KN3 g7 KN2 g8 KN1
|
62
|
|
|
|
|
|
|
h1 KR8 h2 KR7 h3 KR6 h4 KR5 h5 KR4 h6 KR3 h7 KR2 h8 KR1
|
63
|
|
|
|
|
|
|
);
|
64
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
%Whiteeng = qw (
|
66
|
|
|
|
|
|
|
QR8 a8 QR7 a7 QR6 a6 QR5 a5 QR4 a4 QR3 a3 QR2 a2 QR1 a1
|
67
|
|
|
|
|
|
|
QN8 b8 QN7 b7 QN6 b6 QN5 b5 QN4 b4 QN3 b3 QN2 b2 QN1 b1
|
68
|
|
|
|
|
|
|
QB8 c8 QB7 c7 QB6 c6 QB5 c5 QB4 c4 QB3 c3 QB2 c2 QB1 c1
|
69
|
|
|
|
|
|
|
Q8 d8 Q7 d7 Q6 d6 Q5 d5 Q4 d4 Q3 d3 Q2 d2 Q1 d1
|
70
|
|
|
|
|
|
|
K8 e8 K7 e7 K6 e6 K5 e5 K4 e4 K3 e3 K2 e2 K1 e1
|
71
|
|
|
|
|
|
|
KB8 f8 KB7 f7 KB6 f6 KB5 f5 KB4 f4 KB3 f3 KB2 f2 KB1 f1
|
72
|
|
|
|
|
|
|
KN8 g8 KN7 g7 KN6 g6 KN5 g5 KN4 g4 KN3 g3 KN2 g2 KN1 g1
|
73
|
|
|
|
|
|
|
KR8 h8 KR7 h7 KR6 h6 KR5 h5 KR4 h4 KR3 h3 KR2 h2 KR1 h1
|
74
|
|
|
|
|
|
|
);
|
75
|
|
|
|
|
|
|
|
76
|
|
|
|
|
|
|
%Blackeng = qw (
|
77
|
|
|
|
|
|
|
QR1 a8 QR2 a7 QR3 a6 QR4 a5 QR5 a4 QR6 a3 QR7 a2 QR8 a1
|
78
|
|
|
|
|
|
|
QN1 b8 QN2 b7 QN3 b6 QN4 b5 QN5 b4 QN6 b3 QN7 b2 QN8 b1
|
79
|
|
|
|
|
|
|
QB1 c8 QB2 c7 QB3 c6 QB4 c5 QB5 c4 QB6 c3 QB7 c2 QB8 c1
|
80
|
|
|
|
|
|
|
Q1 d8 Q2 d7 Q3 d6 Q4 d5 Q5 d4 Q6 d3 Q7 d2 Q8 d1
|
81
|
|
|
|
|
|
|
K1 e8 K2 e7 K3 e6 K4 e5 K5 e4 K6 e3 K7 e2 K8 e1
|
82
|
|
|
|
|
|
|
KB1 f8 KB2 f7 KB3 f6 KB4 f5 KB5 f4 KB6 f3 KB7 f2 KB8 f1
|
83
|
|
|
|
|
|
|
KN1 g8 KN2 g7 KN3 g6 KN4 g5 KN5 g4 KN6 g3 KN7 g2 KN8 g1
|
84
|
|
|
|
|
|
|
KR1 h8 KR2 h7 KR3 h6 KR4 h5 KR5 h4 KR6 h3 KR7 h2 KR8 h1
|
85
|
|
|
|
|
|
|
);
|
86
|
|
|
|
|
|
|
|
87
|
|
|
|
|
|
|
%King_Moves = (
|
88
|
|
|
|
|
|
|
a1 => [qw(a2 b2 b1)],
|
89
|
|
|
|
|
|
|
b1 => [qw(a2 b2 c2 a1 c1)],
|
90
|
|
|
|
|
|
|
c1 => [qw(b2 c2 d2 b1 d1)],
|
91
|
|
|
|
|
|
|
d1 => [qw(c2 d2 e2 c1 e1)],
|
92
|
|
|
|
|
|
|
e1 => [qw(d2 e2 f2 d1 f1)],
|
93
|
|
|
|
|
|
|
f1 => [qw(e2 f2 g2 e1 g1)],
|
94
|
|
|
|
|
|
|
g1 => [qw(f2 g2 h2 f1 h1)],
|
95
|
|
|
|
|
|
|
h1 => [qw(g2 h2 g1)],
|
96
|
|
|
|
|
|
|
a2 => [qw(a3 b3 b2 a1 b1)],
|
97
|
|
|
|
|
|
|
b2 => [qw(a3 b3 c3 a2 c2 a1 b1 c1)],
|
98
|
|
|
|
|
|
|
c2 => [qw(b3 c3 d3 b2 d2 b1 c1 d1)],
|
99
|
|
|
|
|
|
|
d2 => [qw(c3 d3 e3 c2 e2 c1 d1 e1)],
|
100
|
|
|
|
|
|
|
e2 => [qw(d3 e3 f3 d2 f2 d1 e1 f1)],
|
101
|
|
|
|
|
|
|
f2 => [qw(e3 f3 g3 e2 g2 e1 f1 g1)],
|
102
|
|
|
|
|
|
|
g2 => [qw(f3 g3 h3 f2 h2 f1 g1 h1)],
|
103
|
|
|
|
|
|
|
h2 => [qw(g3 h3 g2 g1 h1)],
|
104
|
|
|
|
|
|
|
a3 => [qw(a4 b4 b3 a2 b2)],
|
105
|
|
|
|
|
|
|
b3 => [qw(a4 b4 c4 a3 c3 a2 b2 c2)],
|
106
|
|
|
|
|
|
|
c3 => [qw(b4 c4 d4 b3 d3 b2 c2 d2)],
|
107
|
|
|
|
|
|
|
d3 => [qw(c4 d4 e4 c3 e3 c2 d2 e2)],
|
108
|
|
|
|
|
|
|
e3 => [qw(d4 e4 f4 d3 f3 d2 e2 f2)],
|
109
|
|
|
|
|
|
|
f3 => [qw(e4 f4 g4 e3 g3 e2 f2 g2)],
|
110
|
|
|
|
|
|
|
g3 => [qw(f4 g4 h4 f3 h3 f2 g2 h2)],
|
111
|
|
|
|
|
|
|
h3 => [qw(g4 h4 g3 g2 h2)],
|
112
|
|
|
|
|
|
|
a4 => [qw(a5 b5 b4 a3 b3)],
|
113
|
|
|
|
|
|
|
b4 => [qw(a5 b5 c5 a4 c4 a3 b3 c3)],
|
114
|
|
|
|
|
|
|
c4 => [qw(b5 c5 d5 b4 d4 b3 c3 d3)],
|
115
|
|
|
|
|
|
|
d4 => [qw(c5 d5 e5 c4 e4 c3 d3 e3)],
|
116
|
|
|
|
|
|
|
e4 => [qw(d5 e5 f5 d4 f4 d3 e3 f3)],
|
117
|
|
|
|
|
|
|
f4 => [qw(e5 f5 g5 e4 g4 e3 f3 g3)],
|
118
|
|
|
|
|
|
|
g4 => [qw(f5 g5 h5 f4 h4 f3 g3 h3)],
|
119
|
|
|
|
|
|
|
h4 => [qw(g5 h5 g4 g3 h3)],
|
120
|
|
|
|
|
|
|
a5 => [qw(a6 b6 b5 a4 b4)],
|
121
|
|
|
|
|
|
|
b5 => [qw(a6 b6 c6 a5 c5 a4 b4 c4)],
|
122
|
|
|
|
|
|
|
c5 => [qw(b6 c6 d6 b5 d5 b4 c4 d4)],
|
123
|
|
|
|
|
|
|
d5 => [qw(c6 d6 e6 c5 e5 c4 d4 e4)],
|
124
|
|
|
|
|
|
|
e5 => [qw(d6 e6 f6 d5 f5 d4 e4 f4)],
|
125
|
|
|
|
|
|
|
f5 => [qw(e6 f6 g6 e5 g5 e4 f4 g4)],
|
126
|
|
|
|
|
|
|
g5 => [qw(f6 g6 h6 f5 h5 f4 g4 h4)],
|
127
|
|
|
|
|
|
|
h5 => [qw(g6 h6 g5 g4 h4)],
|
128
|
|
|
|
|
|
|
a6 => [qw(a7 b7 b6 a5 b5)],
|
129
|
|
|
|
|
|
|
b6 => [qw(a7 b7 c7 a6 c6 a5 b5 c5)],
|
130
|
|
|
|
|
|
|
c6 => [qw(b7 c7 d7 b6 d6 b5 c5 d5)],
|
131
|
|
|
|
|
|
|
d6 => [qw(c7 d7 e7 c6 e6 c5 d5 e5)],
|
132
|
|
|
|
|
|
|
e6 => [qw(d7 e7 f7 d6 f6 d5 e5 f5)],
|
133
|
|
|
|
|
|
|
f6 => [qw(e7 f7 g7 e6 g6 e5 f5 g5)],
|
134
|
|
|
|
|
|
|
g6 => [qw(f7 g7 h7 f6 h6 f5 g5 h5)],
|
135
|
|
|
|
|
|
|
h6 => [qw(g7 h7 g6 g5 h5)],
|
136
|
|
|
|
|
|
|
a7 => [qw(a8 b8 b7 a6 b6)],
|
137
|
|
|
|
|
|
|
b7 => [qw(a8 b8 c8 a7 c7 a6 b6 c6)],
|
138
|
|
|
|
|
|
|
c7 => [qw(b8 c8 d8 b7 d7 b6 c6 d6)],
|
139
|
|
|
|
|
|
|
d7 => [qw(c8 d8 e8 c7 e7 c6 d6 e6)],
|
140
|
|
|
|
|
|
|
e7 => [qw(d8 e8 f8 d7 f7 d6 e6 f6)],
|
141
|
|
|
|
|
|
|
f7 => [qw(e8 f8 g8 e7 g7 e6 f6 g6)],
|
142
|
|
|
|
|
|
|
g7 => [qw(f8 g8 h8 f7 h7 f6 g6 h6)],
|
143
|
|
|
|
|
|
|
h7 => [qw(g8 h8 g7 g6 h6)],
|
144
|
|
|
|
|
|
|
a8 => [qw(b8 a7 b7)],
|
145
|
|
|
|
|
|
|
b8 => [qw(a8 c8 a7 b7 c7)],
|
146
|
|
|
|
|
|
|
c8 => [qw(b8 d8 b7 c7 d7)],
|
147
|
|
|
|
|
|
|
d8 => [qw(c8 e8 c7 d7 e7)],
|
148
|
|
|
|
|
|
|
e8 => [qw(d8 f8 d7 e7 f7)],
|
149
|
|
|
|
|
|
|
f8 => [qw(e8 g8 e7 f7 g7)],
|
150
|
|
|
|
|
|
|
g8 => [qw(f8 h8 f7 g7 h7)],
|
151
|
|
|
|
|
|
|
h8 => [qw(g8 g7 h7)],
|
152
|
|
|
|
|
|
|
);
|
153
|
|
|
|
|
|
|
|
154
|
|
|
|
|
|
|
%Queen_Moves = (
|
155
|
|
|
|
|
|
|
a1 => [qw(b1 c1 d1 e1 f1 g1 h1 a2 a3 a4 a5 a6 a7 a8 b2 c3 d4 e5 f6 g7 h8)],
|
156
|
|
|
|
|
|
|
b1 => [qw(a1 c1 d1 e1 f1 g1 h1 b2 b3 b4 b5 b6 b7 b8 c2 d3 e4 f5 g6 h7 a2)],
|
157
|
|
|
|
|
|
|
c1 => [qw(a1 b1 d1 e1 f1 g1 h1 c2 c3 c4 c5 c6 c7 c8 d2 e3 f4 g5 h6 b2 a3)],
|
158
|
|
|
|
|
|
|
d1 => [qw(a1 b1 c1 e1 f1 g1 h1 d2 d3 d4 d5 d6 d7 d8 e2 f3 g4 h5 c2 b3 a4)],
|
159
|
|
|
|
|
|
|
e1 => [qw(a1 b1 c1 d1 f1 g1 h1 e2 e3 e4 e5 e6 e7 e8 f2 g3 h4 d2 c3 b4 a5)],
|
160
|
|
|
|
|
|
|
f1 => [qw(a1 b1 c1 d1 e1 g1 h1 f2 f3 f4 f5 f6 f7 f8 g2 h3 e2 d3 c4 b5 a6)],
|
161
|
|
|
|
|
|
|
g1 => [qw(a1 b1 c1 d1 e1 f1 h1 g2 g3 g4 g5 g6 g7 g8 h2 f2 e3 d4 c5 b6 a7)],
|
162
|
|
|
|
|
|
|
h1 => [qw(a1 b1 c1 d1 e1 f1 g1 h2 h3 h4 h5 h6 h7 h8 g2 f3 e4 d5 c6 b7 a8)],
|
163
|
|
|
|
|
|
|
a2 => [qw(b2 c2 d2 e2 f2 g2 h2 a1 a3 a4 a5 a6 a7 a8 b3 c4 d5 e6 f7 g8 b1)],
|
164
|
|
|
|
|
|
|
b2 => [qw(a2 c2 d2 e2 f2 g2 h2 b1 b3 b4 b5 b6 b7 b8 a1 c3 d4 e5 f6 g7 h8 c1 a3)],
|
165
|
|
|
|
|
|
|
c2 => [qw(a2 b2 d2 e2 f2 g2 h2 c1 c3 c4 c5 c6 c7 c8 b1 d3 e4 f5 g6 h7 d1 b3 a4)],
|
166
|
|
|
|
|
|
|
d2 => [qw(a2 b2 c2 e2 f2 g2 h2 d1 d3 d4 d5 d6 d7 d8 c1 e3 f4 g5 h6 e1 c3 b4 a5)],
|
167
|
|
|
|
|
|
|
e2 => [qw(a2 b2 c2 d2 f2 g2 h2 e1 e3 e4 e5 e6 e7 e8 d1 f3 g4 h5 f1 d3 c4 b5 a6)],
|
168
|
|
|
|
|
|
|
f2 => [qw(a2 b2 c2 d2 e2 g2 h2 f1 f3 f4 f5 f6 f7 f8 e1 g3 h4 g1 e3 d4 c5 b6 a7)],
|
169
|
|
|
|
|
|
|
g2 => [qw(a2 b2 c2 d2 e2 f2 h2 g1 g3 g4 g5 g6 g7 g8 f1 h3 h1 f3 e4 d5 c6 b7 a8)],
|
170
|
|
|
|
|
|
|
h2 => [qw(a2 b2 c2 d2 e2 f2 g2 h1 h3 h4 h5 h6 h7 h8 g1 g3 f4 e5 d6 c7 b8)],
|
171
|
|
|
|
|
|
|
a3 => [qw(b3 c3 d3 e3 f3 g3 h3 a1 a2 a4 a5 a6 a7 a8 b4 c5 d6 e7 f8 c1 b2)],
|
172
|
|
|
|
|
|
|
b3 => [qw(a3 c3 d3 e3 f3 g3 h3 b1 b2 b4 b5 b6 b7 b8 a2 c4 d5 e6 f7 g8 d1 c2 a4)],
|
173
|
|
|
|
|
|
|
c3 => [qw(a3 b3 d3 e3 f3 g3 h3 c1 c2 c4 c5 c6 c7 c8 a1 b2 d4 e5 f6 g7 h8 e1 d2 b4 a5)],
|
174
|
|
|
|
|
|
|
d3 => [qw(a3 b3 c3 e3 f3 g3 h3 d1 d2 d4 d5 d6 d7 d8 b1 c2 e4 f5 g6 h7 f1 e2 c4 b5 a6)],
|
175
|
|
|
|
|
|
|
e3 => [qw(a3 b3 c3 d3 f3 g3 h3 e1 e2 e4 e5 e6 e7 e8 c1 d2 f4 g5 h6 g1 f2 d4 c5 b6 a7)],
|
176
|
|
|
|
|
|
|
f3 => [qw(a3 b3 c3 d3 e3 g3 h3 f1 f2 f4 f5 f6 f7 f8 d1 e2 g4 h5 h1 g2 e4 d5 c6 b7 a8)],
|
177
|
|
|
|
|
|
|
g3 => [qw(a3 b3 c3 d3 e3 f3 h3 g1 g2 g4 g5 g6 g7 g8 e1 f2 h4 h2 f4 e5 d6 c7 b8)],
|
178
|
|
|
|
|
|
|
h3 => [qw(a3 b3 c3 d3 e3 f3 g3 h1 h2 h4 h5 h6 h7 h8 f1 g2 g4 f5 e6 d7 c8)],
|
179
|
|
|
|
|
|
|
a4 => [qw(b4 c4 d4 e4 f4 g4 h4 a1 a2 a3 a5 a6 a7 a8 b5 c6 d7 e8 d1 c2 b3)],
|
180
|
|
|
|
|
|
|
b4 => [qw(a4 c4 d4 e4 f4 g4 h4 b1 b2 b3 b5 b6 b7 b8 a3 c5 d6 e7 f8 e1 d2 c3 a5)],
|
181
|
|
|
|
|
|
|
c4 => [qw(a4 b4 d4 e4 f4 g4 h4 c1 c2 c3 c5 c6 c7 c8 a2 b3 d5 e6 f7 g8 f1 e2 d3 b5 a6)],
|
182
|
|
|
|
|
|
|
d4 => [qw(a4 b4 c4 e4 f4 g4 h4 d1 d2 d3 d5 d6 d7 d8 a1 b2 c3 e5 f6 g7 h8 g1 f2 e3 c5 b6 a7)],
|
183
|
|
|
|
|
|
|
e4 => [qw(a4 b4 c4 d4 f4 g4 h4 e1 e2 e3 e5 e6 e7 e8 b1 c2 d3 f5 g6 h7 h1 g2 f3 d5 c6 b7 a8)],
|
184
|
|
|
|
|
|
|
f4 => [qw(a4 b4 c4 d4 e4 g4 h4 f1 f2 f3 f5 f6 f7 f8 c1 d2 e3 g5 h6 h2 g3 e5 d6 c7 b8)],
|
185
|
|
|
|
|
|
|
g4 => [qw(a4 b4 c4 d4 e4 f4 h4 g1 g2 g3 g5 g6 g7 g8 d1 e2 f3 h5 h3 f5 e6 d7 c8)],
|
186
|
|
|
|
|
|
|
h4 => [qw(a4 b4 c4 d4 e4 f4 g4 h1 h2 h3 h5 h6 h7 h8 e1 f2 g3 g5 f6 e7 d8)],
|
187
|
|
|
|
|
|
|
a5 => [qw(b5 c5 d5 e5 f5 g5 h5 a1 a2 a3 a4 a6 a7 a8 b6 c7 d8 e1 d2 c3 b4)],
|
188
|
|
|
|
|
|
|
b5 => [qw(a5 c5 d5 e5 f5 g5 h5 b1 b2 b3 b4 b6 b7 b8 a4 c6 d7 e8 f1 e2 d3 c4 a6)],
|
189
|
|
|
|
|
|
|
c5 => [qw(a5 b5 d5 e5 f5 g5 h5 c1 c2 c3 c4 c6 c7 c8 a3 b4 d6 e7 f8 g1 f2 e3 d4 b6 a7)],
|
190
|
|
|
|
|
|
|
d5 => [qw(a5 b5 c5 e5 f5 g5 h5 d1 d2 d3 d4 d6 d7 d8 a2 b3 c4 e6 f7 g8 h1 g2 f3 e4 c6 b7 a8)],
|
191
|
|
|
|
|
|
|
e5 => [qw(a5 b5 c5 d5 f5 g5 h5 e1 e2 e3 e4 e6 e7 e8 a1 b2 c3 d4 f6 g7 h8 h2 g3 f4 d6 c7 b8)],
|
192
|
|
|
|
|
|
|
f5 => [qw(a5 b5 c5 d5 e5 g5 h5 f1 f2 f3 f4 f6 f7 f8 b1 c2 d3 e4 g6 h7 h3 g4 e6 d7 c8)],
|
193
|
|
|
|
|
|
|
g5 => [qw(a5 b5 c5 d5 e5 f5 h5 g1 g2 g3 g4 g6 g7 g8 c1 d2 e3 f4 h6 h4 f6 e7 d8)],
|
194
|
|
|
|
|
|
|
h5 => [qw(a5 b5 c5 d5 e5 f5 g5 h1 h2 h3 h4 h6 h7 h8 d1 e2 f3 g4 g6 f7 e8)],
|
195
|
|
|
|
|
|
|
a6 => [qw(b6 c6 d6 e6 f6 g6 h6 a1 a2 a3 a4 a5 a7 a8 b7 c8 f1 e2 d3 c4 b5)],
|
196
|
|
|
|
|
|
|
b6 => [qw(a6 c6 d6 e6 f6 g6 h6 b1 b2 b3 b4 b5 b7 b8 a5 c7 d8 g1 f2 e3 d4 c5 a7)],
|
197
|
|
|
|
|
|
|
c6 => [qw(a6 b6 d6 e6 f6 g6 h6 c1 c2 c3 c4 c5 c7 c8 a4 b5 d7 e8 h1 g2 f3 e4 d5 b7 a8)],
|
198
|
|
|
|
|
|
|
d6 => [qw(a6 b6 c6 e6 f6 g6 h6 d1 d2 d3 d4 d5 d7 d8 a3 b4 c5 e7 f8 h2 g3 f4 e5 c7 b8)],
|
199
|
|
|
|
|
|
|
e6 => [qw(a6 b6 c6 d6 f6 g6 h6 e1 e2 e3 e4 e5 e7 e8 a2 b3 c4 d5 f7 g8 h3 g4 f5 d7 c8)],
|
200
|
|
|
|
|
|
|
f6 => [qw(a6 b6 c6 d6 e6 g6 h6 f1 f2 f3 f4 f5 f7 f8 a1 b2 c3 d4 e5 g7 h8 h4 g5 e7 d8)],
|
201
|
|
|
|
|
|
|
g6 => [qw(a6 b6 c6 d6 e6 f6 h6 g1 g2 g3 g4 g5 g7 g8 b1 c2 d3 e4 f5 h7 h5 f7 e8)],
|
202
|
|
|
|
|
|
|
h6 => [qw(a6 b6 c6 d6 e6 f6 g6 h1 h2 h3 h4 h5 h7 h8 c1 d2 e3 f4 g5 g7 f8)],
|
203
|
|
|
|
|
|
|
a7 => [qw(b7 c7 d7 e7 f7 g7 h7 a1 a2 a3 a4 a5 a6 a8 b8 g1 f2 e3 d4 c5 b6)],
|
204
|
|
|
|
|
|
|
b7 => [qw(a7 c7 d7 e7 f7 g7 h7 b1 b2 b3 b4 b5 b6 b8 a6 c8 h1 g2 f3 e4 d5 c6 a8)],
|
205
|
|
|
|
|
|
|
c7 => [qw(a7 b7 d7 e7 f7 g7 h7 c1 c2 c3 c4 c5 c6 c8 a5 b6 d8 h2 g3 f4 e5 d6 b8)],
|
206
|
|
|
|
|
|
|
d7 => [qw(a7 b7 c7 e7 f7 g7 h7 d1 d2 d3 d4 d5 d6 d8 a4 b5 c6 e8 h3 g4 f5 e6 c8)],
|
207
|
|
|
|
|
|
|
e7 => [qw(a7 b7 c7 d7 f7 g7 h7 e1 e2 e3 e4 e5 e6 e8 a3 b4 c5 d6 f8 h4 g5 f6 d8)],
|
208
|
|
|
|
|
|
|
f7 => [qw(a7 b7 c7 d7 e7 g7 h7 f1 f2 f3 f4 f5 f6 f8 a2 b3 c4 d5 e6 g8 h5 g6 e8)],
|
209
|
|
|
|
|
|
|
g7 => [qw(a7 b7 c7 d7 e7 f7 h7 g1 g2 g3 g4 g5 g6 g8 a1 b2 c3 d4 e5 f6 h8 h6 f8)],
|
210
|
|
|
|
|
|
|
h7 => [qw(a7 b7 c7 d7 e7 f7 g7 h1 h2 h3 h4 h5 h6 h8 b1 c2 d3 e4 f5 g6 g8)],
|
211
|
|
|
|
|
|
|
a8 => [qw(b8 c8 d8 e8 f8 g8 h8 a1 a2 a3 a4 a5 a6 a7 h1 g2 f3 e4 d5 c6 b7)],
|
212
|
|
|
|
|
|
|
b8 => [qw(a8 c8 d8 e8 f8 g8 h8 b1 b2 b3 b4 b5 b6 b7 a7 h2 g3 f4 e5 d6 c7)],
|
213
|
|
|
|
|
|
|
c8 => [qw(a8 b8 d8 e8 f8 g8 h8 c1 c2 c3 c4 c5 c6 c7 a6 b7 h3 g4 f5 e6 d7)],
|
214
|
|
|
|
|
|
|
d8 => [qw(a8 b8 c8 e8 f8 g8 h8 d1 d2 d3 d4 d5 d6 d7 a5 b6 c7 h4 g5 f6 e7)],
|
215
|
|
|
|
|
|
|
e8 => [qw(a8 b8 c8 d8 f8 g8 h8 e1 e2 e3 e4 e5 e6 e7 a4 b5 c6 d7 h5 g6 f7)],
|
216
|
|
|
|
|
|
|
f8 => [qw(a8 b8 c8 d8 e8 g8 h8 f1 f2 f3 f4 f5 f6 f7 a3 b4 c5 d6 e7 h6 g7)],
|
217
|
|
|
|
|
|
|
g8 => [qw(a8 b8 c8 d8 e8 f8 h8 g1 g2 g3 g4 g5 g6 g7 a2 b3 c4 d5 e6 f7 h7)],
|
218
|
|
|
|
|
|
|
h8 => [qw(a8 b8 c8 d8 e8 f8 g8 h1 h2 h3 h4 h5 h6 h7 a1 b2 c3 d4 e5 f6 g7)],
|
219
|
|
|
|
|
|
|
);
|
220
|
|
|
|
|
|
|
|
221
|
|
|
|
|
|
|
%Rook_Moves = (
|
222
|
|
|
|
|
|
|
a1 => [qw(b1 c1 d1 e1 f1 g1 h1 a2 a3 a4 a5 a6 a7 a8)],
|
223
|
|
|
|
|
|
|
b1 => [qw(a1 c1 d1 e1 f1 g1 h1 b2 b3 b4 b5 b6 b7 b8)],
|
224
|
|
|
|
|
|
|
c1 => [qw(a1 b1 d1 e1 f1 g1 h1 c2 c3 c4 c5 c6 c7 c8)],
|
225
|
|
|
|
|
|
|
d1 => [qw(a1 b1 c1 e1 f1 g1 h1 d2 d3 d4 d5 d6 d7 d8)],
|
226
|
|
|
|
|
|
|
e1 => [qw(a1 b1 c1 d1 f1 g1 h1 e2 e3 e4 e5 e6 e7 e8)],
|
227
|
|
|
|
|
|
|
f1 => [qw(a1 b1 c1 d1 e1 g1 h1 f2 f3 f4 f5 f6 f7 f8)],
|
228
|
|
|
|
|
|
|
g1 => [qw(a1 b1 c1 d1 e1 f1 h1 g2 g3 g4 g5 g6 g7 g8)],
|
229
|
|
|
|
|
|
|
h1 => [qw(a1 b1 c1 d1 e1 f1 g1 h2 h3 h4 h5 h6 h7 h8)],
|
230
|
|
|
|
|
|
|
a2 => [qw(b2 c2 d2 e2 f2 g2 h2 a1 a3 a4 a5 a6 a7 a8)],
|
231
|
|
|
|
|
|
|
b2 => [qw(a2 c2 d2 e2 f2 g2 h2 b1 b3 b4 b5 b6 b7 b8)],
|
232
|
|
|
|
|
|
|
c2 => [qw(a2 b2 d2 e2 f2 g2 h2 c1 c3 c4 c5 c6 c7 c8)],
|
233
|
|
|
|
|
|
|
d2 => [qw(a2 b2 c2 e2 f2 g2 h2 d1 d3 d4 d5 d6 d7 d8)],
|
234
|
|
|
|
|
|
|
e2 => [qw(a2 b2 c2 d2 f2 g2 h2 e1 e3 e4 e5 e6 e7 e8)],
|
235
|
|
|
|
|
|
|
f2 => [qw(a2 b2 c2 d2 e2 g2 h2 f1 f3 f4 f5 f6 f7 f8)],
|
236
|
|
|
|
|
|
|
g2 => [qw(a2 b2 c2 d2 e2 f2 h2 g1 g3 g4 g5 g6 g7 g8)],
|
237
|
|
|
|
|
|
|
h2 => [qw(a2 b2 c2 d2 e2 f2 g2 h1 h3 h4 h5 h6 h7 h8)],
|
238
|
|
|
|
|
|
|
a3 => [qw(b3 c3 d3 e3 f3 g3 h3 a1 a2 a4 a5 a6 a7 a8)],
|
239
|
|
|
|
|
|
|
b3 => [qw(a3 c3 d3 e3 f3 g3 h3 b1 b2 b4 b5 b6 b7 b8)],
|
240
|
|
|
|
|
|
|
c3 => [qw(a3 b3 d3 e3 f3 g3 h3 c1 c2 c4 c5 c6 c7 c8)],
|
241
|
|
|
|
|
|
|
d3 => [qw(a3 b3 c3 e3 f3 g3 h3 d1 d2 d4 d5 d6 d7 d8)],
|
242
|
|
|
|
|
|
|
e3 => [qw(a3 b3 c3 d3 f3 g3 h3 e1 e2 e4 e5 e6 e7 e8)],
|
243
|
|
|
|
|
|
|
f3 => [qw(a3 b3 c3 d3 e3 g3 h3 f1 f2 f4 f5 f6 f7 f8)],
|
244
|
|
|
|
|
|
|
g3 => [qw(a3 b3 c3 d3 e3 f3 h3 g1 g2 g4 g5 g6 g7 g8)],
|
245
|
|
|
|
|
|
|
h3 => [qw(a3 b3 c3 d3 e3 f3 g3 h1 h2 h4 h5 h6 h7 h8)],
|
246
|
|
|
|
|
|
|
a4 => [qw(b4 c4 d4 e4 f4 g4 h4 a1 a2 a3 a5 a6 a7 a8)],
|
247
|
|
|
|
|
|
|
b4 => [qw(a4 c4 d4 e4 f4 g4 h4 b1 b2 b3 b5 b6 b7 b8)],
|
248
|
|
|
|
|
|
|
c4 => [qw(a4 b4 d4 e4 f4 g4 h4 c1 c2 c3 c5 c6 c7 c8)],
|
249
|
|
|
|
|
|
|
d4 => [qw(a4 b4 c4 e4 f4 g4 h4 d1 d2 d3 d5 d6 d7 d8)],
|
250
|
|
|
|
|
|
|
e4 => [qw(a4 b4 c4 d4 f4 g4 h4 e1 e2 e3 e5 e6 e7 e8)],
|
251
|
|
|
|
|
|
|
f4 => [qw(a4 b4 c4 d4 e4 g4 h4 f1 f2 f3 f5 f6 f7 f8)],
|
252
|
|
|
|
|
|
|
g4 => [qw(a4 b4 c4 d4 e4 f4 h4 g1 g2 g3 g5 g6 g7 g8)],
|
253
|
|
|
|
|
|
|
h4 => [qw(a4 b4 c4 d4 e4 f4 g4 h1 h2 h3 h5 h6 h7 h8)],
|
254
|
|
|
|
|
|
|
a5 => [qw(b5 c5 d5 e5 f5 g5 h5 a1 a2 a3 a4 a6 a7 a8)],
|
255
|
|
|
|
|
|
|
b5 => [qw(a5 c5 d5 e5 f5 g5 h5 b1 b2 b3 b4 b6 b7 b8)],
|
256
|
|
|
|
|
|
|
c5 => [qw(a5 b5 d5 e5 f5 g5 h5 c1 c2 c3 c4 c6 c7 c8)],
|
257
|
|
|
|
|
|
|
d5 => [qw(a5 b5 c5 e5 f5 g5 h5 d1 d2 d3 d4 d6 d7 d8)],
|
258
|
|
|
|
|
|
|
e5 => [qw(a5 b5 c5 d5 f5 g5 h5 e1 e2 e3 e4 e6 e7 e8)],
|
259
|
|
|
|
|
|
|
f5 => [qw(a5 b5 c5 d5 e5 g5 h5 f1 f2 f3 f4 f6 f7 f8)],
|
260
|
|
|
|
|
|
|
g5 => [qw(a5 b5 c5 d5 e5 f5 h5 g1 g2 g3 g4 g6 g7 g8)],
|
261
|
|
|
|
|
|
|
h5 => [qw(a5 b5 c5 d5 e5 f5 g5 h1 h2 h3 h4 h6 h7 h8)],
|
262
|
|
|
|
|
|
|
a6 => [qw(b6 c6 d6 e6 f6 g6 h6 a1 a2 a3 a4 a5 a7 a8)],
|
263
|
|
|
|
|
|
|
b6 => [qw(a6 c6 d6 e6 f6 g6 h6 b1 b2 b3 b4 b5 b7 b8)],
|
264
|
|
|
|
|
|
|
c6 => [qw(a6 b6 d6 e6 f6 g6 h6 c1 c2 c3 c4 c5 c7 c8)],
|
265
|
|
|
|
|
|
|
d6 => [qw(a6 b6 c6 e6 f6 g6 h6 d1 d2 d3 d4 d5 d7 d8)],
|
266
|
|
|
|
|
|
|
e6 => [qw(a6 b6 c6 d6 f6 g6 h6 e1 e2 e3 e4 e5 e7 e8)],
|
267
|
|
|
|
|
|
|
f6 => [qw(a6 b6 c6 d6 e6 g6 h6 f1 f2 f3 f4 f5 f7 f8)],
|
268
|
|
|
|
|
|
|
g6 => [qw(a6 b6 c6 d6 e6 f6 h6 g1 g2 g3 g4 g5 g7 g8)],
|
269
|
|
|
|
|
|
|
h6 => [qw(a6 b6 c6 d6 e6 f6 g6 h1 h2 h3 h4 h5 h7 h8)],
|
270
|
|
|
|
|
|
|
a7 => [qw(b7 c7 d7 e7 f7 g7 h7 a1 a2 a3 a4 a5 a6 a8)],
|
271
|
|
|
|
|
|
|
b7 => [qw(a7 c7 d7 e7 f7 g7 h7 b1 b2 b3 b4 b5 b6 b8)],
|
272
|
|
|
|
|
|
|
c7 => [qw(a7 b7 d7 e7 f7 g7 h7 c1 c2 c3 c4 c5 c6 c8)],
|
273
|
|
|
|
|
|
|
d7 => [qw(a7 b7 c7 e7 f7 g7 h7 d1 d2 d3 d4 d5 d6 d8)],
|
274
|
|
|
|
|
|
|
e7 => [qw(a7 b7 c7 d7 f7 g7 h7 e1 e2 e3 e4 e5 e6 e8)],
|
275
|
|
|
|
|
|
|
f7 => [qw(a7 b7 c7 d7 e7 g7 h7 f1 f2 f3 f4 f5 f6 f8)],
|
276
|
|
|
|
|
|
|
g7 => [qw(a7 b7 c7 d7 e7 f7 h7 g1 g2 g3 g4 g5 g6 g8)],
|
277
|
|
|
|
|
|
|
h7 => [qw(a7 b7 c7 d7 e7 f7 g7 h1 h2 h3 h4 h5 h6 h8)],
|
278
|
|
|
|
|
|
|
a8 => [qw(b8 c8 d8 e8 f8 g8 h8 a1 a2 a3 a4 a5 a6 a7)],
|
279
|
|
|
|
|
|
|
b8 => [qw(a8 c8 d8 e8 f8 g8 h8 b1 b2 b3 b4 b5 b6 b7)],
|
280
|
|
|
|
|
|
|
c8 => [qw(a8 b8 d8 e8 f8 g8 h8 c1 c2 c3 c4 c5 c6 c7)],
|
281
|
|
|
|
|
|
|
d8 => [qw(a8 b8 c8 e8 f8 g8 h8 d1 d2 d3 d4 d5 d6 d7)],
|
282
|
|
|
|
|
|
|
e8 => [qw(a8 b8 c8 d8 f8 g8 h8 e1 e2 e3 e4 e5 e6 e7)],
|
283
|
|
|
|
|
|
|
f8 => [qw(a8 b8 c8 d8 e8 g8 h8 f1 f2 f3 f4 f5 f6 f7)],
|
284
|
|
|
|
|
|
|
g8 => [qw(a8 b8 c8 d8 e8 f8 h8 g1 g2 g3 g4 g5 g6 g7)],
|
285
|
|
|
|
|
|
|
h8 => [qw(a8 b8 c8 d8 e8 f8 g8 h1 h2 h3 h4 h5 h6 h7)],
|
286
|
|
|
|
|
|
|
);
|
287
|
|
|
|
|
|
|
|
288
|
|
|
|
|
|
|
%Bishop_Moves = (
|
289
|
|
|
|
|
|
|
a1 => [qw(b2 c3 d4 e5 f6 g7 h8)],
|
290
|
|
|
|
|
|
|
b1 => [qw(c2 d3 e4 f5 g6 h7 a2)],
|
291
|
|
|
|
|
|
|
c1 => [qw(d2 e3 f4 g5 h6 b2 a3)],
|
292
|
|
|
|
|
|
|
d1 => [qw(e2 f3 g4 h5 c2 b3 a4)],
|
293
|
|
|
|
|
|
|
e1 => [qw(f2 g3 h4 d2 c3 b4 a5)],
|
294
|
|
|
|
|
|
|
f1 => [qw(g2 h3 e2 d3 c4 b5 a6)],
|
295
|
|
|
|
|
|
|
g1 => [qw(h2 f2 e3 d4 c5 b6 a7)],
|
296
|
|
|
|
|
|
|
h1 => [qw(g2 f3 e4 d5 c6 b7 a8)],
|
297
|
|
|
|
|
|
|
a2 => [qw(b3 c4 d5 e6 f7 g8 b1)],
|
298
|
|
|
|
|
|
|
b2 => [qw(a1 c3 d4 e5 f6 g7 h8 c1 a3)],
|
299
|
|
|
|
|
|
|
c2 => [qw(b1 d3 e4 f5 g6 h7 d1 b3 a4)],
|
300
|
|
|
|
|
|
|
d2 => [qw(c1 e3 f4 g5 h6 e1 c3 b4 a5)],
|
301
|
|
|
|
|
|
|
e2 => [qw(d1 f3 g4 h5 f1 d3 c4 b5 a6)],
|
302
|
|
|
|
|
|
|
f2 => [qw(e1 g3 h4 g1 e3 d4 c5 b6 a7)],
|
303
|
|
|
|
|
|
|
g2 => [qw(f1 h3 h1 f3 e4 d5 c6 b7 a8)],
|
304
|
|
|
|
|
|
|
h2 => [qw(g1 g3 f4 e5 d6 c7 b8)],
|
305
|
|
|
|
|
|
|
a3 => [qw(b4 c5 d6 e7 f8 c1 b2)],
|
306
|
|
|
|
|
|
|
b3 => [qw(a2 c4 d5 e6 f7 g8 d1 c2 a4)],
|
307
|
|
|
|
|
|
|
c3 => [qw(a1 b2 d4 e5 f6 g7 h8 e1 d2 b4 a5)],
|
308
|
|
|
|
|
|
|
d3 => [qw(b1 c2 e4 f5 g6 h7 f1 e2 c4 b5 a6)],
|
309
|
|
|
|
|
|
|
e3 => [qw(c1 d2 f4 g5 h6 g1 f2 d4 c5 b6 a7)],
|
310
|
|
|
|
|
|
|
f3 => [qw(d1 e2 g4 h5 h1 g2 e4 d5 c6 b7 a8)],
|
311
|
|
|
|
|
|
|
g3 => [qw(e1 f2 h4 h2 f4 e5 d6 c7 b8)],
|
312
|
|
|
|
|
|
|
h3 => [qw(f1 g2 g4 f5 e6 d7 c8)],
|
313
|
|
|
|
|
|
|
a4 => [qw(b5 c6 d7 e8 d1 c2 b3)],
|
314
|
|
|
|
|
|
|
b4 => [qw(a3 c5 d6 e7 f8 e1 d2 c3 a5)],
|
315
|
|
|
|
|
|
|
c4 => [qw(a2 b3 d5 e6 f7 g8 f1 e2 d3 b5 a6)],
|
316
|
|
|
|
|
|
|
d4 => [qw(a1 b2 c3 e5 f6 g7 h8 g1 f2 e3 c5 b6 a7)],
|
317
|
|
|
|
|
|
|
e4 => [qw(b1 c2 d3 f5 g6 h7 h1 g2 f3 d5 c6 b7 a8)],
|
318
|
|
|
|
|
|
|
f4 => [qw(c1 d2 e3 g5 h6 h2 g3 e5 d6 c7 b8)],
|
319
|
|
|
|
|
|
|
g4 => [qw(d1 e2 f3 h5 h3 f5 e6 d7 c8)],
|
320
|
|
|
|
|
|
|
h4 => [qw(e1 f2 g3 g5 f6 e7 d8)],
|
321
|
|
|
|
|
|
|
a5 => [qw(b6 c7 d8 e1 d2 c3 b4)],
|
322
|
|
|
|
|
|
|
b5 => [qw(a4 c6 d7 e8 f1 e2 d3 c4 a6)],
|
323
|
|
|
|
|
|
|
c5 => [qw(a3 b4 d6 e7 f8 g1 f2 e3 d4 b6 a7)],
|
324
|
|
|
|
|
|
|
d5 => [qw(a2 b3 c4 e6 f7 g8 h1 g2 f3 e4 c6 b7 a8)],
|
325
|
|
|
|
|
|
|
e5 => [qw(a1 b2 c3 d4 f6 g7 h8 h2 g3 f4 d6 c7 b8)],
|
326
|
|
|
|
|
|
|
f5 => [qw(b1 c2 d3 e4 g6 h7 h3 g4 e6 d7 c8)],
|
327
|
|
|
|
|
|
|
g5 => [qw(c1 d2 e3 f4 h6 h4 f6 e7 d8)],
|
328
|
|
|
|
|
|
|
h5 => [qw(d1 e2 f3 g4 g6 f7 e8)],
|
329
|
|
|
|
|
|
|
a6 => [qw(b7 c8 f1 e2 d3 c4 b5)],
|
330
|
|
|
|
|
|
|
b6 => [qw(a5 c7 d8 g1 f2 e3 d4 c5 a7)],
|
331
|
|
|
|
|
|
|
c6 => [qw(a4 b5 d7 e8 h1 g2 f3 e4 d5 b7 a8)],
|
332
|
|
|
|
|
|
|
d6 => [qw(a3 b4 c5 e7 f8 h2 g3 f4 e5 c7 b8)],
|
333
|
|
|
|
|
|
|
e6 => [qw(a2 b3 c4 d5 f7 g8 h3 g4 f5 d7 c8)],
|
334
|
|
|
|
|
|
|
f6 => [qw(a1 b2 c3 d4 e5 g7 h8 h4 g5 e7 d8)],
|
335
|
|
|
|
|
|
|
g6 => [qw(b1 c2 d3 e4 f5 h7 h5 f7 e8)],
|
336
|
|
|
|
|
|
|
h6 => [qw(c1 d2 e3 f4 g5 g7 f8)],
|
337
|
|
|
|
|
|
|
a7 => [qw(b8 g1 f2 e3 d4 c5 b6)],
|
338
|
|
|
|
|
|
|
b7 => [qw(a6 c8 h1 g2 f3 e4 d5 c6 a8)],
|
339
|
|
|
|
|
|
|
c7 => [qw(a5 b6 d8 h2 g3 f4 e5 d6 b8)],
|
340
|
|
|
|
|
|
|
d7 => [qw(a4 b5 c6 e8 h3 g4 f5 e6 c8)],
|
341
|
|
|
|
|
|
|
e7 => [qw(a3 b4 c5 d6 f8 h4 g5 f6 d8)],
|
342
|
|
|
|
|
|
|
f7 => [qw(a2 b3 c4 d5 e6 g8 h5 g6 e8)],
|
343
|
|
|
|
|
|
|
g7 => [qw(a1 b2 c3 d4 e5 f6 h8 h6 f8)],
|
344
|
|
|
|
|
|
|
h7 => [qw(b1 c2 d3 e4 f5 g6 g8)],
|
345
|
|
|
|
|
|
|
a8 => [qw(h1 g2 f3 e4 d5 c6 b7)],
|
346
|
|
|
|
|
|
|
b8 => [qw(a7 h2 g3 f4 e5 d6 c7)],
|
347
|
|
|
|
|
|
|
c8 => [qw(a6 b7 h3 g4 f5 e6 d7)],
|
348
|
|
|
|
|
|
|
d8 => [qw(a5 b6 c7 h4 g5 f6 e7)],
|
349
|
|
|
|
|
|
|
e8 => [qw(a4 b5 c6 d7 h5 g6 f7)],
|
350
|
|
|
|
|
|
|
f8 => [qw(a3 b4 c5 d6 e7 h6 g7)],
|
351
|
|
|
|
|
|
|
g8 => [qw(a2 b3 c4 d5 e6 f7 h7)],
|
352
|
|
|
|
|
|
|
h8 => [qw(a1 b2 c3 d4 e5 f6 g7)],
|
353
|
|
|
|
|
|
|
);
|
354
|
|
|
|
|
|
|
|
355
|
|
|
|
|
|
|
%Knight_Moves = (
|
356
|
|
|
|
|
|
|
a1 => [qw(b3 c2)],
|
357
|
|
|
|
|
|
|
b1 => [qw(a3 c3 d2)],
|
358
|
|
|
|
|
|
|
c1 => [qw(a2 b3 d3 e2)],
|
359
|
|
|
|
|
|
|
d1 => [qw(b2 c3 e3 f2)],
|
360
|
|
|
|
|
|
|
e1 => [qw(c2 d3 f3 g2)],
|
361
|
|
|
|
|
|
|
f1 => [qw(d2 e3 g3 h2)],
|
362
|
|
|
|
|
|
|
g1 => [qw(e2 f3 h3)],
|
363
|
|
|
|
|
|
|
h1 => [qw(f2 g3)],
|
364
|
|
|
|
|
|
|
a2 => [qw(b4 c3 c1)],
|
365
|
|
|
|
|
|
|
b2 => [qw(a4 c4 d3 d1)],
|
366
|
|
|
|
|
|
|
c2 => [qw(a1 a3 b4 d4 e3 e1)],
|
367
|
|
|
|
|
|
|
d2 => [qw(b1 b3 c4 e4 f3 f1)],
|
368
|
|
|
|
|
|
|
e2 => [qw(c1 c3 d4 f4 g3 g1)],
|
369
|
|
|
|
|
|
|
f2 => [qw(d1 d3 e4 g4 h3 h1)],
|
370
|
|
|
|
|
|
|
g2 => [qw(e1 e3 f4 h4)],
|
371
|
|
|
|
|
|
|
h2 => [qw(f1 f3 g4)],
|
372
|
|
|
|
|
|
|
a3 => [qw(b5 c4 c2 b1)],
|
373
|
|
|
|
|
|
|
b3 => [qw(a1 a5 c5 d4 d2 c1)],
|
374
|
|
|
|
|
|
|
c3 => [qw(b1 a2 a4 b5 d5 e4 e2 d1)],
|
375
|
|
|
|
|
|
|
d3 => [qw(c1 b2 b4 c5 e5 f4 f2 e1)],
|
376
|
|
|
|
|
|
|
e3 => [qw(d1 c2 c4 d5 f5 g4 g2 f1)],
|
377
|
|
|
|
|
|
|
f3 => [qw(e1 d2 d4 e5 g5 h4 h2 g1)],
|
378
|
|
|
|
|
|
|
g3 => [qw(f1 e2 e4 f5 h5 h1)],
|
379
|
|
|
|
|
|
|
h3 => [qw(g1 f2 f4 g5)],
|
380
|
|
|
|
|
|
|
a4 => [qw(b6 c5 c3 b2)],
|
381
|
|
|
|
|
|
|
b4 => [qw(a2 a6 c6 d5 d3 c2)],
|
382
|
|
|
|
|
|
|
c4 => [qw(b2 a3 a5 b6 d6 e5 e3 d2)],
|
383
|
|
|
|
|
|
|
d4 => [qw(c2 b3 b5 c6 e6 f5 f3 e2)],
|
384
|
|
|
|
|
|
|
e4 => [qw(d2 c3 c5 d6 f6 g5 g3 f2)],
|
385
|
|
|
|
|
|
|
f4 => [qw(e2 d3 d5 e6 g6 h5 h3 g2)],
|
386
|
|
|
|
|
|
|
g4 => [qw(f2 e3 e5 f6 h6 h2)],
|
387
|
|
|
|
|
|
|
h4 => [qw(g2 f3 f5 g6)],
|
388
|
|
|
|
|
|
|
a5 => [qw(b7 c6 c4 b3)],
|
389
|
|
|
|
|
|
|
b5 => [qw(a3 a7 c7 d6 d4 c3)],
|
390
|
|
|
|
|
|
|
c5 => [qw(b3 a4 a6 b7 d7 e6 e4 d3)],
|
391
|
|
|
|
|
|
|
d5 => [qw(c3 b4 b6 c7 e7 f6 f4 e3)],
|
392
|
|
|
|
|
|
|
e5 => [qw(d3 c4 c6 d7 f7 g6 g4 f3)],
|
393
|
|
|
|
|
|
|
f5 => [qw(e3 d4 d6 e7 g7 h6 h4 g3)],
|
394
|
|
|
|
|
|
|
g5 => [qw(f3 e4 e6 f7 h7 h3)],
|
395
|
|
|
|
|
|
|
h5 => [qw(g3 f4 f6 g7)],
|
396
|
|
|
|
|
|
|
a6 => [qw(b8 c7 c5 b4)],
|
397
|
|
|
|
|
|
|
b6 => [qw(a4 a8 c8 d7 d5 c4)],
|
398
|
|
|
|
|
|
|
c6 => [qw(b4 a5 a7 b8 d8 e7 e5 d4)],
|
399
|
|
|
|
|
|
|
d6 => [qw(c4 b5 b7 c8 e8 f7 f5 e4)],
|
400
|
|
|
|
|
|
|
e6 => [qw(d4 c5 c7 d8 f8 g7 g5 f4)],
|
401
|
|
|
|
|
|
|
f6 => [qw(e4 d5 d7 e8 g8 h7 h5 g4)],
|
402
|
|
|
|
|
|
|
g6 => [qw(f4 e5 e7 f8 h8 h4)],
|
403
|
|
|
|
|
|
|
h6 => [qw(g4 f5 f7 g8)],
|
404
|
|
|
|
|
|
|
a7 => [qw(c8 c6 b5)],
|
405
|
|
|
|
|
|
|
b7 => [qw(a5 d8 d6 c5)],
|
406
|
|
|
|
|
|
|
c7 => [qw(b5 a6 a8 e8 e6 d5)],
|
407
|
|
|
|
|
|
|
d7 => [qw(c5 b6 b8 f8 f6 e5)],
|
408
|
|
|
|
|
|
|
e7 => [qw(d5 c6 c8 g8 g6 f5)],
|
409
|
|
|
|
|
|
|
f7 => [qw(e5 d6 d8 h8 h6 g5)],
|
410
|
|
|
|
|
|
|
g7 => [qw(f5 e6 e8 h5)],
|
411
|
|
|
|
|
|
|
h7 => [qw(g5 f6 f8)],
|
412
|
|
|
|
|
|
|
a8 => [qw(c7 b6)],
|
413
|
|
|
|
|
|
|
b8 => [qw(a6 d7 c6)],
|
414
|
|
|
|
|
|
|
c8 => [qw(b6 a7 e7 d6)],
|
415
|
|
|
|
|
|
|
d8 => [qw(c6 b7 f7 e6)],
|
416
|
|
|
|
|
|
|
e8 => [qw(d6 c7 g7 f6)],
|
417
|
|
|
|
|
|
|
f8 => [qw(e6 d7 h7 g6)],
|
418
|
|
|
|
|
|
|
g8 => [qw(f6 e7 h6)],
|
419
|
|
|
|
|
|
|
h8 => [qw(g6 f7)],
|
420
|
|
|
|
|
|
|
);
|
421
|
|
|
|
|
|
|
|
422
|
|
|
|
|
|
|
%pawnWhite = (
|
423
|
|
|
|
|
|
|
a2 => [qw(a3 a4 b3)],
|
424
|
|
|
|
|
|
|
b2 => [qw(b3 b4 a3 c3)],
|
425
|
|
|
|
|
|
|
c2 => [qw(c3 c4 b3 d3)],
|
426
|
|
|
|
|
|
|
d2 => [qw(d3 d4 c3 e3)],
|
427
|
|
|
|
|
|
|
e2 => [qw(e3 e4 d3 f3)],
|
428
|
|
|
|
|
|
|
f2 => [qw(f3 f4 e3 g3)],
|
429
|
|
|
|
|
|
|
g2 => [qw(g3 g4 f3 h3)],
|
430
|
|
|
|
|
|
|
h2 => [qw(h3 h4 g3)],
|
431
|
|
|
|
|
|
|
a3 => [qw(a4 b4)],
|
432
|
|
|
|
|
|
|
b3 => [qw(b4 c4 a4)],
|
433
|
|
|
|
|
|
|
c3 => [qw(c4 d4 b4)],
|
434
|
|
|
|
|
|
|
d3 => [qw(d4 e4 c4)],
|
435
|
|
|
|
|
|
|
e3 => [qw(e4 f4 d4)],
|
436
|
|
|
|
|
|
|
f3 => [qw(f4 g4 e4)],
|
437
|
|
|
|
|
|
|
g3 => [qw(g4 h4 f4)],
|
438
|
|
|
|
|
|
|
h3 => [qw(h4 g4)],
|
439
|
|
|
|
|
|
|
a4 => [qw(a5 b5)],
|
440
|
|
|
|
|
|
|
b4 => [qw(b5 c5 a5)],
|
441
|
|
|
|
|
|
|
c4 => [qw(c5 d5 b5)],
|
442
|
|
|
|
|
|
|
d4 => [qw(d5 e5 c5)],
|
443
|
|
|
|
|
|
|
e4 => [qw(e5 f5 d5)],
|
444
|
|
|
|
|
|
|
f4 => [qw(f5 g5 e5)],
|
445
|
|
|
|
|
|
|
g4 => [qw(g5 h5 f5)],
|
446
|
|
|
|
|
|
|
h4 => [qw(h5 g5)],
|
447
|
|
|
|
|
|
|
a5 => [qw(a6 b6)],
|
448
|
|
|
|
|
|
|
b5 => [qw(b6 c6 a6)],
|
449
|
|
|
|
|
|
|
c5 => [qw(c6 d6 b6)],
|
450
|
|
|
|
|
|
|
d5 => [qw(d6 e6 c6)],
|
451
|
|
|
|
|
|
|
e5 => [qw(e6 f6 d6)],
|
452
|
|
|
|
|
|
|
f5 => [qw(f6 g6 e6)],
|
453
|
|
|
|
|
|
|
g5 => [qw(g6 h6 f6)],
|
454
|
|
|
|
|
|
|
h5 => [qw(h6 g6)],
|
455
|
|
|
|
|
|
|
a6 => [qw(a7 b7)],
|
456
|
|
|
|
|
|
|
b6 => [qw(b7 c7 a7)],
|
457
|
|
|
|
|
|
|
c6 => [qw(c7 d7 b7)],
|
458
|
|
|
|
|
|
|
d6 => [qw(d7 e7 c7)],
|
459
|
|
|
|
|
|
|
e6 => [qw(e7 f7 d7)],
|
460
|
|
|
|
|
|
|
f6 => [qw(f7 g7 e7)],
|
461
|
|
|
|
|
|
|
g6 => [qw(g7 h7 f7)],
|
462
|
|
|
|
|
|
|
h6 => [qw(h7 g7)],
|
463
|
|
|
|
|
|
|
a7 => [qw(a8 b8)],
|
464
|
|
|
|
|
|
|
b7 => [qw(b8 c8 a8)],
|
465
|
|
|
|
|
|
|
c7 => [qw(c8 d8 b8)],
|
466
|
|
|
|
|
|
|
d7 => [qw(d8 e8 c8)],
|
467
|
|
|
|
|
|
|
e7 => [qw(e8 f8 d8)],
|
468
|
|
|
|
|
|
|
f7 => [qw(f8 g8 e8)],
|
469
|
|
|
|
|
|
|
g7 => [qw(g8 h8 f8)],
|
470
|
|
|
|
|
|
|
h7 => [qw(h8 g8)],
|
471
|
|
|
|
|
|
|
);
|
472
|
|
|
|
|
|
|
|
473
|
|
|
|
|
|
|
%pawnBlack = (
|
474
|
|
|
|
|
|
|
a7 => [qw(a6 a5 b6)],
|
475
|
|
|
|
|
|
|
b7 => [qw(b6 b5 c6 a6)],
|
476
|
|
|
|
|
|
|
c7 => [qw(c6 c5 d6 b6)],
|
477
|
|
|
|
|
|
|
d7 => [qw(d6 d5 e6 c6)],
|
478
|
|
|
|
|
|
|
e7 => [qw(e6 e5 f6 d6)],
|
479
|
|
|
|
|
|
|
f7 => [qw(f6 f5 g6 e6)],
|
480
|
|
|
|
|
|
|
g7 => [qw(g6 g5 h6 f6)],
|
481
|
|
|
|
|
|
|
h7 => [qw(h6 h5 g6)],
|
482
|
|
|
|
|
|
|
a6 => [qw(a5 b5)],
|
483
|
|
|
|
|
|
|
b6 => [qw(b5 c5 a5)],
|
484
|
|
|
|
|
|
|
c6 => [qw(c5 d5 b5)],
|
485
|
|
|
|
|
|
|
d6 => [qw(d5 e5 c5)],
|
486
|
|
|
|
|
|
|
e6 => [qw(e5 f5 d5)],
|
487
|
|
|
|
|
|
|
f6 => [qw(f5 g5 e5)],
|
488
|
|
|
|
|
|
|
g6 => [qw(g5 h5 f5)],
|
489
|
|
|
|
|
|
|
h6 => [qw(h5 g5)],
|
490
|
|
|
|
|
|
|
a5 => [qw(a4 b4)],
|
491
|
|
|
|
|
|
|
b5 => [qw(b4 c4 a4)],
|
492
|
|
|
|
|
|
|
c5 => [qw(c4 d4 b4)],
|
493
|
|
|
|
|
|
|
d5 => [qw(d4 e4 c4)],
|
494
|
|
|
|
|
|
|
e5 => [qw(e4 f4 d4)],
|
495
|
|
|
|
|
|
|
f5 => [qw(f4 g4 e4)],
|
496
|
|
|
|
|
|
|
g5 => [qw(g4 h4 f4)],
|
497
|
|
|
|
|
|
|
h5 => [qw(h4 g4)],
|
498
|
|
|
|
|
|
|
a4 => [qw(a3 b3)],
|
499
|
|
|
|
|
|
|
b4 => [qw(b3 c3 a3)],
|
500
|
|
|
|
|
|
|
c4 => [qw(c3 d3 b3)],
|
501
|
|
|
|
|
|
|
d4 => [qw(d3 e3 c3)],
|
502
|
|
|
|
|
|
|
e4 => [qw(e3 f3 d3)],
|
503
|
|
|
|
|
|
|
f4 => [qw(f3 g3 e3)],
|
504
|
|
|
|
|
|
|
g4 => [qw(g3 h3 f3)],
|
505
|
|
|
|
|
|
|
h4 => [qw(h3 g3)],
|
506
|
|
|
|
|
|
|
a3 => [qw(a2 b2)],
|
507
|
|
|
|
|
|
|
b3 => [qw(b2 c2 a2)],
|
508
|
|
|
|
|
|
|
c3 => [qw(c2 d2 b2)],
|
509
|
|
|
|
|
|
|
d3 => [qw(d2 e2 c2)],
|
510
|
|
|
|
|
|
|
e3 => [qw(e2 f2 d2)],
|
511
|
|
|
|
|
|
|
f3 => [qw(f2 g2 e2)],
|
512
|
|
|
|
|
|
|
g3 => [qw(g2 h2 f2)],
|
513
|
|
|
|
|
|
|
h3 => [qw(h2 g2)],
|
514
|
|
|
|
|
|
|
a2 => [qw(a1 b1)],
|
515
|
|
|
|
|
|
|
b2 => [qw(b1 c1 a1)],
|
516
|
|
|
|
|
|
|
c2 => [qw(c1 d1 b1)],
|
517
|
|
|
|
|
|
|
d2 => [qw(d1 e1 c1)],
|
518
|
|
|
|
|
|
|
e2 => [qw(e1 f1 d1)],
|
519
|
|
|
|
|
|
|
f2 => [qw(f1 g1 e1)],
|
520
|
|
|
|
|
|
|
g2 => [qw(g1 h1 f1)],
|
521
|
|
|
|
|
|
|
h2 => [qw(h1 g1)],
|
522
|
|
|
|
|
|
|
);
|
523
|
|
|
|
|
|
|
|
524
|
|
|
|
|
|
|
%from_algebraic = (
|
525
|
|
|
|
|
|
|
"a1", 0,"b1", 1,"c1", 2,"d1", 3,"e1", 4,"f1", 5,"g1", 6,"h1", 7,
|
526
|
|
|
|
|
|
|
"a2", 8,"b2", 9,"c2",10,"d2",11,"e2",12,"f2",13,"g2",14,"h2",15,
|
527
|
|
|
|
|
|
|
"a3",16,"b3",17,"c3",18,"d3",19,"e3",20,"f3",21,"g3",22,"h3",23,
|
528
|
|
|
|
|
|
|
"a4",24,"b4",25,"c4",26,"d4",27,"e4",28,"f4",29,"g4",30,"h4",31,
|
529
|
|
|
|
|
|
|
"a5",32,"b5",33,"c5",34,"d5",35,"e5",36,"f5",37,"g5",38,"h5",39,
|
530
|
|
|
|
|
|
|
"a6",40,"b6",41,"c6",42,"d6",43,"e6",44,"f6",45,"g6",46,"h6",47,
|
531
|
|
|
|
|
|
|
"a7",48,"b7",49,"c7",50,"d7",51,"e7",52,"f7",53,"g7",54,"h7",55,
|
532
|
|
|
|
|
|
|
"a8",56,"b8",57,"c8",58,"d8",59,"e8",60,"f8",61,"g8",62,"h8",63,
|
533
|
|
|
|
|
|
|
);
|
534
|
|
|
|
|
|
|
|
535
|
|
|
|
|
|
|
%move_table = (
|
536
|
|
|
|
|
|
|
K => \%King_Moves,
|
537
|
|
|
|
|
|
|
Q => \%Queen_Moves,
|
538
|
|
|
|
|
|
|
R => \%Rook_Moves,
|
539
|
|
|
|
|
|
|
N => \%Knight_Moves,
|
540
|
|
|
|
|
|
|
B => \%Bishop_Moves,
|
541
|
|
|
|
|
|
|
);
|
542
|
|
|
|
|
|
|
|
543
|
|
|
|
|
|
|
1;
|
544
|
|
|
|
|
|
|
__END__
|