aboutsummaryrefslogtreecommitdiff
path: root/tictactoe-2/apps/ttt_server/src
diff options
context:
space:
mode:
Diffstat (limited to 'tictactoe-2/apps/ttt_server/src')
-rw-r--r--tictactoe-2/apps/ttt_server/src/game.erl2
-rw-r--r--tictactoe-2/apps/ttt_server/src/ttt_server.erl18
2 files changed, 15 insertions, 5 deletions
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.