game.h 848 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <string.h>
  4. #define NUMBER_OF_PLAYERS 4
  5. #define NUMBER_OF_CARDS 108
  6. #define MAX_HAND_SIZE 30
  7. #define NUMBER_OF_STARTING_CARDS 7
  8. #define PLAYER_NUMBER 1
  9. typedef struct List List;
  10. typedef enum ActionType
  11. {
  12. ActionType_None,
  13. ActionType_Skip,
  14. ActionType_Invert,
  15. ActionType_Plus2,
  16. ActionType_ChangeSuit,
  17. ActionType_ChangeSuitPlus4,
  18. } ActionType;
  19. typedef enum CardSuit
  20. {
  21. CardSuit_None,
  22. CardSuit_Spades,
  23. CardSuit_Hearts,
  24. CardSuit_Diamonds,
  25. CardSuit_Clubs,
  26. } CardSuit;
  27. typedef struct Card
  28. {
  29. CardSuit suit;
  30. int number;
  31. ActionType action;
  32. } Card;
  33. extern Card AllCardsData[NUMBER_OF_CARDS];
  34. extern const int CARD_NONE;
  35. typedef struct LevelState LevelState;
  36. LevelState* game_alloc();
  37. void game_free(LevelState* state);
  38. void game_reset(LevelState* state);