more worke on the server
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
3d835aad6c
commit
25c0503504
@ -117,7 +117,7 @@ defmodule Server do
|
||||
get_game_state(state, game_id, pid_to_inform)
|
||||
|
||||
{:make_move, game_id, move, pid_to_inform} ->
|
||||
state = try_to_play_checks(state, game_id, move, pid_to_inform)
|
||||
try_to_play_checks(state, game_id, move, pid_to_inform)
|
||||
|
||||
end
|
||||
|
||||
@ -155,10 +155,12 @@ defmodule Server do
|
||||
|
||||
def try_to_play(state, game_id, move, pid_to_inform) do
|
||||
name = state.name
|
||||
try_propose {:make_move, game_id, name, move}
|
||||
# TODO create new hand
|
||||
new_hand = 2
|
||||
try_propose {:make_move, game_id, name, move, new_hand}
|
||||
do
|
||||
{:decision, {:make_move, ^game_id, ^name, ^move}} ->
|
||||
state = apply_game(state, {:make_move, game_id, name, move})
|
||||
{:decision, {:make_move, ^game_id, ^name, ^move, ^new_hand}} ->
|
||||
state = apply_game(state, {:make_move, game_id, name, move, new_hand})
|
||||
|
||||
if is_finished(state, game_id) do
|
||||
{_, score} = state.games[game_id]
|
||||
@ -170,8 +172,8 @@ defmodule Server do
|
||||
|
||||
set_modifed(state, game_id)
|
||||
|
||||
{:decision, {:make_move, ^game_id, new_name, new_move}} ->
|
||||
state = apply_game(state, {:make_move, game_id, new_name, new_move})
|
||||
{:decision, {:make_move, ^game_id, new_name, new_move, new_new_hand}} ->
|
||||
state = apply_game(state, {:make_move, game_id, new_name, new_move, new_new_hand})
|
||||
|
||||
if is_finished(state, game_id) do
|
||||
{_, score} = state.games[game_id]
|
||||
@ -258,8 +260,28 @@ defmodule Server do
|
||||
# Apply Game States
|
||||
#
|
||||
|
||||
def apply_game(state, {:make_move, game_id, new_name, new_move}) do
|
||||
raise :todo
|
||||
def simplify_game_state(game_state) do
|
||||
# TODO actualy do this
|
||||
game_state
|
||||
end
|
||||
|
||||
def apply_game(state, {:make_move, game_id, player_name, pos_move, new_hand}) do
|
||||
game = state.games[game_id]
|
||||
case game do
|
||||
{:finished, _} ->
|
||||
raise :game_already_finished
|
||||
:not_playing_in_game ->
|
||||
%{state | instance: state.instance + 1 }
|
||||
game ->
|
||||
game_state = game.game_state
|
||||
{b, e} = Enum.split(game_state, pos_move)
|
||||
game_state = b ++ [ game.hand[player_name] ] ++ e
|
||||
game_state = simplefy_game_state(game_state)
|
||||
hand = Map.put(game.hand, player_name, new_hand)
|
||||
game = %{game| hand: hand, game_state: game_state }
|
||||
# TODO decide if it's ending state
|
||||
%{state| games: Map.put(state.games, game_id, game)}
|
||||
end
|
||||
end
|
||||
|
||||
def apply_game(state, {:start_game, game_id, participants, new_game_state, hand}) do
|
||||
|
Reference in New Issue
Block a user