Пример #1
0
/** Slot appelé lors de click de case **/
void Case::deminage(){
    if(!hasCase || black) return;

    hasCase = false;
    thirdMark = false;
    setLineWidth(1);
    setMidLineWidth(0);
    setFrameShape(QFrame::Panel);
    setFrameShadow(QFrame::Sunken);

    label->setText(showValue(value));

    if(flag && notMine()){
        emit signalCaseFlag(false);
    }
    else{
        emit signalDemine();

        if(value >= 9){
            label->setText(showValue(value, QString("red"), QString("black")));
            emit signalGameOver(false);
        }
        else if(value == 0){
            emit signalDemineAroundCase(x, y);
        }
    }
}
Пример #2
0
void Snake::isGameOver()
{
    for (int i = 1; i < rowsVector.count(); i++) {
        if (rowsVector.at(0) == rowsVector.at(i) && colsVector.at(0) == colsVector.at(i)) {
            emit signalGameOver();
        }
    }
}
Пример #3
0
void Tank::slotTankShot(QString typeObject) {
    if (this->_shot == false)
        return;

    try
    {
        Bullet *bullet = this->shot();
        bullet->nameObjectSender = typeObject;
        bullet->setData(0, OBJ_NAME_BULLET);
        this->_shot = false;

        connect( bullet, SIGNAL( signalDestroy()  )  , this, SLOT( slotAllowShot() ));
        connect( bullet, SIGNAL( signalGameOver() )  , this, SLOT( slotGameOver()  ));
        connect( bullet, SIGNAL( signalKillBot()  )  , this, SLOT( slotKillBot()   ));

        scene()->addItem(bullet);

    } catch (QString *str)
    {
        qDebug() << "Good";
    }
}