-
-
Notifications
You must be signed in to change notification settings - Fork 207
/
EndgamePosition.scala
187 lines (183 loc) · 15.2 KB
/
EndgamePosition.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
package chess
import chess.format.EpdFen
case class EndgamePosition(
name: String,
fen: EpdFen
)
object EndgamePosition:
val positions: List[EndgamePosition] = List(
EndgamePosition("Mate Queen and Rook", EpdFen("8/8/8/3k4/8/8/8/5RQK w - - 0 1")),
EndgamePosition("Mate Two Rooks", EpdFen("8/8/8/8/8/4k3/6R1/6RK w - - 0 1")),
EndgamePosition("Mate Queen I", EpdFen("8/8/5Q2/2k5/4K3/8/8/8 w - - 0 1")),
EndgamePosition("Mate Queen II", EpdFen("8/8/8/3k4/8/8/8/6QK w - - 0 1")),
EndgamePosition("Mate Rook I", EpdFen("3k4/R7/8/4K3/8/8/8/8 w - - 0 1")),
EndgamePosition("Mate Rook II", EpdFen("8/8/8/8/4k3/8/8/6RK w - - 0 1")),
EndgamePosition("Queen vs Bishop", EpdFen("8/8/3B4/6K1/8/8/2k5/q7 b - - 0 1")),
EndgamePosition("Queen vs Knight", EpdFen("8/8/8/3nk3/8/3Q4/8/7K w - - 0 1")),
EndgamePosition("Pawn Ending I", EpdFen("8/3k4/3P4/3K4/8/8/8/8 b - - 0 1")),
EndgamePosition("Pawn Ending II", EpdFen("8/3k4/3P4/3K4/8/8/8/8 w - - 0 1")),
EndgamePosition("Pawn Ending III", EpdFen("6k1/8/8/8/8/8/P7/7K w - - 0 1")),
EndgamePosition("Pawn Ending IV", EpdFen("8/4k3/2K5/8/8/8/1P6/8 w - - 0 1")),
EndgamePosition("Pawn Ending V", EpdFen("5k2/8/4K3/5P2/8/8/8/8 w - - 0 1")),
EndgamePosition("Pawn Ending VI", EpdFen("5k2/8/5K2/5P2/8/8/8/8 w - - 0 1")),
EndgamePosition("Pawn Ending VII", EpdFen("5k2/8/4K3/5P2/8/8/8/8 b - - 0 1")),
EndgamePosition("Pawn Ending VIII", EpdFen("5k2/8/5K2/5P2/8/8/8/8 b - - 0 1")),
EndgamePosition("Pawn Ending IX", EpdFen("7k/5K2/8/6P1/8/8/8/8 w - - 0 1")),
EndgamePosition("Pawn Ending X", EpdFen("5k2/8/8/8/3PK3/8/8/8 w - - 0 1")),
EndgamePosition("Pawn Ending XI", EpdFen("5k2/8/8/8/3PK3/8/8/8 b - - 0 1")),
EndgamePosition("Pawn Ending XII", EpdFen("8/6k1/8/6K1/8/6P1/8/8 w - - 0 1")),
EndgamePosition("Pawn Ending XIII", EpdFen("1k6/8/PK6/8/8/8/8/8 b - - 0 1")),
EndgamePosition("Pawn Ending XIV", EpdFen("8/4k3/6K1/8/7P/8/8/8 b - - 0 1")),
EndgamePosition("Knight vs Pawn I", EpdFen("8/K7/8/8/8/1k6/1N1p4/8 w - - 0 1")),
EndgamePosition("Knight vs Pawn II", EpdFen("8/8/8/8/5N2/8/2p4K/2k5 w - - 0 1")),
EndgamePosition("Knight vs Pawn III", EpdFen("8/8/8/8/4N3/1p6/7K/1k6 b - - 0 1")),
EndgamePosition("Knight vs Pawn IV", EpdFen("8/8/K7/4N3/8/7p/7k/8 w - - 0 1")),
EndgamePosition("Knight vs Pawn V", EpdFen("K7/8/8/5N2/8/3k3p/8/8 w - - 0 1")),
EndgamePosition("Knight vs Pawn VI", EpdFen("8/2K5/8/8/4N3/2k5/7p/8 b - - 0 1")),
EndgamePosition("Knight vs Pawn VII", EpdFen("8/8/8/8/8/p7/2K1N3/k7 w - - 0 1")),
EndgamePosition("Knight vs Pawn VIII", EpdFen("8/k7/8/8/7p/8/6N1/4K3 b - - 0 1")),
EndgamePosition("Rook vs Pawn I", EpdFen("8/8/8/5PK1/8/k7/8/3r4 b - - 0 1")),
EndgamePosition("Rook vs Pawn II", EpdFen("8/8/8/5PK1/8/k7/8/3r4 w - - 0 1")),
EndgamePosition("Rook vs Pawn III", EpdFen("7r/8/8/2KP4/8/8/2k5/8 b - - 0 1")),
EndgamePosition("Rook vs Pawn IV", EpdFen("8/8/8/8/7P/6K1/1r6/k7 b - - 0 1")),
EndgamePosition("Rook vs Pawn IV", EpdFen("8/8/8/5KP1/8/5k2/8/r7 b - - 0 1")),
EndgamePosition("Rook vs Pawn X", EpdFen("8/8/8/8/4KP2/8/r3k3/8 b - - 0 1")),
EndgamePosition("Rook vs Pawn XI", EpdFen("8/8/8/8/4KP2/8/r3k3/8 w - - 0 1")),
EndgamePosition("Rook vs Pawn XII", EpdFen("4r3/8/8/3KP3/k7/8/8/8 b - - 0 1")),
EndgamePosition("Rook vs Pawn XIII", EpdFen("8/2K5/8/1P3k2/8/8/8/7r b - - 0 1")),
EndgamePosition("Rook vs Pawn XIV", EpdFen("7r/2K5/k7/3P4/8/8/8/8 b - - 0 1")),
EndgamePosition("Rook vs Pawn XV", EpdFen("8/8/8/3r4/2KP4/8/2k5/8 b - - 0 1")),
EndgamePosition("Rook vs Pawn XVI", EpdFen("8/8/5K2/8/6P1/8/3r4/4k3 b - - 0 1")),
EndgamePosition("Rook vs Pawn XVII", EpdFen("8/8/8/6KP/8/6k1/8/r7 b - - 0 1")),
EndgamePosition("Rook vs Pawn XVIII", EpdFen("8/4k1KP/8/8/8/8/8/r7 b - - 0 1")),
EndgamePosition("Rook vs Pawn XIX", EpdFen("8/8/4k1KP/8/8/8/8/r7 w - - 0 1")),
EndgamePosition("Rook vs Pawn XX", EpdFen("8/8/4k1KP/8/8/8/8/r7 b - - 0 1")),
EndgamePosition("Rook vs Pawn XXI", EpdFen("8/2P2k2/3K4/5r2/8/8/8/8 b - - 0 1")),
EndgamePosition("Pawns Ending I", EpdFen("8/8/3k3p/3P3P/2K5/8/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending II", EpdFen("8/8/8/1k5p/7P/1PK5/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending III", EpdFen("8/8/p7/P7/3k4/3P4/3K4/8 w - - 0 1")),
EndgamePosition("Pawns Ending IV", EpdFen("8/8/8/p7/P7/3k4/3P4/3K4 w - - 0 1")),
EndgamePosition("Pawn Ending XV", EpdFen("k7/8/2P5/K7/8/8/8/8 w - - 0 1")),
EndgamePosition("Pawn Ending XVI", EpdFen("8/6k1/4P3/6K1/8/8/8/8 w - - 0 1")),
EndgamePosition("Pawn Ending XVII", EpdFen("k7/8/1PK5/8/8/8/8/8 w - - 0 1")),
EndgamePosition("Queen vs Pawn I", EpdFen("8/1PK5/8/8/8/4q3/8/1k6 b - - 0 1")),
EndgamePosition("Queen vs Pawn II", EpdFen("8/3PK3/8/8/8/8/4k3/5q2 b - - 0 1")),
EndgamePosition("Queen vs Pawn III", EpdFen("8/5K1P/8/8/3q4/8/8/2k5 w - - 0 1")),
EndgamePosition("Queen vs Pawn IV", EpdFen("8/6KP/8/4k3/3q4/8/8/8 b - - 0 1")),
EndgamePosition("Queen vs Pawn V", EpdFen("8/5P2/3K4/8/8/1k6/8/q7 w - - 0 1")),
EndgamePosition("Queen vs Pawn VI", EpdFen("8/5PK1/8/6k1/8/8/q7/8 b - - 0 1")),
EndgamePosition("Queen vs Pawn VII", EpdFen("8/4KP2/8/8/6k1/8/q7/8 b - - 0 1")),
EndgamePosition("Queen vs Pawn VIII", EpdFen("8/4KP2/8/1k6/8/8/q7/8 b - - 0 1")),
EndgamePosition("Queen vs Pawn IX", EpdFen("8/8/8/8/8/k2K4/2Q5/q7 w - - 0 1")),
EndgamePosition("Rook vs 2 Pawns I", EpdFen("8/8/P7/1P5k/8/8/7K/5r2 w - - 0 1")),
EndgamePosition("Rook vs 2 Pawns II", EpdFen("8/8/P7/1P5k/8/8/7K/6r1 b - - 0 1")),
EndgamePosition("Rook vs 2 Pawns III", EpdFen("6r1/8/P7/1P5k/8/8/7K/8 w - - 0 1")),
EndgamePosition("Rook vs 2 Pawns IV", EpdFen("6r1/8/P7/1P5k/8/8/7K/8 b - - 0 1")),
EndgamePosition("Rook vs 2 Pawns V", EpdFen("r3k3/8/3PP3/3K4/8/8/8/8 w - - 0 1")),
EndgamePosition("Rook vs 2 Pawns VI", EpdFen("r7/2kPK3/4P3/8/8/8/8/8 b - - 0 1")),
EndgamePosition("Rook vs 2 Pawns VII", EpdFen("r7/3kPK2/5P2/8/8/8/8/8 b - - 0 1")),
EndgamePosition("Rook vs 2 Pawns VIII", EpdFen("r7/4kPK1/6P1/8/8/8/8/8 b - - 0 1")),
EndgamePosition("Rook vs 2 Pawns IX", EpdFen("r7/5kPK/7P/8/8/8/8/8 b - - 0 1")),
EndgamePosition("Rook vs 2 Pawns X", EpdFen("8/8/5KP1/5P2/8/2k4r/8/8 b - - 0 1")),
EndgamePosition("Rook vs 2 Pawns XI", EpdFen("8/8/8/1P6/PK6/8/r7/2k5 w - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook I - Philidor", EpdFen("4k3/R7/8/3KP3/8/6r1/8/8 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook II - Lucena", EpdFen("3K4/3P1k2/8/8/8/8/7r/4R3 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook III", EpdFen("4K3/4P1k1/8/8/8/8/r7/5R2 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook IV", EpdFen("1k6/7R/8/KP6/8/8/8/2r5 w - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook V", EpdFen("4k3/7R/8/3KPr2/8/8/8/8 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook VI", EpdFen("r7/3RK1k1/4P3/8/8/8/8/8 w - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook VII", EpdFen("1r6/R3K1k1/4P3/8/8/8/8/8 w - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook VIII", EpdFen("7r/8/4k3/8/2P5/2K5/8/3R4 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook IX", EpdFen("2r5/8/5k2/8/2P5/2K5/8/4R3 w - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook X", EpdFen("3r4/8/k7/8/3P4/3K4/8/1R6 w - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook XI", EpdFen("1r6/8/8/2R5/1P1k4/1K6/8/8 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook XII", EpdFen("2r5/8/8/3R4/2P1k3/2K5/8/8 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook XIII", EpdFen("3r4/8/8/8/7R/3P1k2/3K4/8 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook XIV", EpdFen("2r5/8/7R/4k3/2P5/2K5/8/8 w - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook XV", EpdFen("2r5/8/7R/4k3/2P5/2K5/8/8 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook XVI", EpdFen("4r3/8/8/5R2/4P1k1/4K3/8/8 b - - 0 1")),
EndgamePosition("Pawns Ending I", EpdFen("8/1k6/8/1P6/1P6/1K6/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending II", EpdFen("1k6/8/1P6/1P6/1K6/8/8/8 w - - 0 1")),
EndgamePosition("Rook vs Bishop I", EpdFen("7k/R7/7K/8/8/1b6/8/8 w - - 0 1")),
EndgamePosition("Rook vs Bishop II", EpdFen("6k1/5R2/6K1/8/8/8/8/6b1 w - - 0 1")),
EndgamePosition("Rook vs Knight I", EpdFen("8/8/8/8/8/3k4/r7/3NK3 w - - 0 1")),
EndgamePosition("Rook vs Knight II", EpdFen("8/8/8/8/8/6k1/r7/6NK w - - 0 1")),
EndgamePosition("Rook vs Knight III", EpdFen("8/8/8/8/8/6k1/r7/6KN b - - 0 1")),
EndgamePosition("Opposite Color Bishops I", EpdFen("3k4/1K6/2PbP3/3B4/8/8/8/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops II", EpdFen("8/2bB4/2P5/6k1/4K3/5P2/8/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops III", EpdFen("8/2kB4/2P5/6b1/4K3/5P2/8/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops IV", EpdFen("2k5/8/3P1K2/2B3P1/2b5/8/8/8 b - - 0 1")),
EndgamePosition("Opposite Color Bishops V", EpdFen("8/3k4/3B1K2/4P3/1Pb5/8/8/8 b - - 0 1")),
EndgamePosition("Opposite Color Bishops VI", EpdFen("8/bB6/P2k4/3P4/4K3/8/8/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops VII", EpdFen("1b6/1P6/4Bk2/5P2/4K3/8/8/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops VIII", EpdFen("2b5/8/1P1B4/8/4kP2/8/5K2/8 b - - 0 1")),
EndgamePosition("Opposite Color Bishops IX", EpdFen("8/8/8/2Bk4/1P3Pb1/4K3/8/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops X", EpdFen("8/b7/P7/3Bk3/2K1P3/8/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending III", EpdFen("8/8/8/5k2/5P1P/8/8/K7 w - - 0 1")),
EndgamePosition("Pawns Ending IV", EpdFen("8/8/2k5/8/P2P4/8/8/7K b - - 0 1")),
EndgamePosition("Mate Bishop + Knight", EpdFen("8/8/8/8/4k3/8/6K1/6BN w - - 0 1")),
EndgamePosition("Mate Two Bishops", EpdFen("K7/5B2/7B/8/4k3/8/8/8 w - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook XVII", EpdFen("R7/P4k2/8/8/8/8/6K1/r7 b - - 0 1")),
EndgamePosition("Rook + Pawn vs Rook XVIII", EpdFen("R7/5k2/P7/8/8/8/6K1/r7 b - - 0 1")),
EndgamePosition("Opposite Color Bishops XI", EpdFen("4k3/8/4PP2/4K3/1b6/3B4/8/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops XII", EpdFen("3bk3/8/4PP2/4K3/8/8/4B3/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops XIII", EpdFen("6k1/8/6PP/5K2/2B5/2b5/8/8 b - - 0 1")),
EndgamePosition("Opposite Color Bishops XIV", EpdFen("8/4k3/8/4PP2/4K3/1b6/3B4/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops XV", EpdFen("2b5/4k3/8/4PP2/4K3/8/3B4/8 w - - 0 1")),
EndgamePosition("Opposite Color Bishops XVI", EpdFen("8/8/3k4/8/3PP3/4K3/8/4Bb2 b - - 0 1")),
EndgamePosition("Opposite Color Bishops XVII", EpdFen("8/5kb1/8/8/6K1/3B4/4PP2/8 w - - 0 1")),
EndgamePosition("Pawns Ending V", EpdFen("k7/8/1p6/1P6/8/8/7K/8 w - - 0 1")),
EndgamePosition("Pawns Ending VI", EpdFen("8/2K5/4p3/4P3/6k1/8/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending VII", EpdFen("8/8/8/7k/3p2p1/3P4/6KP/8 b - - 0 1")),
EndgamePosition("Pawns Ending VIII", EpdFen("8/8/8/5p2/3k4/5P2/8/6K1 w - - 0 1")),
EndgamePosition("Pawns Ending IX", EpdFen("8/1p6/1P6/8/7K/8/8/1k6 w - - 0 1")),
EndgamePosition("Pawns Ending X", EpdFen("8/p4K2/P7/8/8/8/1k6/8 w - - 0 1")),
EndgamePosition("Pawns Ending XI", EpdFen("8/p4K2/P7/8/8/8/7k/8 w - - 0 1")),
EndgamePosition("Pawns Ending XII", EpdFen("8/8/5p2/8/4P1k1/8/7K/8 w - - 0 1")),
EndgamePosition("Pawns Ending XIII", EpdFen("8/6p1/7k/8/1K6/8/1P6/8 w - - 0 1")),
EndgamePosition("Pawns Ending XIV", EpdFen("7K/8/k1P5/7p/8/8/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending XV", EpdFen("8/5p2/2k5/K7/8/1P6/8/8 b - - 0 1")),
EndgamePosition("Pawns Ending XVI", EpdFen("8/p7/P7/8/8/3k4/3P4/3K4 w - - 0 1")),
EndgamePosition("Pawns Ending XVII", EpdFen("5k2/5P1p/4K3/8/8/8/7P/8 w - - 0 1")),
EndgamePosition("Pawns Ending XVIII", EpdFen("2k5/8/p1P5/P2K4/8/8/8/8 w - - 0 1")),
EndgamePosition("Rook vs Rook + h Pawn I", EpdFen("K7/P4k2/8/8/8/8/4R3/1r6 w - - 0 1")),
EndgamePosition("Rook vs Rook + h Pawn II", EpdFen("8/1K1k4/2R5/P7/8/8/8/7r w - - 0 1")),
EndgamePosition("Rook vs Rook + h Pawn III", EpdFen("8/1K1k4/2R5/P7/8/8/8/7r b - - 0 1")),
EndgamePosition("Same Color Bishops I", EpdFen("5k2/2K5/3P4/1b5B/8/8/8/8 w - - 0 1")),
EndgamePosition("Same Color Bishops II", EpdFen("4B3/2K5/3P4/2k5/8/7b/8/8 w - - 0 1")),
EndgamePosition("Same Color Bishops III", EpdFen("8/K7/1P6/k4B2/8/5b2/8/8 w - - 0 1")),
EndgamePosition("Same Color Bishops IV", EpdFen("5K2/5P2/3b1k1B/8/8/8/8/8 w - - 0 1")),
EndgamePosition("Same Color Bishops VI", EpdFen("8/8/2k5/5PK1/8/2b5/7B/8 b - - 0 1")),
EndgamePosition("Same Color Bishops VII", EpdFen("5k2/3b4/3P1K2/8/8/8/8/3B4 w - - 0 1")),
EndgamePosition("Bishop vs Knight I", EpdFen("1K6/4B3/8/8/8/2n2p2/5k2/8 w - - 0 1")),
EndgamePosition("Bishop vs Knight II", EpdFen("8/8/8/8/B6n/7p/6k1/4K3 w - - 0 1")),
EndgamePosition("Bishop vs Knight III", EpdFen("8/8/5B2/8/1n6/8/p1k1K3/8 b - - 0 1")),
EndgamePosition("Bishop vs Knight IV", EpdFen("2K5/3Pkn2/8/8/8/5B2/8/8 w - - 0 1")),
EndgamePosition("Bishop vs Knight V", EpdFen("8/4K3/3P1n2/3k4/8/8/2B5/8 w - - 0 1")),
EndgamePosition("Pawns Ending XIX", EpdFen("8/7p/5k2/8/5K2/8/6PP/8 b - - 0 1")),
EndgamePosition("Pawns Ending XX", EpdFen("8/7p/5k2/8/5K2/8/6PP/8 w - - 0 1")),
EndgamePosition("Pawns Ending XXI", EpdFen("8/7p/5k2/8/5K2/6P1/7P/8 w - - 0 1")),
EndgamePosition("Pawns Ending XXII", EpdFen("8/7p/8/5k2/8/5K2/6PP/8 b - - 0 1")),
EndgamePosition("Pawns Ending XXIII", EpdFen("8/6k1/6P1/p2p3P/8/8/2K5/8 b - - 0 1")),
EndgamePosition("Pawns Ending XXIV", EpdFen("8/6k1/6P1/p2p3P/8/8/2K5/8 w - - 0 1")),
EndgamePosition("Rook vs Rook + Bishop I", EpdFen("3k4/4r3/3K4/3B4/8/8/8/5R2 b - - 0 1")),
EndgamePosition("Rook vs Rook + Bishop II", EpdFen("3k4/4r3/3K4/3B4/8/8/8/5R2 w - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns I", EpdFen("3k4/6R1/7r/2KP4/3P4/8/8/8 w - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns II", EpdFen("8/6p1/8/8/1R4pk/r7/6K1/8 w - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns III", EpdFen("6k1/1R6/5P1P/6K1/8/8/8/r7 b - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns IV", EpdFen("6k1/1R6/7P/5PK1/8/8/8/r7 b - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns V", EpdFen("8/6k1/R7/1r5P/5PK1/8/8/8 w - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns VI", EpdFen("8/5k2/7P/6R1/5PK1/8/8/1r6 b - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns VII", EpdFen("8/8/r5kP/6P1/1R3K2/8/8/8 w - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns VIII", EpdFen("8/8/r4kP1/5P2/1R3K2/8/8/8 w - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns IX", EpdFen("8/4r3/8/5K2/2Pk4/3P3R/8/8 w - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns X", EpdFen("R7/P5k1/8/8/8/6P1/6K1/r7 w - - 0 1")),
EndgamePosition("Rook vs Rook + 2 Pawns XI", EpdFen("R7/6k1/8/8/P6P/6K1/8/4r3 b - - 0 1")),
EndgamePosition("Pawns Ending XXV", EpdFen("8/7k/p3p1pP/6P1/8/2K5/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending XXVI", EpdFen("8/7k/6pP/6P1/8/p1p5/8/1K6 b - - 0 1")),
EndgamePosition("Pawns Ending XXVII", EpdFen("8/8/8/1p2kPp1/6P1/4K3/8/8 b - - 0 1")),
EndgamePosition("Pawns Ending XXVIII", EpdFen("8/8/8/p3kPp1/6P1/4K3/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending XXIX", EpdFen("8/8/2p1kPp1/6P1/4K3/8/8/8 w - - 0 1")),
EndgamePosition("Pawns Ending XXX", EpdFen("8/8/3k4/1p2p3/1P2K3/8/7P/8 w - - 0 1")),
EndgamePosition("Queen vs Rook", EpdFen("8/8/4r3/3k4/8/8/3K1Q2/8 w - - 0 1"))
)