From 911547d0e4e3838fa71cc3f71e5f472114e01431 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 7 Mar 2024 22:14:10 +0100 Subject: wip --- tictactoe-2/apps/ttt_server/src/game.erl | 2 +- tictactoe-2/apps/ttt_server/src/ttt_server.erl | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'tictactoe-2/apps/ttt_server') diff --git a/tictactoe-2/apps/ttt_server/src/game.erl b/tictactoe-2/apps/ttt_server/src/game.erl index 1b8aff2..608b5a8 100644 --- a/tictactoe-2/apps/ttt_server/src/game.erl +++ b/tictactoe-2/apps/ttt_server/src/game.erl @@ -30,7 +30,7 @@ loop(State) -> loop(State); {From, show} -> Str = ttt:format(State#state.board), - io:format("game ~p: current state:~n~p~n", [Id, Str]), + io:format("game ~p: current state:~n~s~n", [Id, Str]), From ! Str, loop(State); code_changed -> diff --git a/tictactoe-2/apps/ttt_server/src/ttt_server.erl b/tictactoe-2/apps/ttt_server/src/ttt_server.erl index a0de947..52a7957 100644 --- a/tictactoe-2/apps/ttt_server/src/ttt_server.erl +++ b/tictactoe-2/apps/ttt_server/src/ttt_server.erl @@ -36,8 +36,8 @@ loop(State) -> loop(#ttt_state{ seq = Id + 1, games = orddict:append(Id, Game, State#ttt_state.games)}); - {Player, show, Ref} -> - case orddict:find(Ref, State#ttt_state.games) of + {Player, show, Id} -> + case orddict:find(Id, State#ttt_state.games) of error -> Player ! no_such_game; {ok, [Game]} -> @@ -45,6 +45,14 @@ loop(State) -> Game#ttt_game.pid ! {Player, show} end, loop(State); + {Player, join, Id} -> + case orddict:find(Id, State#ttt_state.games) of + error -> + Player ! no_such_game; + {ok, [Game]} -> + Game#ttt_game.pid ! {Player, join} + end, + loop(State); dump -> io:format("Server state:~n~p~n", [State]), loop(State); @@ -78,7 +86,7 @@ start_game(Server) -> X after 100 -> io:format("timeout~n", []), - {timeout} + timeout end. dump(Server) -> @@ -103,6 +111,8 @@ stop(Server, Pid) -> stop() -> case global:whereis_name(?GLOBAL_NAME) of - undefined -> io:format("Server not running~n"); + undefined -> + io:format("Server not running~n"), + not_running; Pid -> Pid ! {stop, self()} end. -- cgit v1.2.3