dkforest

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

commit 20342e8a024de88c6c3c974fa229ee5f19b73a93
parent 01e24e78b24b58d2305ec7411ca4a70f53362c9c
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 12 Jun 2023 13:31:36 -0700

simplify code

Diffstat:
Mpkg/web/handlers/interceptors/chess.go | 39+++++++++++++++++++++------------------
1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/pkg/web/handlers/interceptors/chess.go b/pkg/web/handlers/interceptors/chess.go @@ -485,6 +485,8 @@ func (b *Chess) SendMove(gameKey string, userID database.UserID, g *ChessGame, c return errors.New("not your turn") } + piecesCache := g.piecesCache + currentPlayer := g.Player1 opponentPlayer := g.Player2 if g.Game.Position().Turn() == chess.Black { @@ -537,14 +539,14 @@ func (b *Chess) SendMove(gameKey string, userID database.UserID, g *ChessGame, c _ = g.Game.MoveStr(moveStr) g.lastUpdated = time.Now() - idStr1 := g.piecesCache[mov.S1()] - idStr2 := g.piecesCache[mov.S2()] + idStr1 := piecesCache[mov.S1()] + idStr2 := piecesCache[mov.S2()] idStr3 := "" if mov.S1().Rank() == chess.Rank5 && mov.S2().Rank() == chess.Rank6 && mov.HasTag(chess.EnPassant) { - idStr3 = g.piecesCache[chess.NewSquare(mov.S2().File(), chess.Rank5)] + idStr3 = piecesCache[chess.NewSquare(mov.S2().File(), chess.Rank5)] } else if mov.S1().Rank() == chess.Rank4 && mov.S2().Rank() == chess.Rank3 && mov.HasTag(chess.EnPassant) { - idStr3 = g.piecesCache[chess.NewSquare(mov.S2().File(), chess.Rank4)] + idStr3 = piecesCache[chess.NewSquare(mov.S2().File(), chess.Rank4)] } g.updatePiecesCache(mov) @@ -603,27 +605,28 @@ const ( ) func (g *ChessGame) updatePiecesCache(mov chess.Move) { - idStr1 := g.piecesCache[mov.S1()] - delete(g.piecesCache, mov.S1()) - delete(g.piecesCache, mov.S2()) - g.piecesCache[mov.S2()] = idStr1 + piecesCache := g.piecesCache + idStr1 := piecesCache[mov.S1()] + delete(piecesCache, mov.S1()) + delete(piecesCache, mov.S2()) + piecesCache[mov.S2()] = idStr1 if mov.S1().Rank() == chess.Rank6 && mov.S2().Rank() == chess.Rank7 && mov.HasTag(chess.EnPassant) { - delete(g.piecesCache, chess.NewSquare(mov.S2().File(), chess.Rank6)) + delete(piecesCache, chess.NewSquare(mov.S2().File(), chess.Rank6)) } else if mov.S1().Rank() == chess.Rank5 && mov.S2().Rank() == chess.Rank4 && mov.HasTag(chess.EnPassant) { - delete(g.piecesCache, chess.NewSquare(mov.S2().File(), chess.Rank5)) + delete(piecesCache, chess.NewSquare(mov.S2().File(), chess.Rank5)) } if mov.S1() == chess.E1 && mov.HasTag(chess.KingSideCastle) { - delete(g.piecesCache, chess.H1) - g.piecesCache[chess.F1] = WhiteKingSideRookID + delete(piecesCache, chess.H1) + piecesCache[chess.F1] = WhiteKingSideRookID } else if mov.S1() == chess.E8 && mov.HasTag(chess.KingSideCastle) { - delete(g.piecesCache, chess.H8) - g.piecesCache[chess.F8] = BlackKingSideRookID + delete(piecesCache, chess.H8) + piecesCache[chess.F8] = BlackKingSideRookID } else if mov.S1() == chess.E1 && mov.HasTag(chess.QueenSideCastle) { - delete(g.piecesCache, chess.A1) - g.piecesCache[chess.D1] = WhiteQueenSideRookID + delete(piecesCache, chess.A1) + piecesCache[chess.D1] = WhiteQueenSideRookID } else if mov.S1() == chess.E8 && mov.HasTag(chess.QueenSideCastle) { - delete(g.piecesCache, chess.A8) - g.piecesCache[chess.D8] = BlackQueenSideRookID + delete(piecesCache, chess.A8) + piecesCache[chess.D8] = BlackQueenSideRookID } }