Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.79 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "board.h"
  4.  
  5. #define BLACK "\033[1;30m"
  6. #define RED "\033[1;31m"
  7. #define GREEN "\033[1;32m"
  8. #define YELLOW "\033[1;33m"
  9. #define BLUE "\033[1;34m"
  10. #define PURPLE "\033[1;35m"
  11. #define CYAN "\033[1;36m"
  12. #define GREY "\033[1;37m"
  13.  
  14. void regles(){
  15. printf("Le jeu se joue à deux joueurs sur un plateau de trois cases sur trois,\nbien que des variantes puissent être jouées sur des plateaux plus grands.\nChaque joueur a le contrôle d'un ensemble de six pièces dont le propriétaire est facilement identifiable,\npar exemple par la forme ou la couleur de la pièce.\nLes pièces sont de trois tailles différentes (grande, moyenne, petite),\nchaque joueur ayant deux de chaque taille.\n\n");
  16. printf("Au cours de la partie, les joueurs effectuent alternativement un coup qui consiste en l'un ou l'autre :\n-En ajoutant une pièce de leur collection sur le tableau.\n-En déplaçant une de ses pièces visibles déjà sur le plateau vers une autre case.\n-Une pièce peut être placée soit sur une case vide,\n");
  17. printf("soit sur une case contenant uniquement des pièces plus petites,\nindépendamment du propriétaire de la pièce.\n\nDans ce dernier cas, la pièce recouvre et cache les plus petites pièces.\nLorsqu'une pièce placée au-dessus d'autres pièces est déplacée d'une case,\nla plus grande pièce couverte est révélée et peut être jouée dans un tour ultérieur.\n");
  18. printf("La partie est gagnée par le premier joueur qui parvient à faire une ligne visible de ses pièces\nà travers le plateau (sur une ligne, une colonne, ou une diagonale, comme pour le Tic-Tac-Toe).\n\n______________________\n\n");
  19. }
  20.  
  21. //void affiche_place(board game,int ligneP,int colonneP){
  22. //char resultat=get_place_holder(game,ligneP,colonneP);
  23. //printf("%c\n",resultat);
  24. //}
  25.  
  26. void tour_joueur(player current_player){
  27.  
  28. if(current_player == 1){
  29. printf("Au tour du joueur Numéro %d !\n\n", current_player);
  30. }
  31.  
  32. if(current_player == 2){
  33. printf("Au tour du joueur Numéro %d !\n\n", current_player);
  34. }
  35. }
  36.  
  37. void affiche_jeu(board game){
  38.  
  39. printf("\n\n\n");
  40. for(int i=0;i<3;i++){
  41. printf("\n");
  42. if(i == 0)printf("┌───┬───┬───┐\n");
  43. else(printf("├───┼───┼───┤\n"));
  44. printf("│ ");
  45. for(int j=0;j<3;j++){
  46. printf("\033[1;34m");
  47. if(get_place_holder(game,i,j)==2){
  48. if(get_piece_size(game,i,j)==0){
  49. printf(" ");
  50. }
  51. if(get_piece_size(game,i,j)==1){
  52. printf(".");
  53. }
  54. if(get_piece_size(game,i,j)==2){
  55. printf("o");
  56. }
  57. if(get_piece_size(game,i,j)==3){
  58. printf("O");
  59. }
  60.  
  61. }
  62. else{
  63. printf("\033[1;32m");
  64. if(get_piece_size(game,i,j)==0){
  65. printf(" ");
  66. }
  67. if(get_piece_size(game,i,j)==1){
  68. printf("x");
  69. }
  70. if(get_piece_size(game,i,j)==2){
  71. printf("X");
  72. }
  73. if(get_piece_size(game,i,j)==3){
  74. printf("#");
  75. }
  76. }
  77. printf("\033[0m");
  78. printf(" │ ");
  79.  
  80. }
  81. }
  82. printf("\n└───┴───┴───┘\n");
  83.  
  84.  
  85. }
  86.  
  87.  
  88.  
  89.  
  90.  
  91. int condition_ajout_piece(board game, int line, int column,size piece_size, player current_player){
  92. int resultat=0;
  93. if(piece_size > get_piece_size(game,line,column )){
  94. resultat=1;
  95. }else{
  96. if(get_nb_piece_in_house(game,current_player,piece_size) == 0){
  97. printf("\n vous n'avez plus de pièce de taille %d", piece_size);
  98. }else{
  99. printf("\n\nUne pièce de même taille où de taille supérieur se trouve déjà sur cette case\n\n");
  100. }
  101. }
  102. return resultat;
  103. }
  104.  
  105. void affiche_maison(board game, player current_player){
  106. int size=0;
  107. for(size=1;size<4;size++){
  108. if (size==1){
  109. printf("Il vous reste %d petite(s) pièce(s)\n",get_nb_piece_in_house(game, current_player,size));
  110. }
  111. if(size==2){
  112. printf("Il vous reste %d moyenne(s) pièce(s)\n",get_nb_piece_in_house(game, current_player,size));
  113. }
  114. if(size==3){
  115. printf("Il vous reste %d grande(s) pièce(s)\n",get_nb_piece_in_house(game, current_player,size));
  116. }
  117. }
  118. printf("\n");
  119. }
  120.  
  121. int main(){
  122. board game =new_game();
  123. player current_player=1;
  124. int choix=0;
  125. do{
  126. printf("Faites un choix :\n1- Nouvelle partie\n2- Règles\n3- Quitter\n");
  127. scanf("%d",&choix);
  128. printf("______________________\n\n");
  129. switch (choix){
  130. case 1:
  131. tour_joueur(current_player);
  132. printf("Un nouveau plateau a été créé.\n\nLe plateau est sous la forme :\n\n");
  133. printf("┌───┬───┬───┐\n│ 1 │ 2 │ 3 │\n├───┼───┼───┤\n│ 4 │ 5 │ 6 │\n├───┼───┼───┤\n│ 7 │ 8 │ 9 │\n└───┴───┴───┘\n\n");
  134. printf("Les joueurs ont chacun 2 petites pièces, 2 moyennes et 2 grandes.\n\n");
  135. while(get_winner(game) == 0){
  136. tour_joueur(current_player);
  137. affiche_maison(game, current_player);
  138. printf("Voulez-vous déplacer [0] ou ajouter une pièce [1] ?\n\n");
  139. int choix2;
  140. scanf("%d",&choix2);
  141. if(choix2==0){
  142. int ligneDepart;
  143. int colonneDepart;
  144. do{
  145. printf("Quelle est la ligne de la pièce à déplacer ?\n");
  146. scanf("%d",&ligneDepart);
  147. printf("Quelle est la colonne de la pièce à déplacer ?\n");
  148.  
  149. scanf("%u",&colonneDepart);
  150. }while(get_place_holder(game,ligneDepart, colonneDepart) != current_player);
  151.  
  152. }else{
  153. int resultat;
  154. size tailleP;
  155. int ligneP;
  156. int colonneP;
  157. do{
  158. printf("Quelle ligne ?\n");
  159.  
  160. scanf("%d",&ligneP);
  161. ligneP--;
  162. printf("Quelle colonne ?\n");
  163. scanf("%u",&colonneP);
  164. colonneP--;
  165. printf("Quelle taille ? [1] petit, [2] moyen, [3] grand\n");
  166.  
  167. scanf("%u",&tailleP);
  168. resultat = condition_ajout_piece(game, ligneP, colonneP, tailleP, current_player);
  169. }while(resultat != 1);
  170. place_piece(game, current_player, tailleP, ligneP, colonneP);
  171. resultat=0;
  172. }
  173. affiche_jeu(game);
  174. current_player = next_player(current_player);
  175.  
  176. }
  177. destroy_game(game);
  178. printf("La partie est terminée.\n\n");
  179. printf("______________________\n\n");
  180. break;
  181. case 2:
  182. regles();
  183. break;
  184. case 3:
  185. printf("À bientot\n");
  186. break;
  187. }
  188. }while(choix!=3);
  189. return 0;
  190. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement