diff options
Diffstat (limited to 'server/server_game_process.h')
| -rw-r--r-- | server/server_game_process.h | 78 | 
1 files changed, 78 insertions, 0 deletions
| diff --git a/server/server_game_process.h b/server/server_game_process.h new file mode 100644 index 0000000..8891a56 --- /dev/null +++ b/server/server_game_process.h @@ -0,0 +1,78 @@ +#ifndef SERVER_GAME_PROCESS_H_SENTRY +#define SERVER_GAME_PROCESS_H_SENTRY + +#include "card_stack.h" +#include "server.h" +#include "card_queue.h" + +enum { +    start_deck_size = 6 +}; + +struct game_info { +    int players_number; +    int *card_quantity_arr; +    int shuffled_cards_left; +    const char* trump_card; +    int position_whose_turn; +    struct cards_on_table *cot; +    struct card_queue *cq; +}; + +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); +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); + +struct game_info* get_new_game_info(int players_number, int *card_quantity_arr, +                                    int shuffled_cards_left, +                                    const char *trump_card, +                                    int position_whose_turn, +                                    struct card_queue *cq, +                                    struct cards_on_table *cot); + +int is_card_bit(const char *attack_card, const char *defend_card, +                const char *trump_suit); + +int check_defender_can_defend(struct card_queue *cq, player_cards deck, +                              const char *trump_suit); + +void update_game_info(struct game_info *gi, int players_number, +                      int shuffled_cards_left, int position_whose_turn); + +int check_someone_can_toss_card(struct session **turn_queue, +                                int players_quantity, struct card_queue *cq, +                                struct cards_on_table *cot); + +int check_player_can_toss_card(player_cards deck, struct cards_on_table *cot); +int is_correct_tossing_card(const char *card, struct cards_on_table *cot); + +void put_all_cards_from_queue_to_table(struct cards_on_table *cot, +                                       struct card_queue *cq); + +void put_one_card_from_queue_to_table(struct cards_on_table *cot, +                                      struct card_queue *cq); + +void put_defender_card_on_table(struct cards_on_table *cot, const char *card); + +void move_all_cards_to_defender(struct cards_on_table *cot, player_cards *deck); +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 is_receiving_cards_limit(const struct cards_on_table *cot, +                             player_cards defense_deck, +                             const struct card_queue *cq); +#endif | 
