From 44b1eb1fd3792befe50900cc3d1f292340e0a5f9 Mon Sep 17 00:00:00 2001 From: Trevor Slocum Date: Sun, 19 Nov 2023 17:55:37 -0800 Subject: [PATCH] Fix calculating whether players may bear off --- board.go | 2 +- cmd/bgammon-server/server.go | 6 +++--- game.go | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/board.go b/board.go index 56c1a9f..fd0b708 100644 --- a/board.go +++ b/board.go @@ -86,7 +86,7 @@ func CanBearOff(board []int, player int, local bool) bool { homeStart, homeEnd = HomeRange(player) homeStart, homeEnd = minInt(homeStart, homeEnd), maxInt(homeStart, homeEnd) } - for i := 1; i < 24; i++ { + for i := 1; i <= 24; i++ { if (i < homeStart || i > homeEnd) && PlayerCheckers(board[i], player) > 0 { return false } diff --git a/cmd/bgammon-server/server.go b/cmd/bgammon-server/server.go index 3bf9527..e7f022d 100644 --- a/cmd/bgammon-server/server.go +++ b/cmd/bgammon-server/server.go @@ -1161,9 +1161,9 @@ COMMANDS: } clientGame.Turn = 1 - clientGame.Roll1 = 1 - clientGame.Roll2 = 2 - clientGame.Board = []int{12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -12, 0, 0} + clientGame.Roll1 = 5 + clientGame.Roll2 = 6 + clientGame.Board = []int{1, 3, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 2, -12, 0, 0} clientGame.eachClient(func(client *serverClient) { clientGame.sendBoard(client) diff --git a/game.go b/game.go index 79aef19..78e4245 100644 --- a/game.go +++ b/game.go @@ -278,7 +278,7 @@ ADDMOVES: return false, nil } - g.Board = gameCopy.Board + g.Board = append(g.Board[:0], gameCopy.Board...) g.Moves = gameCopy.Moves g.boardStates = gameCopy.boardStates