// methode qui teste si le demon entoure l'ange de case detruite bool Demon::gagne(Plateau &plateau) { for (int i = 0; i < plateau.dim(); i++) { for (int j = 0; j < plateau.dim(); j++) { if ((!plateau.gameboard()[i][j].broken() && !plateau.gameboard()[i][j].free()) && // Position ange (plateau.gameboard()[i + 1][j].broken() && !plateau.gameboard()[i + 1][j].free()) && // bas (plateau.gameboard()[i - 1][j].broken() && !plateau.gameboard()[i - 1][j].free()) && // haut (plateau.gameboard()[i][j - 1].broken() && !plateau.gameboard()[i][j - 1].free()) && // gauche (plateau.gameboard()[i][j + 1].broken() && !plateau.gameboard()[i][j + 1].free()) && // droite (plateau.gameboard()[i - 1][j + 1].broken() && !plateau.gameboard()[i - 1][j + 1].free()) && // droite haut (plateau.gameboard()[i - 1][j - 1].broken() && !plateau.gameboard()[i - 1][j - 1].free()) && // gauche haut (plateau.gameboard()[i + 1][j + 1].broken() && !plateau.gameboard()[i + 1][j + 1].free()) && // droite bas (plateau.gameboard()[i + 1][j - 1].broken() && !plateau.gameboard()[i + 1][j - 1].free())) { // gauche bas plateau.affiche(); cout << "Bravo !! " << _pseudo << " vous avez gagné \n" << endl; return true; } } } return false; }
// la methode qui va tester si l'ange est arrivé aux coins des cases bool Ange::gagne(Plateau &plateau) { if (_ligne == 0 || _ligne == plateau.dim() - 1 || _colonne == 0 || _colonne == plateau.dim() - 1) { plateau.affiche(); cout << "Bravo !! vous avez gagné \n" << endl; return true; } return false; }