aboutsummaryrefslogtreecommitdiff
path: root/learn-you-some-erlang/curling_scoreboard.erl
diff options
context:
space:
mode:
Diffstat (limited to 'learn-you-some-erlang/curling_scoreboard.erl')
-rw-r--r--learn-you-some-erlang/curling_scoreboard.erl32
1 files changed, 32 insertions, 0 deletions
diff --git a/learn-you-some-erlang/curling_scoreboard.erl b/learn-you-some-erlang/curling_scoreboard.erl
new file mode 100644
index 0000000..34ff48d
--- /dev/null
+++ b/learn-you-some-erlang/curling_scoreboard.erl
@@ -0,0 +1,32 @@
+-module(curling_scoreboard).
+-behaviour(gen_event).
+
+-export([init/1, handle_event/2, handle_call/2, handle_info/2, code_change/3,
+ terminate/2]).
+
+init([]) ->
+ {ok, []}.
+
+handle_event({set_teams, TeamA, TeamB}, State) ->
+ curling_scoreboard_hw:set_teams(TeamA, TeamB),
+ {ok, State};
+handle_event({add_points, Team, N}, State) ->
+ [curling_scoreboard_hw:add_point(Team) || _ <- lists:seq(1,N)],
+ {ok, State};
+handle_event(next_round, State) ->
+ curling_scoreboard_hw:next_round(),
+ {ok, State};
+handle_event(_, State) ->
+ {ok, State}.
+
+handle_call(_, State) ->
+ {ok, ok, State}.
+
+handle_info(_, State) ->
+ {ok, State}.
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+terminate(_Reason, _State) ->
+ ok.