//------------------------------------------------ void WarManager::endWar() { addFlag(F_EndWar); removeFlag(F_InWar); return ; }
Dialog::Dialog(QWidget* parent, Qt::WindowFlags fl ): QDialog ( parent, fl ), Ui::Dialog() { setupUi(this); connect(BaseA,SIGNAL(valueChanged ( int )),this,SLOT(setMax())); connect(BaseB,SIGNAL(valueChanged ( int )),this,SLOT(setMax())); connect(pushButton,SIGNAL(clicked( )),this,SLOT(addFlag())); connect(pushButton_2,SIGNAL(clicked( )),this,SLOT(removeFlag())); connect(listWidget,SIGNAL(itemClicked (QListWidgetItem*)),this,SLOT(enableDelete())); translateButtons(); };
// Permet de poser un drapeau void putFlag(int x, int y) { // On execute le contenue seulement si la case n'a pas été minée if(isMined(x, y) == FALSE) { // On vérifie qu'il n'y a pas déjà un drapeau if(isFlag(x, y) == FALSE) { // On vérifie que l'on a pas mis plus de drapeau que de bombes if(nbFlags < NB_BOMBS) { // On choisit nos couleurs textbackground(B_FLAG); textcolor(C_FLAG); // On affiche le drapeau printf("%c", A_FLAG); // On ajoute le drapeau à la liste addFlag(x, y); } else { // On affiche une erreur msgZone(C_WARNING, B_WARNING); printf("You can't use more"); gotoxy(mapX+OFFSET_X+(BORDER*2), OFFSET_Y+18); printf("than %d flags", NB_BOMBS); } } else // Sinon on enlève le drapeau existant { // On choisit nos couleurs textbackground(B_MAP); textcolor(C_MAP); // On remet un case non miné printf("%c", A_MAP); // On enleve le drapeau du tableau removeFlag(x, y); } } }
void IRenderNode::setRenderOption( RenderOption option , DWORD val ) { switch ( option ) { case CFRO_Z_TEST : val = ( val ) ? D3DZB_TRUE : D3DZB_FALSE; break; case CFRO_ZBIAS : { float bias = 0.1f * val; val = *((DWORD*)&bias); } break; case CFRO_SRC_BLEND : case CFRO_DEST_BLEND : val = D3DTypeMapping::convert( BlendMode(val) ); break; case CFRO_ALPHA_BLENGING : if ( val ) addFlag( NODE_TRANSLUCENT_OBJ ); else removeFlag( NODE_TRANSLUCENT_OBJ ); break; case CFRO_CULL_FACE: val = D3DTypeMapping::convert( CullFace( val ) ); break; case CFRO_Z_BUFFER_WRITE : case CFRO_LIGHTING : case CFRO_FOG : break; default: assert(0); } if ( D3DTypeMapping::getDefaultValue( option ) == val ) mUsageRenderOption &= ~ BIT( option ); else mUsageRenderOption |= BIT( option ); mRenderOption[ option ] = val; }
void removeFlag(BaseAST* ast, Flag flag) { removeFlag(ast, (int)flag); }
// Fonction executé lorsque l'utilisateur choisit une case void mineCase(int x, int y) { int countBomb = 0; // permet de compter les bombes aux alentours int i, j; // Variable de recherche // On vérifie que c'est pas la deuxième fois que l'utilisateur appuie ici if(isMined(x, y) != TRUE) { // On marque cette position comme déjà miner minedX[nbMined] = x; minedY[nbMined] = y; nbMined++; } // On se positionne sur la case à miner gotoxy(x, y); if(isBomb(x, y)) { // S'il mine une bombe, la partie est teminé endGame(); } else { // // On compte les bombes aux alentours // // On définie la première case de recherche sur l'axe Y if(y != OFFSET_Y) i = y-1; else i = y; // On parcourt en Y for (i; i <= y+1 && i < mapY+OFFSET_Y; i++) { // On définie la première case de recherche sur l'axe X if(x != OFFSET_X) j = x-1; else j = x; // Puis en X for (j; j <= x+1 && j < mapX+OFFSET_X; j++) { if(i != y || j != x) { if(isBomb(j, i) == TRUE) countBomb++; // S'il y a une bombe, on l'ajoute } } } // On vérifie que le joueur n'avait pas posé un drapeau ici if(isFlag(x, y)) removeFlag(x, y); // On l'enlève si c'était le cas // On choisit nos couleurs textbackground(B_MINED); textcolor(C_MINED); if(countBomb > 0) // S'il y a des bombes aux alentours on affiche le nombre { // On change la couleur switch(countBomb) { case 1:textcolor(LIGHTBLUE);break; case 2:textcolor(LIGHTGREEN);break; case 3:textcolor(LIGHTRED);break; case 4:textcolor(BLUE);break; case 5:textcolor(RED);break; case 6:textcolor(RED);break; case 7:textcolor(RED);break; case 8:textcolor(RED);break; } // On affiche le nombre printf("%d", countBomb); } else // Sinon on affiche un vide et on va voir plus loin { printf("%c", A_MINED); // // On mine aussi aux alentours // // On définie la première case de recherche sur l'axe Y if(y != OFFSET_Y) i = y-1; else i = y; // On parcourt en Y for (i; i <= y+1 && i < mapY+OFFSET_Y; i++) { // On définie la première case de recherche sur l'axe X if(x != OFFSET_X) j = x-1; else j = x; // Puis en X for (j; j <= x+1 && j < mapX+OFFSET_X; j++) if((i != y || j != x) && isMined(j, i) != TRUE) mineCase(j, i); // On mine à coté } } } }