int main() { //Creates the window sf::RenderWindow window(sf::VideoMode(WIDTH, HEIGHT), "My window"); //Seeds random std::srand(time(NULL)); //Initialize important variables int done = 0; clock_t timerStart; //Run the program as long as the window is open while (window.isOpen() && done != 1) { //Gets time at the start of the game timerStart = clock(); //Game loop done = game(&window); if (done == 0) //Finds out whether the player wants another round done = endOfGame(&window, timerStart); } return 0; }
void Board::marked(int x, int y) { // make sure that the last arrow is correctly undrawn undrawArrow(); if(getField(x, y) == EMPTY) return; if(x == mark_x && y == mark_y) { // unmark the piece mark_x = -1; mark_y = -1; updateField(x, y); return; } if(mark_x == -1) { mark_x = x; mark_y = y; updateField(x, y); return; } else { int fld1 = getField(mark_x, mark_y); int fld2 = getField(x, y); // both field same? if(fld1 != fld2) { emit markError(); return; } // trace if(findPath(mark_x, mark_y, x, y)) { emit madeMove(mark_x, mark_y, x, y); drawArrow(mark_x, mark_y, x, y); setField(mark_x, mark_y, EMPTY); setField(x, y, EMPTY); mark_x = -1; mark_y = -1; int dummyx; History dummyh[4]; // game is over? if(!getHint_I(dummyx,dummyx,dummyx,dummyx,dummyh)) { time_for_game = (int)time((time_t)NULL) - starttime; emit endOfGame(); } } else { clearHistory(); emit markError(); } } }
void Board::undrawConnection() { if(grav_col_1 != -1 || grav_col_2 != -1) { gravity(grav_col_1, true); gravity(grav_col_2, true); grav_col_1 = -1; grav_col_2 = -1; } // is already undrawn? if(connection.empty()) return; // Redraw all affected fields Path oldConnection = connection; connection.clear(); // Path.size() will always be >= 2 Path::const_iterator pathEnd = oldConnection.end(); Path::const_iterator pt1 = oldConnection.begin(); Path::const_iterator pt2 = pt1; ++pt2; while(pt2 != pathEnd) { if(pt1->y == pt2->y) { for(int i = std::min(pt1->x, pt2->x); i <= std::max(pt1->x, pt2->x); i++) updateField(i, pt1->y); } else { for(int i = std::min(pt1->y, pt2->y); i <= std::max(pt1->y, pt2->y); i++) updateField(pt1->x, i); } ++pt1; ++pt2; } Path dummyPath; // game is over? if(!getHint_I(dummyPath)) { time_for_game = (int)difftime( time((time_t)0), starttime); emit endOfGame(); } }
void Tetris::generate() { if (field->generateFallingBlock()) { field->putBlockInField(false); preview->previewBlock(blocknr_next, rot_next, color_next); gtk_widget_queue_draw(preview->getWidget()); onePause = true; } else { g_source_remove(timeoutId); timeoutId = 0; blocknr_next = -1; endOfGame(); } }
int main() { int massS[9]; int prov; int x; int CorZ=1; for(int i=0;i<9;i++) massS[i]=-1; //massS[8]=0; //massS[3]=0; //massS[8]=1; funField(massS); while (!endOfGame(massS)) { x=step(massS,prov); if (x==-1) { printf("\nVi pitalis postavit v zanyatuy yacheiku\nSdelaite hod eshe raz"); step(massS,prov); } else { massS[x]=CorZ; funField(massS); } if (CorZ==1) CorZ=0; else CorZ=1; } if (whoiswinner() == 1) printf("Player 2 Win!!!"); if (whoiswinner() == 2) printf("Player 1 Win!!!,player 2 looooooooooser!!!!"); return 0; }
void TcpServer::incomingConnection(qintptr socketDescriptor) { if (threadPool.size() < maxConnections) { QThread *thread = new QThread; Client *client = new Client(socketDescriptor); client->moveToThread(thread); connect(thread, SIGNAL(started()), client, SLOT(run())); connect(client, SIGNAL(newGame(QString, QString, QList<QString>)),this,SLOT(newGame(QString, QString, QList<QString>))); connect(client, SIGNAL(startGame(QString)),this,SLOT(readyToStart(QString))); connect(this, SIGNAL(sendData(QList<QPair<QString,Snake*> >,QList<Food*>)), client, SLOT(sendData(QList<QPair<QString,Snake*> >,QList<Food*>))); connect(this, SIGNAL(transmit(Client*,QList<QString>)), client, SLOT(transmit(Client*,QList<QString>))); connect(client, SIGNAL(changeDirect(int,QString)), this, SLOT(setDirect(int,QString))); connect(client, SIGNAL(disconnected(Client*)), this, SLOT(removeClient(Client*))); connect(this, SIGNAL(endOfGame(QString,QString)), client, SLOT(gameOver(QString,QString))); //end of the game thread->start(); WRITELOCK(threadPool.insert(client,thread)); }
// slots void Widget::change_cards(void) { int c=0; unsigned int i; run++; qDebug() << "run" << run; if( run >= MAX_RUN ) { endOfGame();} /*! \todo automatiszer lees autres modes de jeux*/ else { while (!chg.isEmpty()) { c=chg.takeLast(); for (i=0;i < nbElementsPaquet(&joueur.main);i++) if (c == conventionCarte(&joueur.main, i+1)) { popMain(&joueur , i+1, &jeu); pushMain(&joueur , &jeu); switch_cards(c,-1); } } recup_cards(); } }
void Nim::playNim() { if (_vm->_wonNim) { // Already won the game. _vm->_dialogs->displayScrollChain('Q', 6); return; } if (!_vm->_askedDogfoodAboutNim) { _vm->_dialogs->displayScrollChain('Q', 84); return; } _vm->_dialogs->displayScrollChain('Q', 3); _playedNim++; _vm->_graphics->saveScreen(); _vm->fadeOut(); CursorMan.showMouse(false); setup(); board(); //CursorMan.showMouse(true); do { startMove(); if (_dogfoodsTurn) dogFood(); else { CursorMan.showMouse(true); takeSome(); CursorMan.showMouse(false); } _stones[_row] -= _number; showChanges(); } while (_stonesLeft != 0); endOfGame(); // Winning sequence is A1, B3, B1, C1, C1, btw. _vm->fadeOut(); _vm->_graphics->restoreScreen(); _vm->_graphics->removeBackup(); _vm->fadeIn(); CursorMan.showMouse(true); if (_dogfoodsTurn) { // Dogfood won - as usual. if (_playedNim == 1) // Your first game. _vm->_dialogs->displayScrollChain('Q', 4); // Goody! Play me again? else _vm->_dialogs->displayScrollChain('Q', 5); // Oh, look at that! I've won again! _vm->decreaseMoney(4); // And you've just lost 4d! } else { // You won - strange! _vm->_dialogs->displayScrollChain('Q', 7); _vm->_objects[kObjectLute - 1] = true; _vm->refreshObjectList(); _vm->_wonNim = true; _vm->_background->draw(-1, -1, 0); // Show the settle with no lute on it. // 7 points for winning! _vm->incScore(7); } if (_playedNim == 1) { // 3 points for playing your 1st game. _vm->incScore(3); } }
void insertaObstaculos() { // Update the games sprite objects spriteManager->update(); chuletasStep++; if (chuletasStep >16) chuletasStep = 1; chuletas->update(chuletasStep); tankStep++; if (tankStep >16) tankStep = 1; tank->update(tankStep); switch(g_Input.part) { case 1: generaHearth(); generaMaxiCoin(); generaClaws(50); generaMiniCoins(30); //generaTank(40); break; case 2: generaHearth(); generaMaxiCoin(); generaClaws(40); generaMiniCoins(30); //generaChuletas(40); break; case 3: generaHearth(); generaMaxiCoin(); generaClaws(50); generaMiniCoins(30); generaTnts(50); break; case 4: generaHearth(); generaMaxiCoin(); generaClaws(40); generaMiniCoins(20); generaTnts(40); generaTank(50); break; case 5: generaHearth(); generaMaxiCoin(); generaClaws(40); generaMiniCoins(20); generaTnts(40); generaTank(40); break; case 6: generaHearth(); generaMaxiCoin(); generaClaws(50); generaMiniCoins(20); generaTnts(50); generaTank(30); break; case 7: generaHearth(); generaMaxiCoin(); generaClaws(40); generaMiniCoins(10); generaTnts(40); generaTank(30); break; case 8: generaHearth(); generaMaxiCoin(); generaClaws(50); generaMiniCoins(10); generaTnts(50); generaChuletas(70); g_Input.corazonReady = true; break; case 9: generaHearth(); generaMaxiCoin(); generaClaws(40); generaMiniCoins(10); generaTnts(40); generaChuletas(30); g_Input.corazonReady = true; break; case 10: generaHearth(); generaMaxiCoin(); generaClaws(40); generaMiniCoins(10); generaTnts(40); generaChuletas(20); g_Input.corazonReady = true; break; default: endOfGame(); break; } //check for collitions //claw collition for (int j=0; j<10; j++) { if (garras[j]!= NULL && garras[j]->animXLeft > 0) { if(BaconCollide(garras[j]->animXLeft+20, garras[j]->animXRight, garras[j]->animYTop, garras[j]->animYBottom)) { g_Input.setLifes(g_Input.getLifes()-1); BaconBlend(); if (g_Input.getSound()) g_Input.playClash(); garras[j]->animXLeft = garras[j]->animXLeft - 400; garras[j]->animXRight = garras[j]->animXRight - 400; } } } //miniCoins collition for (int j=0; j<20; j++) { if (miniCoins[j]!= NULL && miniCoins[j]->animXLeft > 0) { if(BaconCollide(miniCoins[j]->animXLeft, miniCoins[j]->animXRight, miniCoins[j]->animYTop, miniCoins[j]->animYBottom)) { if (g_Input.getSound() && miniCoins[j]->s_MaterialCel->GetAnimCelID()==0) g_Input.playCoin(); miniCoins[j]->setPause(false); } } } //heart collition if (corazon->animXLeft > 0) { if (BaconCollide(corazon->animXLeft, corazon->animXRight, corazon->animYTop, corazon->animYBottom)) { g_Input.setLifes(g_Input.getLifes()+1); if (g_Input.getSound()) g_Input.playLife(); corazon->animXLeft = corazon->animXLeft - 400; corazon->animXRight = corazon->animXRight - 400; } } //tnt collition for (int j=0; j<10; j++) { if (tnts[j]!= NULL && tnts[j]->animXLeft > 0) { if(BaconCollide(tnts[j]->animXLeft, tnts[j]->animXRight, tnts[j]->animYTop, tnts[j]->animYBottom)) { g_Input.setLifes(g_Input.getLifes()-1); BaconBlend(); //s3eAudioPlay(CRASH_SONG); if (g_Input.getSound()) g_Input.playClash(); tnts[j]->animXLeft = tnts[j]->animXLeft - 400; tnts[j]->animXRight = tnts[j]->animXRight - 400; } } } //coin 200 collition if (maxiCoin->animXLeft > 0) { if(BaconCollide(maxiCoin->animXLeft, maxiCoin->animXRight, maxiCoin->animYTop, maxiCoin->animYBottom)) { //g_Input.setLifes(g_Input.getLifes()-1); //BaconBlend(); if (g_Input.getSound()) g_Input.playMaxiCoin(); g_Input.setCoins(g_Input.getCoins()+200); maxiCoin->animXLeft = maxiCoin->animXLeft - 400; maxiCoin->animXRight = maxiCoin->animXRight - 400; } } //tank collition if (tank->animXLeftT > 0) { if (BaconCollide2(tank->animXLeftT, tank->animXRightT, tank->animYTopT, tank->animYBottomT, 20)) { g_Input.setLifes(g_Input.getLifes()-1); BaconBlend(); if (g_Input.getSound()) g_Input.playClash(); tank->animXLeftT = tank->animXLeftT - 600; tank->animXRightT = tank->animXRightT - 600; } } //chuletas collition if (chuletas->animXLeft > 0) { if (BaconCollide2(chuletas->animXLeft, chuletas->animXRight, chuletas->animYTop, chuletas->animYBottom, 90)) { g_Input.setLifes(g_Input.getLifes()-1); BaconBlend(); if (g_Input.getSound()) g_Input.playClash(); chuletas->animXLeft = chuletas->animXLeft - 800; chuletas->animXRight = chuletas->animXRight - 800; } } }