Advertisement
Guest User

prog

a guest
Dec 6th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.64 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "board.h"
  4.  
  5.  
  6. void affiche_regle()
  7. {
  8. printf("\n\n");
  9. printf("Voici les rêgles\n\n");
  10. printf("Chaque joueur dispose au début de six pièces de jeu dans sa maison.\n\n");
  11. printf(" Les pièces peuvent être de trois tailles : petite, moyenne ou grosse, et chaque joueur possède deux pièces de chaque taille.\n\n ");
  12. printf("Le propriétaire de chaque pièce du jeu est facilement identifiable (par la couleur ou la forme de la pièce).\n\n");
  13. printf("Les joueurs exécutent chacun leur tour une action parmi les deux actions suivantes : \n\n");
  14. printf(" — un joueur peut placer une pièce de sa maison sur une case du plateau \n\n");
  15. printf(" — un joueur peut déplacer une pièce présente sur le plateau (et visible) vers une autre case du plateau. \n\n");
  16. printf("Pour placer (ou déplacer) une pièce sur le plateau, il est nécessaire que la case d’arrivée soit libre ou ne contienne que des pièces plus petites que la pièce placée.\n\n");
  17. printf("Dans le cas où une pièce est posée sur une case occupée, celle-ci couvre alors les pièces déjà présentes, les rendant invisibles. On peut donc couvrir une petite pièce avec une pièce moyenne ou une \n\n");
  18. printf("Un joueur remporte la partie lorsqu’il parvient à ce que toutes les pièces visibles d’une ligne, d’une colonne ou d’une diagonale lui appartiennent.\n\n");
  19. }
  20.  
  21.  
  22.  
  23.  
  24. int condition_ajout_piece(board game, int line, int column,size piece_size, player current_player){
  25. int result=0;
  26.  
  27. if(piece_size > get_piece_size(game,line,column )){
  28. result=1;
  29. }else{
  30. if(get_nb_piece_in_house(game,current_player,piece_size) == 0){
  31. printf("\n vous n'avez plus de pièce de taille %d", piece_size);
  32. }else{
  33. printf("\033[1;31m");
  34. printf("\n\nUne pièce de même taille où de taille supérieur se trouve déjà sur cette case\n\n");
  35. printf("\033[0m");
  36. }
  37. }
  38.  
  39. return result;
  40. }
  41.  
  42. void affichage_joueur(player current_player){ // Affiche le nom du joueur qui doit jouer
  43.  
  44. if(current_player == 1){
  45. printf("\n\n");
  46. printf("\033[1;31m");
  47. printf("Au tour du joueur Numéro %d !\n\n", current_player);
  48. printf("\033[0m"); // Reset to default color
  49. }
  50.  
  51. if(current_player == 2){
  52. printf("\n\n");
  53. printf("\033[1;34m");
  54. printf("Au tour du joueur Numéro %d !\n\n", current_player);
  55. printf("\033[0m"); // Reset to default color
  56. }
  57. }
  58.  
  59.  
  60. int menu() // Affiche le menu
  61. {
  62. int choix=0, num=1;
  63.  
  64.  
  65. printf("\033[1;31m");
  66. printf("Bienvenue dans le jeu Goblet gobblers !\n\n");
  67. printf("\033[0m"); // Reset to default color
  68. printf("Que voulez vous faire ?\n\n");
  69. printf("1 - Afficher les règles ?\n\n");
  70. printf("2 - Jouer ?\n\n");
  71. printf("3 - Quitter ?\n\n");
  72. scanf("%d",&num);
  73.  
  74. switch(num)
  75. {
  76. case 1:
  77. printf("\033[1;31m");
  78. printf("vous avez choisi d'afficher les règles");
  79. printf("\033[0m"); // Reset to default color
  80. affiche_regle();
  81. choix=1;
  82. break;
  83. case 2:
  84. printf("\033[1;31m");
  85. printf("vous avez décidé de jouer");
  86. printf("\033[0m"); // Reset to default color
  87. choix=2;
  88. break;
  89. case 3:
  90. printf("\033[1;31m");
  91. printf("vous venez de quitter le jeu\n\n");
  92. printf("\033[0m"); // Reset to default color
  93. choix=3;
  94. break;
  95. default:
  96. printf("Le choix n'est pas correct !");
  97. }
  98. return choix;
  99. }
  100.  
  101.  
  102. void affiche_maison(board game, player current_player)
  103. {
  104.  
  105. int size=0;
  106. for(size=1;size<4;size++){
  107. if(get_nb_piece_in_house(game, current_player,size) == 2) printf("\033[1;32m");
  108. if(get_nb_piece_in_house(game, current_player,size) == 1) printf("\033[0;33m");
  109. if(get_nb_piece_in_house(game, current_player,size) == 0) printf("\033[1;31m");
  110. printf("Il vous reste %d pièce de taille %d\n",get_nb_piece_in_house(game, current_player,size), size);
  111. printf("\033[0m");
  112. }
  113. printf("\n");
  114. }
  115.  
  116. void affiche_tab(board game) // Affiche la grille de jeu
  117. {
  118.  
  119. printf("\n\n\n");
  120. for(int i=0;i<3;i++){
  121. printf("\n");
  122. if(i == 0)printf("┌─┬─┬─┐\n");
  123. else(printf("├─┼─┼─┤\n"));
  124. printf("│");
  125. for(int j=0;j<3;j++){
  126. if(get_place_holder(game,i,j) == 1){
  127. printf("\033[1;31m");
  128. }
  129. if(get_place_holder(game,i,j) == 2){
  130. printf("\033[1;34m");
  131.  
  132. }
  133. printf("%d",get_piece_size(game,i,j));
  134. printf("\033[0m");
  135. printf("│");
  136. }
  137. }
  138. printf("\n└─┴─┴─┘\n");
  139. }
  140.  
  141.  
  142. int main(int args, char **argv)
  143. {
  144. system("clear");
  145. player current_player=1;
  146. int choix, result;
  147. int mouvement;
  148. size piece_size;
  149. int line, column, source_line, source_column;
  150.  
  151. board game = new_game();
  152.  
  153. choix = menu();
  154.  
  155. while(choix == 1){
  156. choix = menu();
  157. }
  158. if(choix == 3){
  159. return 0;
  160. }
  161.  
  162. printf("\n\n\n");
  163. printf("\033[1;31m");
  164. printf("Début de la partie !\n\n");
  165. printf("\033[0m"); // Reset to default color
  166.  
  167. affiche_tab(game);
  168.  
  169.  
  170. while(get_winner(game) == 0){
  171. affichage_joueur(current_player);
  172. affiche_maison(game, current_player);
  173.  
  174. printf("Que voulez vous faire ?\n\n");
  175. printf("Ajouter une pièce [1]\n\n");
  176. printf("Déplacer une pièce [2]\n\n");
  177.  
  178.  
  179. scanf("%d",&mouvement);
  180.  
  181. if(mouvement == 1){
  182. do{
  183. printf("sur quelles lignes voulez vous jouer [1-2-3]");
  184. scanf("%d",&line);
  185. line=line-1;
  186. printf("sur quelles colonnes voulez vous jouer [1-2-3]");
  187. scanf("%d",&column);
  188. column = column-1;
  189. printf("quelle taille ? [1 : SMALL -2 : MEDIUM -3 : LARGE\n");
  190. scanf("%u",&piece_size);
  191. result = condition_ajout_piece(game, line, column, piece_size, current_player);
  192. }while(result != 1);
  193. place_piece(game, current_player, piece_size, line, column);
  194. result=0;
  195.  
  196.  
  197. }
  198. if(mouvement == 2){
  199. do{
  200. printf("sur quelles lignes se trouve votre pièce ? [1-2-3]");
  201. scanf("%d",&source_line);
  202. source_line = source_line-1;
  203. printf("sur quelles colonnes voulez se trouve votre pièce ? [1-2-3]");
  204. scanf("%d",&source_column);
  205. source_column = source_column-1;
  206. }while(get_place_holder(game,source_line, source_column) != current_player);
  207. do{
  208. printf("sur quelles lignes vous voulez mettre votre pièce ? [1-2-3]");
  209. scanf("%d",&line);
  210. line=line-1;
  211. printf("sur quelles colonnes vous voulez mettre votre pièce ? [1-2-3]");
  212. scanf("%d",&column);
  213. column = column-1;
  214. }while(get_place_holder(game,line, column) == 0);
  215. }
  216.  
  217. move_piece(game ,source_line, source_column, line, column);
  218.  
  219.  
  220. affiche_tab(game);
  221. current_player = next_player(current_player);
  222. }
  223.  
  224. printf("\n\n\n");
  225. printf("\033[1;31m");
  226. printf("Félicitations, le joueur %d à gagné !\n\n", current_player);
  227. printf("\033[0m"); // Reset to default color
  228. destroy_game(game);
  229.  
  230. return 0;
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement