chess game coded in go programming language with two machine players
Ian Martin Ajzenszmidt
Information Technology and Services Professional and Political Scientist (Retired - Not Working since 1989).
ian@ian-Latitude-E7440:~$ go build chess99.go
ian@ian-Latitude-E7440:~$ cat chess99.go
package main
import (
"fmt"
"time"
"math/rand"
)
// Constants for integer limits
const (
MinInt = -1 << 31
MaxInt = 1<<31 - 1
)
// Constants for pieces
const (
Empty = 0
Pawn = 1
Rook = 2
Knight = 3
Bishop = 4
Queen = 5
King = 6
Player1 = 1
Player2 = -1
)
// Piece names for display
var pieceNames = map[int]string{
Empty: ".",
Pawn: "P",
Rook: "R",
Knight: "N",
Bishop: "B",
Queen: "Q",
King: "K",
-Pawn: "p",
-Rook: "r",
-Knight: "n",
-Bishop: "b",
-Queen: "q",
-King: "k",
}
// Board represents the chessboard
type Board struct {
grid [8][8]int
turn int
}
// Initialize the chessboard with starting positions
func (b *Board) Init() {
b.grid[0] = [8]int{Rook, Knight, Bishop, Queen, King, Bishop, Knight, Rook}
b.grid[1] = [8]int{Pawn, Pawn, Pawn, Pawn, Pawn, Pawn, Pawn, Pawn}
b.grid[6] = [8]int{-Pawn, -Pawn, -Pawn, -Pawn, -Pawn, -Pawn, -Pawn, -Pawn}
b.grid[7] = [8]int{-Rook, -Knight, -Bishop, -Queen, -King, -Bishop, -Knight, -Rook}
b.turn = Player1
}
// Display the board with labeled pieces and gameplay status
func (b *Board) Display(turn int) {
fmt.Println(" a b c d e f g h")
for i, row := range b.grid {
fmt.Printf("%d ", 8-i)
for _, piece := range row {
fmt.Printf("%2s ", pieceNames[piece])
}
fmt.Printf("%d\n", 8-i)
}
fmt.Println(" a b c d e f g h")
if b.turn == Player1 {
fmt.Printf("Turn %d: Player 1 (White) to move\n", turn)
} else {
fmt.Printf("Turn %d: Player 2 (Black) to move\n", turn)
}
fmt.Println()
}
// Copy creates a copy of the board
func (b Board) Copy() Board {
newBoard := &Board{}
newBoard = b
return newBoard
}
// IsValidMove checks if a move is valid (simplified for demo purposes)
func (b *Board) IsValidMove(fromY, fromX, toY, toX int) bool {
if toY < 0 || toY >= 8 || toX < 0 || toX >= 8 {
return false
}
if b.grid[toY][toX]*b.turn > 0 {
return false
}
return true
}
// GenerateMoves generates all legal moves for the current player
func (b *Board) GenerateMoves() [][4]int {
moves := make([][4]int, 0)
for y, row := range b.grid {
for x, piece := range row {
if piece*b.turn > 0 {
if piece == Pawn*b.turn {
if b.IsValidMove(y, x, y+b.turn, x) {
moves = append(moves, [4]int{y, x, y + b.turn, x})
}
}
}
}
}
return moves
}
// ApplyMove applies a move to the board
func (b *Board) ApplyMove(move [4]int) {
fromY, fromX, toY, toX := move[0], move[1], move[2], move[3]
b.grid[toY][toX] = b.grid[fromY][fromX]
b.grid[fromY][fromX] = Empty
b.turn *= -1
}
// EvaluateBoard calculates a heuristic evaluation of the board
func (b *Board) EvaluateBoard() int {
score := 0
for _, row := range b.grid {
for _, piece := range row {
score += piece
}
}
return score
}
// Minimax with alpha-beta pruning
func Minimax(b *Board, depth int, alpha, beta int, maximizingPlayer bool) (int, [4]int) {
if depth == 0 {
return b.EvaluateBoard(), [4]int{}
}
var bestMove [4]int
moves := b.GenerateMoves()
if maximizingPlayer {
maxEval := MinInt
for _, move := range moves {
boardCopy := b.Copy()
boardCopy.ApplyMove(move)
eval, _ := Minimax(boardCopy, depth-1, alpha, beta, false)
if eval > maxEval {
maxEval = eval
bestMove = move
}
alpha = max(alpha, eval)
if beta <= alpha {
break
}
}
return maxEval, bestMove
} else {
minEval := MaxInt
for _, move := range moves {
boardCopy := b.Copy()
boardCopy.ApplyMove(move)
eval, _ := Minimax(boardCopy, depth-1, alpha, beta, true)
if eval < minEval {
minEval = eval
bestMove = move
}
beta = min(beta, eval)
if beta <= alpha {
break
}
}
return minEval, bestMove
}
}
// Utility functions
func max(a, b int) int {
if a > b {
return a
}
return b
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
// PlayGame runs a chess match between two AIs
func PlayGame() {
rand.Seed(time.Now().UnixNano())
board := &Board{}
board.Init()
for turn := 1; turn <= 100; turn++ {
fmt.Printf("\033[H\033[2J")
board.Display(turn)
_, bestMove := Minimax(board, 3, MinInt, MaxInt, board.turn == Player1)
board.ApplyMove(bestMove)
if len(board.GenerateMoves()) == 0 {
fmt.Println("Game Over")
break
}
}
}
func main() {
PlayGame()
}
ian@ian-Latitude-E7440:~$ ./chess99
a b c d e f g h
8 R N B Q K B N R 8
7 P P P P P P P P 7
6 . . . . . . . . 6
5 . . . . . . . . 5
4 . . . . . . . . 4
3 . . . . . . . . 3
2 p p p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 1: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . P P P P P P P 7
6 P . . . . . . . 6
5 . . . . . . . . 5
4 . . . . . . . . 4
3 . . . . . . . . 3
2 p p p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 2: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . P P P P P P P 7
6 P . . . . . . . 6
5 . . . . . . . . 5
4 . . . . . . . . 4
3 p . . . . . . . 3
2 . p p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 3: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . P P P P P P 7
6 P P . . . . . . 6
5 . . . . . . . . 5
4 . . . . . . . . 4
3 p . . . . . . . 3
2 . p p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 4: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . P P P P P P 7
6 P P . . . . . . 6
5 . . . . . . . . 5
4 p . . . . . . . 4
3 . . . . . . . . 3
2 . p p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 5: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . P P P P P 7
6 P P P . . . . . 6
5 . . . . . . . . 5
4 p . . . . . . . 4
3 . . . . . . . . 3
2 . p p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 6: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . P P P P P 7
6 P P P . . . . . 6
5 . . . . . . . . 5
4 p . . . . . . . 4
3 . p . . . . . . 3
2 . . p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 7: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . P P P P 7
6 P P P P . . . . 6
5 . . . . . . . . 5
4 p . . . . . . . 4
3 . p . . . . . . 3
2 . . p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 8: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . P P P P 7
6 P P P P . . . . 6
5 . . . . . . . . 5
4 p p . . . . . . 4
3 . . . . . . . . 3
2 . . p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 9: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . P P P 7
6 P P P P P . . . 6
5 . . . . . . . . 5
4 p p . . . . . . 4
3 . . . . . . . . 3
2 . . p p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 10: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . P P P 7
6 P P P P P . . . 6
5 . . . . . . . . 5
4 p p . . . . . . 4
3 . . p . . . . . 3
2 . . . p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 11: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . P P 7
6 P P P P P P . . 6
5 . . . . . . . . 5
4 p p . . . . . . 4
3 . . p . . . . . 3
2 . . . p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 12: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . P P 7
6 P P P P P P . . 6
5 . . . . . . . . 5
4 p p p . . . . . 4
3 . . . . . . . . 3
2 . . . p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 13: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . P 7
6 P P P P P P P . 6
5 . . . . . . . . 5
4 p p p . . . . . 4
3 . . . . . . . . 3
2 . . . p p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 14: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . P 7
6 P P P P P P P . 6
5 . . . . . . . . 5
4 p p p . . . . . 4
3 . . . p . . . . 3
2 . . . . p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 15: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P P P P P 6
5 . . . . . . . . 5
4 p p p . . . . . 4
3 . . . p . . . . 3
2 . . . . p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 16: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P P P P P 6
5 . . . . . . . . 5
4 p p p p . . . . 4
3 . . . . . . . . 3
2 . . . . p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 17: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P . P P P 6
5 . . . . P . . . 5
4 p p p p . . . . 4
3 . . . . . . . . 3
2 . . . . p p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 18: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P . P P P 6
5 . . . . P . . . 5
4 p p p p . . . . 4
3 . . . . p . . . 3
2 . . . . . p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 19: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P . . P P 6
5 . . . . P P . . 5
4 p p p p . . . . 4
3 . . . . p . . . 3
2 . . . . . p p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 20: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P . . P P 6
5 . . . . P P . . 5
4 p p p p . . . . 4
3 . . . . p p . . 3
2 . . . . . . p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 21: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P . . . P 6
5 . . . . P P P . 5
4 p p p p . . . . 4
3 . . . . p p . . 3
2 . . . . . . p p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 22: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P . . . P 6
5 . . . . P P P . 5
4 p p p p . . . . 4
3 . . . . p p p . 3
2 . . . . . . . p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 23: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P . . . . 6
5 . . . . P P P P 5
4 p p p p . . . . 4
3 . . . . p p p . 3
2 . . . . . . . p 2
1 r n b q k b n r 1
a b c d e f g h
Turn 24: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 P P P P . . . . 6
5 . . . . P P P P 5
4 p p p p . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 25: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . P P P . . . . 6
5 P . . . P P P P 5
4 p p p p . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 26: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . P P P . . . . 6
5 p . . . P P P P 5
4 . p p p . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 27: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . P P . . . . 6
5 p P . . P P P P 5
4 . p p p . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 28: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . P P . . . . 6
5 p p . . P P P P 5
4 . . p p . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 29: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . P . . . . 6
5 p p P . P P P P 5
4 . . p p . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 30: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . P . . . . 6
5 p p p . P P P P 5
4 . . . p . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 31: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p P P P P P 5
4 . . . p . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 32: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p p P P P P 5
4 . . . . . . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 33: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p p . P P P 5
4 . . . . P . . . 4
3 . . . . p p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 34: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p p . P P P 5
4 . . . . p . . . 4
3 . . . . . p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 35: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p p . . P P 5
4 . . . . p P . . 4
3 . . . . . p p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 36: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p p . . P P 5
4 . . . . p p . . 4
3 . . . . . . p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 37: Player 1 (White) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p p . . . P 5
4 . . . . p p P . 4
3 . . . . . . p p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 38: Player 2 (Black) to move
a b c d e f g h
8 R N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 39: Player 1 (White) to move
a b c d e f g h
8 . N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 p p p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 40: Player 2 (Black) to move
a b c d e f g h
8 . N B Q K B N R 8
7 . . . . . . . . 7
6 p . . . . . . . 6
5 . p p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 41: Player 1 (White) to move
a b c d e f g h
8 . N B Q K B N R 8
7 . . . . . . . . 7
6 p . . . . . . . 6
5 . p p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 42: Player 2 (Black) to move
a b c d e f g h
8 . N B Q K B N R 8
7 p . . . . . . . 7
6 . . . . . . . . 6
5 . p p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 43: Player 1 (White) to move
a b c d e f g h
8 . N B Q K B N R 8
7 p . . . . . . . 7
6 . . . . . . . . 6
5 . p p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 44: Player 2 (Black) to move
a b c d e f g h
8 p N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . p p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 45: Player 1 (White) to move
a b c d e f g h
8 . N B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . p p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 46: Player 2 (Black) to move
a b c d e f g h
8 . N B Q K B N R 8
7 . . . . . . . . 7
6 . p . . . . . . 6
5 . . p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 47: Player 1 (White) to move
a b c d e f g h
8 . N B Q K B N R 8
7 . . . . . . . . 7
6 . p . . . . . . 6
5 . . p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 48: Player 2 (Black) to move
a b c d e f g h
8 . N B Q K B N R 8
7 . p . . . . . . 7
6 . . . . . . . . 6
5 . . p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 49: Player 1 (White) to move
a b c d e f g h
8 . N B Q K B N R 8
7 . p . . . . . . 7
6 . . . . . . . . 6
5 . . p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 50: Player 2 (Black) to move
a b c d e f g h
8 . p B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 51: Player 1 (White) to move
a b c d e f g h
8 . p B Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . p p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 52: Player 2 (Black) to move
a b c d e f g h
8 . p B Q K B N R 8
7 . . . . . . . . 7
6 . . p . . . . . 6
5 . . . p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 53: Player 1 (White) to move
a b c d e f g h
8 . p B Q K B N R 8
7 . . . . . . . . 7
6 . . p . . . . . 6
5 . . . p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 54: Player 2 (Black) to move
a b c d e f g h
8 . p B Q K B N R 8
7 . . p . . . . . 7
6 . . . . . . . . 6
5 . . . p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 55: Player 1 (White) to move
a b c d e f g h
8 . p B Q K B N R 8
7 . . p . . . . . 7
6 . . . . . . . . 6
5 . . . p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 56: Player 2 (Black) to move
a b c d e f g h
8 . p p Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 57: Player 1 (White) to move
a b c d e f g h
8 . p p Q K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . p . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 58: Player 2 (Black) to move
a b c d e f g h
8 . p p Q K B N R 8
7 . . . . . . . . 7
6 . . . p . . . . 6
5 . . . . . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 59: Player 1 (White) to move
a b c d e f g h
8 . p p Q K B N R 8
7 . . . . . . . . 7
6 . . . p . . . . 6
5 . . . . . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 60: Player 2 (Black) to move
a b c d e f g h
8 . p p Q K B N R 8
7 . . . p . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 61: Player 1 (White) to move
a b c d e f g h
8 . p p Q K B N R 8
7 . . . p . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 62: Player 2 (Black) to move
a b c d e f g h
8 . p p p K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 63: Player 1 (White) to move
a b c d e f g h
8 . p p p K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . p p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 64: Player 2 (Black) to move
a b c d e f g h
8 . p p p K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . p . . P 5
4 . . . . . p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 65: Player 1 (White) to move
a b c d e f g h
8 . p p p K B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . p . . P 5
4 . . . . . p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 66: Player 2 (Black) to move
a b c d e f g h
8 . p p p K B N R 8
7 . . . . . . . . 7
6 . . . . p . . . 6
5 . . . . . . . P 5
4 . . . . . p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 67: Player 1 (White) to move
a b c d e f g h
8 . p p p K B N R 8
7 . . . . . . . . 7
6 . . . . p . . . 6
5 . . . . . . . P 5
4 . . . . . p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 68: Player 2 (Black) to move
a b c d e f g h
8 . p p p K B N R 8
7 . . . . p . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 69: Player 1 (White) to move
a b c d e f g h
8 . p p p K B N R 8
7 . . . . p . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 70: Player 2 (Black) to move
a b c d e f g h
8 . p p p p B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 71: Player 1 (White) to move
a b c d e f g h
8 . p p p p B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . p p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 72: Player 2 (Black) to move
a b c d e f g h
8 . p p p p B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . p . P 5
4 . . . . . . p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 73: Player 1 (White) to move
a b c d e f g h
8 . p p p p B N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . p . P 5
4 . . . . . . p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 74: Player 2 (Black) to move
a b c d e f g h
8 . p p p p B N R 8
7 . . . . . . . . 7
6 . . . . . p . . 6
5 . . . . . . . P 5
4 . . . . . . p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 75: Player 1 (White) to move
a b c d e f g h
8 . p p p p B N R 8
7 . . . . . . . . 7
6 . . . . . p . . 6
5 . . . . . . . P 5
4 . . . . . . p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 76: Player 2 (Black) to move
a b c d e f g h
8 . p p p p B N R 8
7 . . . . . p . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 77: Player 1 (White) to move
a b c d e f g h
8 . p p p p B N R 8
7 . . . . . p . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 78: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 79: Player 1 (White) to move
a b c d e f g h
8 . p p p p p N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . p . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 80: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . p P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 81: Player 1 (White) to move
a b c d e f g h
8 . p p p p p N R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . p P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 82: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p N R 8
7 . . . . . . . . 7
6 . . . . . . p . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 83: Player 1 (White) to move
a b c d e f g h
8 . p p p p p N R 8
7 . . . . . . . . 7
6 . . . . . . p . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 84: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p N R 8
7 . . . . . . p . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 85: Player 1 (White) to move
a b c d e f g h
8 . p p p p p N R 8
7 . . . . . . p . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 86: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 87: Player 1 (White) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 88: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 89: Player 1 (White) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 90: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 91: Player 1 (White) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 92: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 93: Player 1 (White) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 94: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 95: Player 1 (White) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 96: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 97: Player 1 (White) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 98: Player 2 (Black) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 99: Player 1 (White) to move
a b c d e f g h
8 . p p p p p p R 8
7 . . . . . . . . 7
6 . . . . . . . . 6
5 . . . . . . . P 5
4 . . . . . . . . 4
3 . . . . . . . p 3
2 . . . . . . . . 2
1 r n b q k b n r 1
a b c d e f g h
Turn 100: Player 2 (Black) to move
ian@ian-Latitude-E7440:~$