chess game coded in go programming language with two machine players

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:~$


要查看或添加评论,请登录

Ian Martin Ajzenszmidt的更多文章

社区洞察

其他会员也浏览了