From 23268279cfdf665cda1872f6e7533e91a77761b9 Mon Sep 17 00:00:00 2001 From: "remi.greub" <remi.greub@hes-so.ch> Date: Thu, 27 Mar 2025 01:19:11 +0100 Subject: [PATCH] ajout gestion affichage --- puissance4_GRB/main.c | 4 +- puissance4_GRB/puissance4.c | 103 ++++++++++++++++++++++++++++++++++-- puissance4_GRB/puissance4.h | 2 + 3 files changed, 102 insertions(+), 7 deletions(-) diff --git a/puissance4_GRB/main.c b/puissance4_GRB/main.c index f342a4a..7ec665e 100644 --- a/puissance4_GRB/main.c +++ b/puissance4_GRB/main.c @@ -19,6 +19,7 @@ int main(int argc, char** argv){ } init_puissance4(height, width); + //print_game(); //print_gameCells(); int win = Launch_puissance4(); printf("\nle winner c'est ça la : %d\n",win); @@ -29,5 +30,4 @@ int main(int argc, char** argv){ // dessine une quadrillage puissance4.h // créé un quadrillage virtuel puissance4.h -// trouve qui a gagner puissance4.h - \ No newline at end of file +// trouve qui a gagner puissance4.h \ No newline at end of file diff --git a/puissance4_GRB/puissance4.c b/puissance4_GRB/puissance4.c index 605f79a..aea2c00 100644 --- a/puissance4_GRB/puissance4.c +++ b/puissance4_GRB/puissance4.c @@ -106,7 +106,8 @@ int Launch_puissance4(){ while(winner==EMPTY){ //print_grille(); - print_gameCells(); + //print_gameCells(); + print_game(); printf("au tour de %d de jouer\n", game.curr_player); printf("balance un chiffre entre 0 et %d\n", game.width-1); do{ @@ -131,7 +132,8 @@ int Launch_puissance4(){ //il y a un bug de zinzin printf("ok la y a un bug de zinzin check ca \n"); //print la grille pour debug - print_gameCells(); + //print_gameCells(); + print_game(); //fin du jeu return -1; //erreur } @@ -141,7 +143,8 @@ int Launch_puissance4(){ if( winner != EMPTY){ if(winner==CROSS){ //reset du jeu + mise a jour des scores (scores optionels) - print_gameCells(); + //print_gameCells(); + print_game(); printf("la croix a gagnée cette connasse\n"); //print joueur croix a gagné //fin du jeu @@ -150,7 +153,8 @@ int Launch_puissance4(){ if(winner==CIRCLE){ //reset du jeu + mise a jour des scores (scores optionels) //print joueur cercle a gagné - print_gameCells(); + //print_gameCells(); + print_game(); printf("le cercle a gagné cet enorme zgeg\n"); //fin du jeu return CIRCLE; @@ -160,7 +164,8 @@ int Launch_puissance4(){ if(Is_Grid_full()){ //la grille est pleine //print egalite + la fin de la grille - print_gameCells(); + //print_gameCells(); + print_game(); printf("y a un egalite dans les regles de l'art mash'allah\n"); //winner = EQUAL; //fin du jeu @@ -253,4 +258,92 @@ symbol_t CheckWin_in_a_direction(int dir[2], struct cell **grid, struct cell cel } } return result; +} + +void print_game(){ + printf("h:%d, w:%d\n", game.height, game.width); + //affiche ┌─┬─┬─┬─┬─┬─┬─┐ + for(int i=0; i<(game.width*2)+1; i++){ + if(i%2){ + printf("─"); + }else{ + if(i==0){ + printf("┌"); + } + else if(i == (game.width*2)){ + printf("┐"); + } + else{ + printf("┬"); + } + } + } + printf("\n"); + + //affiche le jeu-> │ │ │X│O│ │ │ │ + for(int i=0; i<game.height; i++){ + printf("│"); + for(int j=0; j<game.width; j++){ + if(game.cells[j][(game.height-i)-1].symbol==EMPTY){ + printf(" "); + } + else if(game.cells[j][(game.height-i)-1].symbol==CROSS){ + printf("X"); + }else if(game.cells[j][(game.height-i)-1].symbol==CIRCLE){ + printf("O"); + }else{ + printf("E"); + } + printf("│"); + } + printf("\n"); + if(i<game.height-1){ + //Dessine ├─┼─┼─┼─┼─┼─┼─┤ ... + for(int cnt=0; cnt<((game.width*2)+1); cnt++){ + if(cnt%2){ + printf("─"); + }else{ + if(cnt == 0){ + printf("├"); + } + else if(cnt == (game.width*2)){ + printf("┤"); + } + else{ + printf("┼"); + } + } + } + printf("\n"); + } + } + + //Affiche └─┴─┴─┴─┴─┴─┴─┘ + for(int i=0; i<(game.width*2)+1; i++){ + if(i%2){ + printf("─"); + }else{ + if(i==0){ + printf("└"); + } + else if(i == (game.width*2)){ + printf("┘"); + } + else{ + printf("┴"); + } + } + } + printf("\n"); + + //affiche les numéros + int cnt = 0; + for(int i=0; i<(game.width*2)+1; i++){ + if(i%2){ + printf("%d",++cnt); + }else{ + printf(" "); + } + } + printf("\n"); } \ No newline at end of file diff --git a/puissance4_GRB/puissance4.h b/puissance4_GRB/puissance4.h index 4b03419..dac6e3c 100644 --- a/puissance4_GRB/puissance4.h +++ b/puissance4_GRB/puissance4.h @@ -50,6 +50,8 @@ int is_cell_free(int j_p, int i, symbol_t symbol); int Launch_puissance4(); bool Is_Grid_full(); +void print_game(); + symbol_t Find_winner(struct cell **grid, struct cell cellPlayed); symbol_t CheckWin_in_a_direction(int dir[2], struct cell **grid, struct cell cell); -- GitLab