示例#1
0
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;
}
示例#3
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;
}
示例#4
0
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;
}
示例#5
0
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;
}