Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "board.h"
- void affiche_regle()
- {
- printf("\n\n");
- printf("Voici les rêgles\n\n");
- printf("Chaque joueur dispose au début de six pièces de jeu dans sa maison.\n\n");
- 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 ");
- 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");
- printf("Les joueurs exécutent chacun leur tour une action parmi les deux actions suivantes : \n\n");
- printf(" — un joueur peut placer une pièce de sa maison sur une case du plateau \n\n");
- printf(" — un joueur peut déplacer une pièce présente sur le plateau (et visible) vers une autre case du plateau. \n\n");
- 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");
- 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");
- 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");
- }
- int condition_ajout_piece(board game, int line, int column,size piece_size, player current_player){
- int result=0;
- if(piece_size > get_piece_size(game,line,column )){
- result=1;
- }else{
- if(get_nb_piece_in_house(game,current_player,piece_size) == 0){
- printf("\n vous n'avez plus de pièce de taille %d", piece_size);
- }else{
- printf("\033[1;31m");
- printf("\n\nUne pièce de même taille où de taille supérieur se trouve déjà sur cette case\n\n");
- printf("\033[0m");
- }
- }
- return result;
- }
- void affichage_joueur(player current_player){ // Affiche le nom du joueur qui doit jouer
- if(current_player == 1){
- printf("\n\n");
- printf("\033[1;31m");
- printf("Au tour du joueur Numéro %d !\n\n", current_player);
- printf("\033[0m"); // Reset to default color
- }
- if(current_player == 2){
- printf("\n\n");
- printf("\033[1;34m");
- printf("Au tour du joueur Numéro %d !\n\n", current_player);
- printf("\033[0m"); // Reset to default color
- }
- }
- int menu() // Affiche le menu
- {
- int choix=0, num=1;
- printf("\033[1;31m");
- printf("Bienvenue dans le jeu Goblet gobblers !\n\n");
- printf("\033[0m"); // Reset to default color
- printf("Que voulez vous faire ?\n\n");
- printf("1 - Afficher les règles ?\n\n");
- printf("2 - Jouer ?\n\n");
- printf("3 - Quitter ?\n\n");
- scanf("%d",&num);
- switch(num)
- {
- case 1:
- printf("\033[1;31m");
- printf("vous avez choisi d'afficher les règles");
- printf("\033[0m"); // Reset to default color
- affiche_regle();
- choix=1;
- break;
- case 2:
- printf("\033[1;31m");
- printf("vous avez décidé de jouer");
- printf("\033[0m"); // Reset to default color
- choix=2;
- break;
- case 3:
- printf("\033[1;31m");
- printf("vous venez de quitter le jeu\n\n");
- printf("\033[0m"); // Reset to default color
- choix=3;
- break;
- default:
- printf("Le choix n'est pas correct !");
- }
- return choix;
- }
- void affiche_maison(board game, player current_player)
- {
- int size=0;
- for(size=1;size<4;size++){
- if(get_nb_piece_in_house(game, current_player,size) == 2) printf("\033[1;32m");
- if(get_nb_piece_in_house(game, current_player,size) == 1) printf("\033[0;33m");
- if(get_nb_piece_in_house(game, current_player,size) == 0) printf("\033[1;31m");
- printf("Il vous reste %d pièce de taille %d\n",get_nb_piece_in_house(game, current_player,size), size);
- printf("\033[0m");
- }
- printf("\n");
- }
- void affiche_tab(board game) // Affiche la grille de jeu
- {
- printf("\n\n\n");
- for(int i=0;i<3;i++){
- printf("\n");
- if(i == 0)printf("┌─┬─┬─┐\n");
- else(printf("├─┼─┼─┤\n"));
- printf("│");
- for(int j=0;j<3;j++){
- if(get_place_holder(game,i,j) == 1){
- printf("\033[1;31m");
- }
- if(get_place_holder(game,i,j) == 2){
- printf("\033[1;34m");
- }
- printf("%d",get_piece_size(game,i,j));
- printf("\033[0m");
- printf("│");
- }
- }
- printf("\n└─┴─┴─┘\n");
- }
- int main(int args, char **argv)
- {
- system("clear");
- player current_player=1;
- int choix, result;
- int mouvement;
- size piece_size;
- int line, column, source_line, source_column;
- board game = new_game();
- choix = menu();
- while(choix == 1){
- choix = menu();
- }
- if(choix == 3){
- return 0;
- }
- printf("\n\n\n");
- printf("\033[1;31m");
- printf("Début de la partie !\n\n");
- printf("\033[0m"); // Reset to default color
- affiche_tab(game);
- while(get_winner(game) == 0){
- affichage_joueur(current_player);
- affiche_maison(game, current_player);
- printf("Que voulez vous faire ?\n\n");
- printf("Ajouter une pièce [1]\n\n");
- printf("Déplacer une pièce [2]\n\n");
- scanf("%d",&mouvement);
- if(mouvement == 1){
- do{
- printf("sur quelles lignes voulez vous jouer [1-2-3]");
- scanf("%d",&line);
- line=line-1;
- printf("sur quelles colonnes voulez vous jouer [1-2-3]");
- scanf("%d",&column);
- column = column-1;
- printf("quelle taille ? [1 : SMALL -2 : MEDIUM -3 : LARGE\n");
- scanf("%u",&piece_size);
- result = condition_ajout_piece(game, line, column, piece_size, current_player);
- }while(result != 1);
- place_piece(game, current_player, piece_size, line, column);
- result=0;
- }
- if(mouvement == 2){
- do{
- printf("sur quelles lignes se trouve votre pièce ? [1-2-3]");
- scanf("%d",&source_line);
- source_line = source_line-1;
- printf("sur quelles colonnes voulez se trouve votre pièce ? [1-2-3]");
- scanf("%d",&source_column);
- source_column = source_column-1;
- }while(get_place_holder(game,source_line, source_column) != current_player);
- do{
- printf("sur quelles lignes vous voulez mettre votre pièce ? [1-2-3]");
- scanf("%d",&line);
- line=line-1;
- printf("sur quelles colonnes vous voulez mettre votre pièce ? [1-2-3]");
- scanf("%d",&column);
- column = column-1;
- }while(get_place_holder(game,line, column) == 0);
- }
- move_piece(game ,source_line, source_column, line, column);
- affiche_tab(game);
- current_player = next_player(current_player);
- }
- printf("\n\n\n");
- printf("\033[1;31m");
- printf("Félicitations, le joueur %d à gagné !\n\n", current_player);
- printf("\033[0m"); // Reset to default color
- destroy_game(game);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement