From eb90648bdad1443c9cfc72e903a93642e10a0ab7 Mon Sep 17 00:00:00 2001 From: scratko Date: Fri, 16 Aug 2024 18:10:11 +0300 Subject: Global fixes v2.0 Added spectator mode. Added screen of game result. Added definition of durak. If not all players can replenish their decks, they take cards one at a time in turn. --- server/server_game_process.h | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'server/server_game_process.h') diff --git a/server/server_game_process.h b/server/server_game_process.h index 9338c25..f384fdc 100644 --- a/server/server_game_process.h +++ b/server/server_game_process.h @@ -23,16 +23,21 @@ const char** get_shuffled_deck(); void deal_first_cards(const char **shuffled_deck, int *cards_left, player_cards *deck); void deal_cards(const char **shuffled_deck, int *shuffled_cards_left, - struct session **turn_queue, int players_number, - int *card_quantity_arr); + struct session **turn_queue, int turn_queue_size, + int *number_arr); +void deal_one_card_in_turn(const char **shuffled_deck, int *shuffled_cards_left, + struct session **turn_queue, int turn_queue_size, + struct card_count cc); const char* extract_trump_card(const char **shuffled_deck, int *cards_left); #if 0 const char* find_trump_suit(const char **shuffled_deck, int *cards_left); #endif int find_lowest_trump(player_cards deck, const char *trump); -void shift_turn_queue_by_one(struct session **turn_queue, int size); -void move_turn_queue_two_players_ahead(struct session **turn_queue, int size); -void update_card_quantity_arr(struct server *serv); +void shift_turn_queue_by_one(struct session **turn_queue, int turn_queue_size); +void move_turn_queue_two_players_ahead(struct session **turn_queue, + int turn_queue_size); +void update_card_quantity_arr(struct session **turn_queue, + struct card_count cc); struct game_info* get_new_game_info(int players_number, int *card_quantity_arr, int shuffled_cards_left, @@ -71,10 +76,15 @@ void remove_cards_from_table(struct cards_on_table *cot); int calculate_defense_card_quantity_on_table(const struct cards_on_table *cot); int calculate_attack_card_quantity_on_table(const struct cards_on_table *cot); int check_all_answers_were_received(const struct session **turn_queue, - int size); + int turn_queue_size); int is_receiving_cards_limit(const struct cards_on_table *cot, player_cards defense_deck, const struct card_queue *cq); void clear_defense_lost_status(struct session *defender); +int check_everyone_can_replanish_deck(int shuffled_cards_left, + struct session **turn_queue, + int turn_queue_size, int *number_arr); +void find_out_who_dropped_all_cards(struct session **turn_queue, + int turn_queue_size, int *number_arr); #endif -- cgit v1.2.3