Exemplo n.º 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;
}
Exemplo n.º 2
0
bool AngePuissant::incorrect(int &ligne, int &colonne, Plateau &plateau) {

    if (ligne < 0 || ligne > plateau.dim() - 1 || colonne < 0 || colonne > plateau.dim() - 1) {
        cout << "Cette case n'existe pas " << endl;
        return false;

    }else if(!plateau.gameboard()[ligne][colonne].broken() && !plateau.gameboard()[ligne][colonne].free()) {
        cout << "Vous êtes deja dessus !!\n" << endl;
        return false;

    } else if (plateau.gameboard()[ligne][colonne].broken() && !plateau.gameboard()[ligne][colonne].free()) {
        cout << "Case deja detruite !!\n" << endl;
        return false;
        
    }else{
        
        if (_colonne - _puissance <= colonne && colonne <= _colonne + _puissance && _ligne - _puissance <= ligne && ligne <= _ligne + _puissance) {
            return true;

        }else{
            cout << "Vous pouvez bouger que de " << _puissance << " cases" << endl;
            return false;
        }
    }
}
Exemplo n.º 3
0
void AngePuissant::modifierCase(int &ligne, int &colonne, Plateau &p) {

    p.gameboard()[_ligne][_colonne].setCase(false, true);

    p.gameboard()[ligne][colonne].setCase(false, false);
 
    _ligne = ligne, _colonne = colonne;  //Je sauvegarde mes coordonées afin de faire les test plsu tard dans incorrect.
}
Exemplo n.º 4
0
void Ange::modifierCase(int &ligne, int &colonne, Plateau &plateau) {

    plateau.gameboard()[_ligne][_colonne].setCase(false, true);

    plateau.gameboard()[ligne][colonne].setCase(false, false);
    
    _ligne = ligne, _colonne = colonne;
}
Exemplo n.º 5
0
bool Demon::incorrect(int &ligne, int &colonne, Plateau &plateau) {

    if (ligne < 0 || colonne < 0 || ligne > plateau.dim() - 1 || colonne > plateau.dim() - 1) {
        cout << "Entrez une case valide !!\n" << endl;
        return false;

    }else if (!plateau.gameboard()[ligne][colonne].free() && plateau.gameboard()[ligne][colonne].broken()) {
        cout << "La case est déja detruite !!\n" << endl;
        return false;

    }else if (!plateau.gameboard()[ligne][colonne].broken() && !plateau.gameboard()[ligne][colonne].free()) {
        cout << "Case occupée par l'ange !!\n" << endl;
        return false;

    }else{
        return true;
    }

}
Exemplo n.º 6
0
Plateau::Plateau(const Plateau &obj) {

    _dim = obj._dim;
    _gameboard = obj.gameboard();
}
Exemplo n.º 7
0
void Demon::modifierCase(int &ligne, int &colonne, Plateau &plateau) {
    plateau.gameboard()[ligne][colonne].setCase(true, false);
}