From 9fbffc61f9cc987e9640d2a229fee1fa07310974 Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 14 Aug 2023 00:05:47 +0200 Subject: [PATCH] Add position to websocket message. --- api/move.go | 9 +++++---- chess/game.go | 4 ++-- chess/pgn.go | 2 +- chess/pgn_test.go | 2 +- chess/player.go | 3 ++- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/api/move.go b/api/move.go index be4b447..706809b 100644 --- a/api/move.go +++ b/api/move.go @@ -6,10 +6,11 @@ import ( ) type WebsocketMessage struct { - Type MessageType `json:"messageType"` - Move *types.Move `json:"move,omitempty"` - Color *types.ChessColor `json:"color,omitempty"` - Reason *string `json:"reason,omitempty"` + Type MessageType `json:"messageType"` + Move *types.Move `json:"move,omitempty"` + Color *types.ChessColor `json:"color,omitempty"` + Reason *string `json:"reason,omitempty"` + Position *string `json:"position,omitempty"` } type MessageType string diff --git a/chess/game.go b/chess/game.go index c05ba4e..9489dec 100644 --- a/chess/game.go +++ b/chess/game.go @@ -157,12 +157,12 @@ func (game Game) notifyPlayersAboutGameStart() error { } func (game Game) broadcastMove(move types.Move) error { - err := game.GetPlayer1().SendMove(move) + err := game.GetPlayer1().SendMoveAndPosition(move, game.board.PGN()) if err != nil { return err } - err = game.GetPlayer2().SendMove(move) + err = game.GetPlayer2().SendMoveAndPosition(move, game.board.PGN()) if err != nil { return err } diff --git a/chess/pgn.go b/chess/pgn.go index 846bfd2..dea381d 100644 --- a/chess/pgn.go +++ b/chess/pgn.go @@ -5,7 +5,7 @@ import ( "strings" ) -func (b *Board) pgn() string { +func (b *Board) PGN() string { var pgn string var shortName string diff --git a/chess/pgn_test.go b/chess/pgn_test.go index afde0e3..6563fb5 100644 --- a/chess/pgn_test.go +++ b/chess/pgn_test.go @@ -10,7 +10,7 @@ func Test_PGN_StartingPosition(t *testing.T) { board := newBoard() board.Init() - pgn := board.pgn() + pgn := board.PGN() assert.Equal(t, "RNBQKBNR/PPPPPPPP/--------/--------/--------/--------/pppppppp/rnbqkbnr", diff --git a/chess/player.go b/chess/player.go index 028fad4..f8434b9 100644 --- a/chess/player.go +++ b/chess/player.go @@ -36,10 +36,11 @@ func (p *Player) SetConnection(ctx context.Context, conn *websocket.Conn) { p.wsConnEstablished <- true } -func (p *Player) SendMove(move types.Move) error { +func (p *Player) SendMoveAndPosition(move types.Move, boardPosition string) error { messageToSend, err := json.Marshal(api.WebsocketMessage{ Type: api.MoveMessage, Move: &move, + Position: &boardPosition, }) if err != nil { log.Println("Error while marshalling: ", err)