dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 8239d675730168d19bcd7e1c8b38ee0a33cbc63b
parent ad33a2633bbcc70453611bede2bde55205c5583d
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Wed, 14 Jun 2023 22:06:36 -0700

replay moves

Diffstat:
Mpkg/web/handlers/interceptors/chess.go | 9+++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/pkg/web/handlers/interceptors/chess.go b/pkg/web/handlers/interceptors/chess.go @@ -80,7 +80,7 @@ func newChessGame(gameKey string, player1, player2 database.User, dbChessGame *d g.lastUpdated = time.Now() g.Player1 = newChessPlayer(player1) g.Player2 = newChessPlayer(player2) - initPiecesCache(g.piecesCache, g.Game.Position()) + initPiecesCache(g.piecesCache, g.Game.Moves()) return g } @@ -777,13 +777,18 @@ const ( BlackQueenSideRookID = "piece_a8" ) -func initPiecesCache(piecesCache map[chess.Square]string, pos *chess.Position) { +func initPiecesCache(piecesCache map[chess.Square]string, moves []*chess.Move) { + game := chess.NewGame() + pos := game.Position() for i := 0; i < 64; i++ { sq := chess.Square(i) if pos.Board().Piece(sq) != chess.NoPiece { piecesCache[sq] = "piece_" + sq.String() } } + for _, m := range moves { + updatePiecesCache(*m, piecesCache) + } } func updatePiecesCache(mov chess.Move, piecesCache map[chess.Square]string) {