You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

81 lines
1.8 KiB

  1. /////////// Strutures à utiliser
  2. // Etat d'une case du jeu
  3. typedef enum
  4. {
  5. none,
  6. color1,
  7. color2,
  8. color3,
  9. color4,
  10. color5,
  11. color6
  12. } EPlayer;
  13. // Structure de représentation du jeu avec son plateau
  14. typedef struct
  15. {
  16. EPlayer board[121]; // Tableau contenants les zones où les pions peuvent se trouver
  17. } SGameState;
  18. // Structure de représentation d'un mouvement
  19. typedef struct
  20. {
  21. int startPos;
  22. int endPos;
  23. } SMove;
  24. /////////// Fonctions à utiliser
  25. // Les prototypes en commentaires sont à implémenter dans la librairie
  26. // Les types pointeur de fonction dans l'application
  27. /**
  28. * Initialiser la librairie
  29. * @param char name[50]
  30. * nom associé à la librairie
  31. */
  32. //void InitLibrary(char name[50]);
  33. typedef void (*pfInitLibrary)(char[50]);
  34. /**
  35. * Initialiser l'IA pour un match
  36. * @param const unsigned int nbPlayer
  37. * nombre de joueur
  38. * @param const player color
  39. * couleur du joueur
  40. */
  41. //void StartMatch(const unsigned int nbJoueur, const EPlayer couleur);
  42. typedef void (*pfStartMatch)(const unsigned int, const EPlayer);
  43. /**
  44. * Initialiser l'IA pour une manche (d'un match)
  45. */
  46. //void StartGame();
  47. typedef void (*pfStartGame)();
  48. /**
  49. * Fin d'une manche (d'un match)
  50. */
  51. //void EndGame();
  52. typedef void (*pfEndGame)();
  53. /**
  54. * Fin d'un match
  55. */
  56. //void EndMatch();
  57. typedef void (*pfEndMatch)();
  58. /**
  59. * Prise de décision de la part de l'IA
  60. * @param const SGameState * const gameState
  61. * l'état du jeu courant
  62. * @param SMove moves[4]
  63. * mouvement à effectuer par l'IA
  64. * @param int firstMove
  65. * vrai s'il s'agit du premier mouvement d'un tour
  66. * @return int
  67. * booleen : 0=plus de mouvement ; 1=prendre en compte le mouvement
  68. */
  69. //int NextMove(const SGameState * const gameState, int firstMove, SMove *move);
  70. typedef int (*pfNextMove)(const SGameState * const, int, SMove *);