diff --git a/puissance4_GRB/puissance4.c b/puissance4_GRB/puissance4.c index b40b60543f563de7516520e7fae0017d7af69453..47fe5bb82caa71eb29107b41d07a2f8348b466c1 100644 --- a/puissance4_GRB/puissance4.c +++ b/puissance4_GRB/puissance4.c @@ -73,14 +73,28 @@ int kill_game(){ }*/ -int put_free_cell(int j_p, int i, symbol_t symbol){ - if(game.cells[j_p][i].symbol == EMPTY){ - //put the player's symbol +int put_free_cell(int j_p, symbol_t symbol){ + int i=0; + if((i = is_cell_free(j_p, 0, game.players[game.curr_player].symbol)) != -1){ game.cells[j_p][i].symbol = symbol; + } + return i; +} + +/* +retourne la ligne d'une cellule de libre dans une +colonne donnée +(si il y en a une, retourn -1 si il n'y en a aucune) +*/ +int is_cell_free(int j_p, int i, symbol_t symbol){ + if(game.cells[j_p][i].symbol == EMPTY){ + //retourne la ligne disponible + return i; }else{ - if(i<=game.height){ - return put_free_cell(j_p, i+1, symbol); + if(i<(game.width-1)){ + return is_cell_free(j_p, i+1, symbol); }else{ + printf("il n'y a plus de case de disponible sur cette colonne\n"); return -1; } } diff --git a/puissance4_GRB/puissance4.h b/puissance4_GRB/puissance4.h index 2f5bef69ef40e25e1d9de42c755b53ccc1549f4d..4b0341956e81933ee0bde5fd90e566aa80c98801 100644 --- a/puissance4_GRB/puissance4.h +++ b/puissance4_GRB/puissance4.h @@ -45,7 +45,8 @@ void init_puissance4(int height, int width); void cell_destroy(struct cell **cells, int height); int kill_game(); -int put_free_cell(int j_p, int i, symbol_t symbol); +int put_free_cell(int j_p, symbol_t symbol); +int is_cell_free(int j_p, int i, symbol_t symbol); int Launch_puissance4(); bool Is_Grid_full();