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)
|
get_game_state(state, game_id, pid_to_inform)
|
||||||
|
|
||||||
{:make_move, game_id, move, 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
|
end
|
||||||
|
|
||||||
@ -155,10 +155,12 @@ defmodule Server do
|
|||||||
|
|
||||||
def try_to_play(state, game_id, move, pid_to_inform) do
|
def try_to_play(state, game_id, move, pid_to_inform) do
|
||||||
name = state.name
|
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
|
do
|
||||||
{:decision, {: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})
|
state = apply_game(state, {:make_move, game_id, name, move, new_hand})
|
||||||
|
|
||||||
if is_finished(state, game_id) do
|
if is_finished(state, game_id) do
|
||||||
{_, score} = state.games[game_id]
|
{_, score} = state.games[game_id]
|
||||||
@ -170,8 +172,8 @@ defmodule Server do
|
|||||||
|
|
||||||
set_modifed(state, game_id)
|
set_modifed(state, game_id)
|
||||||
|
|
||||||
{:decision, {: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})
|
state = apply_game(state, {:make_move, game_id, new_name, new_move, new_new_hand})
|
||||||
|
|
||||||
if is_finished(state, game_id) do
|
if is_finished(state, game_id) do
|
||||||
{_, score} = state.games[game_id]
|
{_, score} = state.games[game_id]
|
||||||
@ -258,8 +260,28 @@ defmodule Server do
|
|||||||
# Apply Game States
|
# Apply Game States
|
||||||
#
|
#
|
||||||
|
|
||||||
def apply_game(state, {:make_move, game_id, new_name, new_move}) do
|
def simplify_game_state(game_state) do
|
||||||
raise :todo
|
# 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
|
end
|
||||||
|
|
||||||
def apply_game(state, {:start_game, game_id, participants, new_game_state, hand}) do
|
def apply_game(state, {:start_game, game_id, participants, new_game_state, hand}) do
|
||||||
|
Reference in New Issue
Block a user