Beispiel #1
0
// 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;
}
Beispiel #2
0
// 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;
}