diff --git a/TicTacToe/fonctions.cpp b/TicTacToe/fonctions.cpp index 8179513..3ac18a6 100644 --- a/TicTacToe/fonctions.cpp +++ b/TicTacToe/fonctions.cpp @@ -185,68 +185,74 @@ void afficherImageTableau(std::string grid[][LARGTIC], std::string style) { bool verifFinMatch(std::string grid[][LARGTIC]) { bool fin = false; + int max = LARGTIC * LARGTIC; + int compteur = 0; + if (compteur == max) { + return true; + } + + else { + compteur++; + // Valide horizontales + for (int i = 0; i < 2; i++) { + fin = true; + for (int j = 0; j < 2; j++) { + if (grid[i][j] == "") { + fin = false; + } - // Valide horizontales - for (int i = 0; i < 2; i++) { + else { + fin = fin && (grid[i][j] == grid[i][j + 1]); + } + } + if (fin == true) { + return fin; + } + } + // Valide verticales + for (int i = 0; i < 2; i++) { + fin = true; + for (int j = 0; j < 2; j++) { + if (grid[i][j] == "") { + fin = false; + } + else { + fin = fin && (grid[i][j] == grid[i + 1][j]); + } + } + if (fin == true) { + return fin; + } + } + // Valide diagonale de 00, 11, 22 fin = true; - for (int j = 0; j < 2; j++) { - if (grid[i][j] == "") { + for (int i = 0; i < 2; i++) { + if (grid[i][i] == "") { fin = false; } - else { - fin = fin && (grid[i][j] == grid[i][j + 1]); + fin = fin && (grid[i][i] == grid[i + 1][i + 1]); } } if (fin == true) { return fin; } - } - // Valide verticales - for (int i = 0; i < 2; i++) { + + // Valide diagonale 02, 11, 20 fin = true; - for (int j = 0; j < 2; j++) { - if (grid[i][j] == "") { + for (int i = 2; i > 0; i--) { + if (grid[i][i] == "") { fin = false; } else { - fin = fin && (grid[i][j] == grid[i + 1][j]); + fin = fin && (grid[i][i] == grid[i - 1][i - 1]); } } + if (fin == true) { return fin; } } - // Valide diagonale de 00, 11, 22 - fin = true; - for (int i = 0; i < 2; i++) { - if (grid[i][i] == "") { - fin = false; - } - else { - fin = fin && (grid[i][i] == grid[i + 1][i + 1]); - } - } - if (fin == true) { - return fin; - } - - // Valide diagonale 02, 11, 20 - fin = true; - for (int i = 2; i > 0; i--) { - if (grid[i][i] == "") { - fin = false; - } - else { - fin = fin && (grid[i][i] == grid[i - 1][i - 1]); - } - } - - - - if (fin == true) { - return fin; - } } void afficherFinMatch(string grid[][LARGTIC], int gagnant, int nbJoueurs) {