aboutsummaryrefslogtreecommitdiff
path: root/tictactoe-2/apps/ttt_server/src/ttt_server.erl
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2024-03-07 22:14:10 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2024-03-07 22:14:10 +0100
commit911547d0e4e3838fa71cc3f71e5f472114e01431 (patch)
treeb62cee7709fe159a6765378748c7ef28514178fb /tictactoe-2/apps/ttt_server/src/ttt_server.erl
parentd6b2edd8cef2a3ab1bb9488fe7e82920a1333af1 (diff)
downloaderlang-workshop-911547d0e4e3838fa71cc3f71e5f472114e01431.tar.gz
erlang-workshop-911547d0e4e3838fa71cc3f71e5f472114e01431.tar.bz2
erlang-workshop-911547d0e4e3838fa71cc3f71e5f472114e01431.tar.xz
erlang-workshop-911547d0e4e3838fa71cc3f71e5f472114e01431.zip
wip
Diffstat (limited to 'tictactoe-2/apps/ttt_server/src/ttt_server.erl')
-rw-r--r--tictactoe-2/apps/ttt_server/src/ttt_server.erl18
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.