/** * show the "you win" bitmap * wait 250ms * clear event stack * wait for an event */ void doGameWon() { SDL_Event event; resetField(); drawImage(backgrounds[BG_BACK], 0, 0); drawImage(backgrounds[BG_WIN], 32, 192); refresh(); SDL_Delay(250); while (SDL_PollEvent(&event)); inGame = 1; frame = 0; while (inGame && !hasQuit) { frame++; while (SDL_PollEvent(&event)) { /*@ -usedef @*/ if (event.type == SDL_QUIT) {hasQuit = 1;} if (event.type == SDL_KEYDOWN) { switch (event.key.keysym.sym) { case SDLK_ESCAPE: hasQuit = 1; break; default: inGame = 0; break; } } /*@ =usedef @*/ } /* FIXME : Bounce some blocks around */ refresh(); SDL_Delay(1000 / 10); if(frame == 100) break; } }
void fileRead() { int c; float x, y; resetField(); fp = fopen("field.txt", "r"); if(fp) File_Status = 1; else File_Status = 0; if(File_Status) { fscanf(fp, "%f,%f", &Ball_X, &Ball_Y); while((c = fscanf(fp, "%f,%f", &x, &y))!=EOF) { Active[Free_Pixel].x = x; Active[Free_Pixel].y = y; Free_Pixel++; } fclose(fp); } glutPostRedisplay(); }
void keyboardSpecial(int key, int x, int y) { switch(key) { case GLUT_KEY_F1: resetField(); printf("Field cleared!\n"); break; case GLUT_KEY_F2: fileWrite(); printf("Field saved!\n"); break; case GLUT_KEY_F3: fileRead(); printf("Field loaded!\n"); break; } }
GraphicBoard::GraphicBoard(int width, int height, QWidget *parent) : width(width), height(height), QWidget(parent) { Language *language; QStringList langList; langList.push_back("Russian"); langList.push_back("English"); QString gameLang = QInputDialog::getItem(this, tr("Choose language of the game"), tr("Выберите язык игры"), langList); if (gameLang == "Russian"){ language = new RussianLang; } else{ language = new EnglishLang; } tableLayout = new QGridLayout; for (int i = 0; i < height; ++i) { buttons.push_back(QVector<ButtonCell*>(width)); for (int j = 0; j < width; ++j) { buttons[i][j] = new ButtonCell(language); buttons[i][j]->connectToPanel(this); tableLayout->addWidget(buttons[i][j], i, j); } } gamePanel = new QHBoxLayout(this); gameBoardPanel = new QVBoxLayout; gameBoardPanel->addLayout(tableLayout); wordPanel = new QHBoxLayout; currentWord = new QLabel(""); commitButton = new QPushButton("Enter!"); commitGiveUp = new QPushButton("Give Up"); wordPanel->addWidget(commitGiveUp); wordPanel->addWidget(currentWord); wordPanel->addWidget(commitButton); gameBoardPanel->addLayout(wordPanel); firstPlayerScore = new QLabel(tr("0"), this); firstPlayerWords = new QListWidget(this); firstPlayerPanel = new QVBoxLayout(this); firstPlayerPanel->addWidget(firstPlayerScore); firstPlayerPanel->addWidget(firstPlayerWords); secondPlayerScore = new QLabel(tr("0"), this); secondPlayerWords = new QListWidget(this); secondPlayerPanel = new QVBoxLayout(this); secondPlayerPanel->addWidget(secondPlayerScore); secondPlayerPanel->addWidget(secondPlayerWords); gamePanel->addLayout(firstPlayerPanel); gamePanel->addLayout(gameBoardPanel); gamePanel->addLayout(secondPlayerPanel); setLayout(gamePanel); int players = QInputDialog::getInt(this, tr("Enter number of players"), tr("Введите число игроков"), 1, 1, 2); if (players == 2) { gameManager = new GameManager(language, width, height, players); } else { QStringList list; list.push_back(tr("EASY")); list.push_back("MEDIUM"); list.push_back(tr("HARD")); list.push_back("HARDEST"); QString level = QInputDialog::getItem(this, tr("Choose level"), tr("Выберите сложность"), list); gameManager = new GameManager(language, width, height, players, level); } connectToPlayers(gameManager->getFirstPlayer(), gameManager->getSecondPlayer()); gameManager->getFirstPlayer()->connectToInterface(this); gameManager->getSecondPlayer()->connectToInterface(this); QString word = gameManager->getFirstWord(); for (int i = 0; i < width; ++i) { buttons[height/2][i]->setText(QString(word[i])); } for (int i = 0; i < width; ++i) { buttons[height/2][i]->setMenu(NULL); } connect(commitButton, SIGNAL(clicked()), this, SLOT(onCommitButtonClicked())); connect(commitGiveUp, SIGNAL(clicked()), this, SLOT(onCommitGiveUpClicked())); connect(gameManager, SIGNAL(gameEnded(const QString&)), this, SLOT(finishGame(const QString&))); connect(this, SIGNAL(quit()), parent, SLOT(resetField())); }
/** * show the "game over" bitmap * wait 250ms * clear event stack * wait for an event */ void doGameLost() { SDL_Event event; SDL_Surface *hiMsg; char hiText[64]; char name[64] = ""; int namePos = 0, hiPos = 0, needUpdate = 0; resetField(); /* check for hiscore */ for(hiPos=0; hiPos<MAX_HISCORES; hiPos++) { if(state->score > hiscores[hiPos].score) { needUpdate = 1; break; } } drawImage(backgrounds[BG_BACK], 0, 0); drawImage(backgrounds[BG_LOSE], 32, 192); /* clear events */ while (SDL_PollEvent(&event)); inGame = 1; frame = 0; while (inGame && !hasQuit) { frame++; while (SDL_PollEvent(&event)) { /*@ -usedef @*/ if(event.type == SDL_QUIT) {hasQuit = 1;} if(event.type == SDL_KEYDOWN) { if(hiPos < MAX_HISCORES) { if(event.key.keysym.sym >= SDLK_a && event.key.keysym.sym <= SDLK_z) { if(namePos < 8) { name[namePos++] = event.key.keysym.sym; name[namePos] = 0; needUpdate = 1; } } else { switch (event.key.keysym.sym) { case SDLK_RETURN: addHiScore(name, state->score, state->level); inGame = 0; break; case SDLK_BACKSPACE: if(namePos > 0) name[--namePos] = 0; needUpdate = 1; break; default: break; } } } else if(event.type == SDL_KEYDOWN) { inGame = 0; } } /*@ =usedef @*/ } if(hiPos < MAX_HISCORES && needUpdate) { drawImage(backgrounds[BG_BACK], 0, 0); drawImage(backgrounds[BG_LOSE], 32, 192); sprintf(hiText, "New Hiscore: %i points!", state->score); drawImage(hiMsg = TTF_RenderText_Blended(fonts[FONT_SCORE], hiText, black), 100, 300); SDL_FreeSurface(hiMsg); sprintf(hiText, "Enter Name: %s", name); drawImage(hiMsg = TTF_RenderText_Blended(fonts[FONT_SCORE], hiText, black), 100, 332); SDL_FreeSurface(hiMsg); needUpdate = 0; } /* FIXME : Bounce some blocks around */ refresh(); SDL_Delay(1000 / 10); } }
void AdjQueryDlg::lev3Changed(const QString&) { mw->verify->setDefault(true); resetField (mw->lev3Field); }
void AdjQueryDlg::resetAllFields() { resetField(mw->lev1Field); resetField(mw->lev2Field); resetField(mw->lev3Field); }