diff options
Diffstat (limited to 'tictactoe-2/apps/ttt_server/src/ttt_server.erl')
-rw-r--r-- | tictactoe-2/apps/ttt_server/src/ttt_server.erl | 18 |
1 files changed, 14 insertions, 4 deletions
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. |