From f61604a8946ea0f6f003f43c3628bd84381d057f Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 7 Mar 2024 22:26:16 +0100 Subject: wip --- tictactoe-2/apps/ttt_server/src/game.erl | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'tictactoe-2/apps/ttt_server/src/game.erl') diff --git a/tictactoe-2/apps/ttt_server/src/game.erl b/tictactoe-2/apps/ttt_server/src/game.erl index 608b5a8..36d3348 100644 --- a/tictactoe-2/apps/ttt_server/src/game.erl +++ b/tictactoe-2/apps/ttt_server/src/game.erl @@ -13,9 +13,12 @@ player1, player2}). -game_loop(Id, Player1) -> loop(#state{ - id = Id, - player1 = Player1}). +game_loop(Id, Player1) -> + State = #state{ + id = Id, + player1 = Player1}, + io:format("new game state: ~p~n", [State]), + loop(State). loop(State) -> Id = State#state.id, @@ -23,16 +26,27 @@ loop(State) -> {From, join} when not is_pid(State#state.player2) -> io:format("game ~p: player joined: ~p~n", [Id, From]), From ! {joined, State#state.id}, - loop(#state{player2 = From}); + loop(State#state{player2 = From}); {From, join} -> io:format("game ~p: busy: ~p~n", [Id, From]), From ! {busy}, loop(State); - {From, show} -> + {_From, show} -> Str = ttt:format(State#state.board), io:format("game ~p: current state:~n~s~n", [Id, Str]), - From ! Str, loop(State); + {From, status} -> + From ! {status, [ + {id, State#state.id}, + {board, State#state.board}, + {player1, State#state.player1}, + {player2, State#state.player2}]}, + loop(State); + {_From, stop} -> + io:format("game ~p: Stopping~n", [Id]), + State#state.player1 ! {game_stopped, Id}, + State#state.player2 ! {game_stopped, Id}, + ok; code_changed -> io:format("game ~p: code changed~n", [Id]), ?MODULE:loop(State); -- cgit v1.2.3