Anton Shestakov <engored@ya.ru>, Sat, 08 Mar 2014 23:40:26 +0900
Test rps3:why/2 and rps5:why/2.
src/rps5.erl
Permissions: -rw-r--r--
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). -export([start_link/0, get_hands/0, winning_hand/1, why/2]). -include("rps_rules.hrl"). gen_server:start_link({local, ?MODULE}, ?MODULE, [], []). Text = "scissors cut paper covers rock crushes lizard poisons spock smashes scissors decapitate lizard eats paper disproves spock vaporizes rock crushes scissors", {ok, rps_rules:parse(Text)}. handle_call(get_hands, _From, State=#ruleinfo{hands=Hands}) -> handle_call({winning_hand, Hands}, _From, State) -> {reply, rps_rules:winning_hand(Hands, State), State}; handle_call({why, H1, H2}, _From, State=#ruleinfo{}) -> {reply, rps_rules:why(H1, H2, State), State}. handle_cast(_Msg, State) -> {noreply, State}. handle_info(_Msg, State) -> {noreply, State}. terminate(_Reason, _State) -> ok. code_change(_OldVersion, State, _Extra) -> {ok, State}. gen_server:call(?MODULE, get_hands). gen_server:call(?MODULE, {winning_hand, Hands}). gen_server:call(?MODULE, {why, H1, H2}).