Browse Source

fix robots, tasks for week 3

Maxim Sokhatsky 11 years ago
parent
commit
c6653b0149

+ 7 - 4
apps/face/priv/static/doc/plans/april2014.htm

@@ -15,17 +15,20 @@
 
 <h2>1. Bootstrap <a href="https://github.com/kakaranet/games">kakaranet/games</a></h2>
 <h2>2. Make Debug Playable Okey in browser</h2>
-        <h3><p><font color=red>1. Adopt <a href="https://github.com/synrc/kvs">KVS</a> database</font></p></h3>
+        <h3><p>1. Adopt <a href="https://github.com/synrc/kvs">KVS</a> database</p></h3>
         <h3><p>2. Write JavaScript Library</p></h3>
         <h3><p>3. Create <b>n2o_game</b> Endpoint for Game</p></h3>
         <h3><p>4. Remove jQuery from <a href="https://github.com/5HT/n2o">N2O</a></p></h3>
         <h3><p><font color=red>5. Facebook Login with <a href="https://github.com/synrc/avz">AVZ</a></font></p></h3>
 <h2>3. Publish our new Server for JavaScript team</h2>
-        <h3><p><font color=red>1. New SSL Certificates</font></p></h3>
-        <h3><p><font color=red>2. SPDY deploy</font></p></h3>
+        <h3><p>1. New SSL Certificates</p></h3>
+        <h3><p>2. SPDY deploy and WobSockets over SSL</p></h3>
+        <h3><p><font color=red>3. Test new db_accounts/transctions by playing standalone games</font></p></h3>
+        <h3><p><font color=red>4. Fix get_player_info lost message</font></p></h3>
+        <h3><p><font color=red>5. Implement and Test FULL OKEY protocol</font></p></h3>
+        <h3><p><font color=red>6. Test tournaments</font></p></h3>
 <h2>4. Interconnect JavaScript Events to N2O Events</h2>
               1. Depending on the JavaScript team Thin or Thick client
-
           No need to design, just design new controls for Kakaranet Application
 
 <h2>5. Crate Game (SVG Control)</h2>

+ 1 - 1
apps/server/src/gas.erl

@@ -1,7 +1,7 @@
 -module(gas).
 -compile(export_all).
 
--define(ALLOWED, [nsg_trn_lucky,game_session,game_manager,game_okey_ng_table_trn]).
+-define(ALLOWED, [nsg_trn_lucky,game_session,game_manager,game_okey_ng_table_trn,game_okey_bot]).
 
 info(Module,String, Args) ->
     case lists:member(Module,?ALLOWED) of

+ 17 - 17
apps/server/src/okey/game_okey_bot.erl

@@ -163,31 +163,31 @@ okey_client_loop(State) ->
     Hand0 = State#state.hand,
     Id = State#state.uid,
     receive
-        #game_event{event = <<"okey_next_turn">>, args = Args} = Msg ->
+        #game_event{event = okey_next_turn, args = Args} = Msg ->
             gas:info(?MODULE,"OKEY_BOT <~p> : Received message: ~p", [Id, Msg]),
             Hand1 = case {proplists:get_value(player, Args), proplists:get_value(can_challenge, Args)} of
                         {Id, false} ->
-                            gas:info(?MODULE,"OKEY NEXT TURN"),
+                            gas:info(?MODULE,"OKEY NEXT TURN",[]),
                             do_turn(State, Hand0);
                         {_OtherId, _Val} ->
                             Hand0
                     end,
             okey_client_loop(State#state{hand = Hand1});
-        #game_event{event = <<"okey_revealed">>} = Msg ->
+        #game_event{event = okey_revealed} = Msg ->
             gas:info(?MODULE,"OKEY_BOT <~p> : Received message: ~p", [Id, Msg]),
             do_challenge(State),
             okey_client_loop(State);
-        #game_event{event = <<"okey_series_ended">>} = Msg ->
+        #game_event{event = okey_series_ended} = Msg ->
             gas:info(?MODULE,"OKEY_BOT <~p> : Received message: ~p", [Id, Msg]),
 %%            S = State#state.conn,
 %%            call_rpc(S, #logout{});
             okey_client_loop(State);
-        #game_event{event = <<"okey_round_ended">>, args = Args} = Msg ->
+        #game_event{event = okey_round_ended, args = Args} = Msg ->
             gas:info(?MODULE,"OKEY_BOT <~p> : Received message: ~p", [Id, Msg]),
             NextAction = proplists:get_value(next_action, Args),
             gas:info(?MODULE,"ID: ~p round ended", [Id]),
             okey_client_round(NextAction, State);
-        #game_event{event = <<"okey_game_info">>, args = Args} = Msg ->
+        #game_event{event = okey_game_info, args = Args} = Msg ->
             gas:info(?MODULE,"OKEY_BOT <~p> : Received message: ~p", [Id, Msg]),
             Mode = proplists:get_value(game_type, Args),
             SM = proplists:get_value(sets, Args),
@@ -199,10 +199,10 @@ okey_client_loop(State) ->
             Delay = get_delay(fast),
             ST = #'OkeySetState'{round_cur = 1, round_max = RM, set_cur = SC, set_max = SM},
             okey_client_loop(State#state{set_state = ST, delay = Delay, mode = Mode});
-        #game_event{event = <<"okey_disable_okey">>, args = Args} = Msg ->
+        #game_event{event = okey_disable_okey, args = Args} = Msg ->
             gas:info(?MODULE,"OKEY_BOT <~p> : Received message: ~p", [Id, Msg]),
             okey_client_loop(State#state{okey_disable = true});
-        #game_event{event = <<"okey_game_started">>, args = Args} = Msg ->
+        #game_event{event = okey_game_started, args = Args} = Msg ->
             gas:info(?MODULE,"OKEY_BOT <~p> : Received message: ~p", [Id, Msg]),
             MH = proplists:get_value(tiles, Args),
             G = proplists:get_value(gosterge, Args),
@@ -212,7 +212,7 @@ okey_client_loop(State) ->
 %            State#state{hand = MH, gosterge = G, set_state = ST1},
             gas:info(?MODULE,"OKEY BOT GAME STARTED : ~p",[length(MH)]),
             okey_client_loop(State#state{hand = MH, gosterge = G, set_state = ST1});
-        #game_event{event = <<"okey_game_player_state">>, args = Args} = Msg ->
+        #game_event{event = okey_game_player_state, args = Args} = Msg ->
             gas:info(?MODULE,"OKEY_BOT <~p> : Received message: ~p", [Id, Msg]),
             SS = #'OkeySetState'{round_cur = 1, round_max = 3,
                             set_cur = 1,set_max = 1},
@@ -230,24 +230,24 @@ okey_client_loop(State) ->
 
 
             case {Turn, GameState} of
-                {Id, <<"do_okey_take">>} ->
+                {Id, do_okey_take} ->
                     gas:info(?MODULE,"init bot: take", []),
                     Hand1 = do_turn(State, Hand0),
                     okey_client_loop(State#state{hand = Hand1, gosterge = Gosterge});
-                {Id, <<"do_okey_discard">>} ->
+                {Id, do_okey_discard} ->
                     gas:info(?MODULE,"init bot: discard", []),
                     {TryDiscard, _} = draw_random(Hand0),
                     Hand1 = do_discard(State, Hand0, TryDiscard),
                     okey_client_loop(State#state{hand = Hand1, gosterge = Gosterge});
-                {_, <<"game_finished">>} ->
+                {_, game_finished} ->
                     gas:info(?MODULE,"init bot: finished", []),
                      okey_client_rematch(State),
                     okey_client_loop(State);
-                {_, <<"do_okey_ready">>} ->
+                {_, do_okey_ready} ->
                     gas:info(?MODULE,"init bot: ready", []),
                     say_ready(State),
                     okey_client_round(<<"done">>, State);
-                {_, <<"do_okey_challenge">>} ->
+                {_, do_okey_challenge} ->
                     gas:info(?MODULE,"init bot: challenge", []),
                     do_challenge(State),
                     okey_client_loop(State#state{hand = Hand0, gosterge = Gosterge});
@@ -342,7 +342,7 @@ time_to_sleep(discard, Delay) ->
 simulate_delay(Action, Delay) ->
     TheDelay = time_to_sleep(Action, Delay),
     receive
-        #game_paused{action = <<"pause">>} ->
+        #game_paused{action = pause} ->
             wait_for_resume()
     after TheDelay ->
             ok
@@ -350,7 +350,7 @@ simulate_delay(Action, Delay) ->
 
 wait_for_resume() ->
     receive
-        #game_paused{action = <<"resume">>} ->
+        #game_paused{action = resume} ->
             ok
     end.
 
@@ -400,7 +400,7 @@ random_bool(Prob) ->
     Point = crypto:rand_uniform(0, 1000),
     Prob*1000 > Point.
 
-get_delay(fast) -> {ok, Val}   = kvs:get(config,"games/okey/robot_delay_fast", 6000), Val;
+get_delay(fast) -> {ok, Val}   = kvs:get(config,"games/okey/robot_delay_fast", 1000), Val;
 get_delay(normal) -> {ok, Val} = kvs:get(config,"games/okey/robot_delay_normal", 9000), Val;
 get_delay(slow) -> {ok, Val}   = kvs:get(config,"games/okey/robot_delay_slow", 15000), Val.