void mathGame::gameMenu(){ char start; cout << "[S]tart Game [H]igh Scores [Q]uit Game" << endl; cin >> start; cin.ignore(100, '\n'); start = toupper(start); switch (start) { case 'S': while (stop(problemGenerator())) { showScore(); } gameMenu(); break; case 'H': setHighScore(); gameMenu(); break; case 'Q': break; default: cout << "Oops something happended!?" << endl; break; } }
int main() { //creating an instance of Board object Board *board = new Board(); Player *blackPlayer = new HumanPlayer(BLACK); Player *whitePlayer; AbstractGameLogic *gameLogic = new GameLogic(board); DisplayGame *displayGameOnConsole = new DisplayGameOnConsole(board); GameFlow *gameFlow; gameMenu(blackPlayer, &whitePlayer, gameLogic, displayGameOnConsole, &gameFlow); gameFlow->playTheGame(); //delete created objects /*we put 'delete board' in comment because in the current implementation the board is deleted within the 'GameLogic' destructor*/ //delete board; delete blackPlayer; delete whitePlayer; //deletes the board as well delete gameLogic; delete displayGameOnConsole; delete gameFlow; return 0; }
bool selectGame(char *&ret, char *&dir_ret, Common::Language &lang_ret, Common::Platform &plf_ret, Icon &icon) { Game *games = new Game[MAX_GAMES]; int selected, num_games; ta_sync(); void *mark = ta_txmark(); for (;;) { num_games = findGames(games, MAX_GAMES); for (int i=0; i<num_games; i++) { games[i].icon.create_texture(); games[i].label.create_texture(games[i].text); } selected = gameMenu(games, num_games); ta_sync(); ta_txrelease(mark); if (selected == -1) waitForDisk(); else break; } if (selected >= num_games) selected = -1; if (selected >= 0) the_game = games[selected]; delete games; if (selected>=0) { #if 0 chdir(the_game.dir); #else chdir("/"); dir_ret = the_game.dir; #endif ret = the_game.filename_base; lang_ret = the_game.language; plf_ret = the_game.platform; icon = the_game.icon; return true; } else return false; }
void Game::play() { if (menu->GetMenuState()) { gameMenu(win); } else if (menu->GetSubMenuState()) { gameSubMenu(win); } else if (levelMenu) { intermission(win); } else { draw(); userInput(); update(); win->display(); } return; }
int main(){ /* Initialize scene and its objects */ Racket r1 = Racket(); Racket r2 = Racket(); Racket * List [2] = { &r1,&r2 }; boolean difficulty = false; r2.isplayer = gameMenu(&difficulty); r2.difficulty = difficulty; Dot ball = Dot(); char screen[HEIGHT][WIDTH]; initializeRacket(screen, &r1, LEFT_SIDE); initializeRacket(screen, &r2, RIGHT_SIDE); seed(); //initializes dot randomly int dotRand = rand() % 3; switch (dotRand) { case 0: initializeDot(screen, &ball, DOWNLEFT); break; case 1: initializeDot(screen, &ball, UPLEFT); break; case 2: initializeDot(screen, &ball, LEFT); break; default: initializeDot(screen, &ball, UPLEFT); break; } while (true) // Main loop { initialize(screen); drawRacket(screen, &r1); drawRacket(screen, &r2); moveDot(screen, ball.direction, &ball, List); if (screen[ball.height][ball.width] == RACKET_BRUSH) { if (ball.width < (WIDTH/2)) { dotHitRacket(screen,&ball, &r1, List); } else { dotHitRacket(screen,&ball, &r2, List); } } if (_kbhit()) { /* _kbhit is used to know if user pressed a button (keyboard) */ char pressedKey = _getch(); if (pressedKey == 'w' || pressedKey == 'W'){ moveRacket(screen, &r1,UP); } if (pressedKey == 's' || pressedKey == 'S') { moveRacket(screen, &r1, DOWN); } //Check if the user choose pvp or pvc if (r2.isplayer) { //Choose multiplayer if (pressedKey == 'i' || pressedKey == 'I') { moveRacket(screen, &r2, UP); } if (pressedKey == 'k' || pressedKey == 'K') { moveRacket(screen, &r2, DOWN); } } } if (!r2.isplayer) { moveCPU(screen, &r2,ball.direction,ball.height); } for (int i = 0; i < 2; i++) { if (List[i]->score >= 10) { system("cls"); printf("Player %d Venceu!\n", i+1); _getch(); return 0; } } draw(screen); sleep(); } return 0; }