示例#1
0
void frontendDemoStep()
{
	if(!sc_demoLocal)
	{
		gameSetup();
		gc_level = cc_numLevels - 1;
		sc_demoLocal = 1;
	}
	
	if(1 == sc_demoLocal)
	{
		levelSetup();
		sc_demoLocal = 2;
	}

	if(2 == sc_demoLocal)
	{
		char AIResult = gamePlay(NO);
		if(gSTATE_Play != AIResult)
			sc_demoLocal = 3;
	}
	
	if(3 == sc_demoLocal)
	{
		if(crash(NO))
		{
			gc_applesToGetThisLevel = ApplesPerLevel;
			if(++gc_level >= cc_numLevels)
				gc_level = 0;

			sc_demoLocal = 1;
		}
	}
}
示例#2
0
int main()
{

    char playerOne[10];
    char playerTwo[10];
    char mesgOne[50] = "Enter player one's name: ";
    char mesgTwo[50] = "Enter player two's name: ";

    initscr();
    mvprintw(13, 1,"%s",mesgOne);
    getstr(playerOne);
    mvprintw(14, 1,"%s",mesgTwo);
    getstr(playerTwo);

    cbreak();
    noecho();
    drawGrid();

    move(1,2);
    refresh();
    //when you first start the game, the cursor is first space (1,2)

    gamePlay(playerOne, playerTwo);

    refresh();
    getch();
    endwin();
    return 0;
}
示例#3
0
Sudoku::Sudoku(){
    
    char loadFromFile;
    cout << "Would you like to load a game from file?(y/n)";
    cin >> loadFromFile;
    if (loadFromFile == 'y') {
        int tempArray[BOARD_SIZE][BOARD_SIZE];
        int tempMovesArray [BOARD_SIZE][BOARD_SIZE];
        ifstream infile;
        infile.open("gamefile.txt");
        if (infile.is_open()) {
            for (int i = 0; i < BOARD_SIZE; i++) {
                for (int j = 0; j < BOARD_SIZE; j++) {
                    infile >> tempArray[i][j];
                }
            }
            for (int i = 0; i < BOARD_SIZE; i++) {
                for (int j = 0; j < BOARD_SIZE; j++) {
                    infile >> tempMovesArray[i][j];
                }
            }
            infile.close();
            Board savedBoard(tempArray, tempMovesArray);
            gamePlay(savedBoard);
        }
        else{
示例#4
0
/** ========================= Main function ==========================*/
int main (){
    init();
    Serial.begin(9600);
   
    randomSeed(analogRead(3)); // randomSeed() initializes the pseudo-random number generator
   
    pinMode(SEL, INPUT);
    digitalWrite(SEL, HIGH);
    tft.initR(INITR_BLACKTAB); // initialize a ST7735R chip
   
    initializeGrid();
    displayGrid();
    gamePlay();
  
    return 0;
}
void try_to_make_move_ai(int player)
{
    lock_gameField();

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (gameField[i][j] == EMPTY && previous_player_move != player) {
                previous_player_move = player;
                gameField[i][j] = player; // ставим в массиве нолик
                drawGameField(i, j);      // отрисовываем интерфейс заново
                unlock_gameField();
                return;
            }
        }
    }

    is_finished_game = winGame(gamePlay(gameField));

    unlock_gameField();
}
示例#6
0
void gameInit(void)
{	
	Scene_Ptr gamePlay(new GamePlay(device, score,starFade));
	sceneManager.Add(Scene::MODE_LOAD, Scene_Ptr( new Load(device, renderer)));

	sceneManager.Add(Scene::MODE_OPENING, Scene_Ptr(new Opening(device)));

	sceneManager.Add(Scene::MODE_TITLE, Scene_Ptr(new Title(device,bstar)));
	sceneManager.Add(Scene::MODE_MENU, Scene_Ptr(new Menu(device,bstar)));

	sceneManager.Add(Scene::MODE_OPERATION, Scene_Ptr(new Operation(device)));
	sceneManager.Add(Scene::MODE_CREDIT, Scene_Ptr(new Credit(device)));

	sceneManager.Add(Scene::MODE_GAMEPLAY, gamePlay);

	sceneManager.Add(Scene::MODE_ENDING, Scene_Ptr(new Ending(device, score,starFade)));
	sceneManager.Add(Scene::MODE_RESULT, Scene_Ptr(new Result(device, score, dynamic_cast<GamePlay*>(gamePlay.get()),starFade)));
	sceneManager.Add(Scene::MODE_GAMEOVER, Scene_Ptr(new GameOver(device,dynamic_cast<GamePlay*>(gamePlay.get()))));

	sceneManager.Change(Scene::MODE_LOAD);
}
HRESULT gamePlayer(int myID, int socket, int* actualQuestion)
{
    PTR_MESSAGE msg;


    if(gameSendCatalogs(myID,socket) == ERROR)
    {
        return ERROR;
    }

    msg = NULL;

    syslogWriteFormatDebug(ldebug, "Player %i enters gamePlayer", myID);

    if(gamePlay(myID, socket, actualQuestion) == ERROR)
    {
        return ERROR;
    }

    return OK;
}
int try_to_make_move(int rowField, int colField, int player)
{    
    lock_gameField();

    if (gameField[rowField][colField] == EMPTY && previous_player_move != player) {
        previous_player_move = player;
        gameField[rowField][colField] = player; // ставим в массиве нолик
        drawGameField(rowField, colField);   // отрисовываем интерфейс заново
       
        // проверяем на выигрышную ситуацию (другой клиент проерит в своей потоке)
        is_finished_game = winGame(gamePlay(gameField));

    } else if (gameField[rowField][colField] != EMPTY){
        mi_writeMessage("This place is taken!");
    } else if (previous_player_move == player) {
        mi_writeMessage("CROSS move!");
    }

    unlock_gameField();

    return 0;
}
HRESULT gameGamemaster(int myID, int socket, char* currentCatalog, int* catalogLength, int* actualQuestion)
{
    PTR_MESSAGE msg;

    if(gameSendCatalogs(myID, socket) == ERROR)
    {
        return ERROR;
    }
    msg = NULL;
    do
    {
Next:
        // waiting infinitely here, to determine if the socket was closed
        msg = messageReceive(0, socket, -1);
        if(msg != NULL)
        {
            if(msg->type == CatalogChange)
            {
                memset(currentCatalog, '\0', 400);
                memcpy(currentCatalog, msg->content, msg->length);
                *catalogLength = msg->length;
                gameBroadcast(msg);
                CatalogClose();
                if(CatalogLoad(currentCatalog) == false)
                {
                    if(messageFS(ErrorWarning, -1, "0Game could not be started yet Catalog could not be loaded", socket) == false)
                    {
                        syslogWriteFormatDebug(lerror, "Could not send the ErrorWarning to the GameMaster to tell him the game could not be started.");
                        free(msg);
                        return ERROR;
                    }
                    free(msg);
                    return ERROR;
                }
                free(msg);
            }
            else if(msg->type == StartGame)
            {
                if(userdataCount() < 2)
                {
                    if(messageFS(ErrorWarning, -1, "0Game could not be started yet too less players", socket) == false)
                    {
                        syslogWriteFormatDebug(lerror, "Could not send the ErrorWarning to the GameMaster to tell him the game could not be started.");
                        free(msg);
                        return ERROR;
                    }
                    free(msg);
                    goto Next;
                }
                else
                {
                    if(gameBroadcast(msg) == false)
                    {
                        if(messageFS(ErrorWarning, -1, "0Game could not be started yet", socket) == false)
                        {
                            syslogWriteFormatDebug(lerror, "Could not send the ErrorWarning to the GameMaster to tell him the game could not be started.");
                            free(msg);
                            return ERROR;
                        }
                    }
                    CatalogClose();
                    if(CatalogLoad(currentCatalog) == false)
                    {
                        if(messageFS(ErrorWarning, -1, "0Game could not be started yet Catalog could not be loaded", socket) == false)
                        {
                            syslogWriteFormatDebug(lerror, "Could not send the ErrorWarning to the GameMaster to tell him the game could not be started.");
                            free(msg);
                            return ERROR;
                        }
                        free(msg);
                        return ERROR;
                    }
                    free(msg);
                    userdataLock();
                    userdataSetStage(STAGE_GAME);
                    userdataUnlock();
                    break;
                }
            }
        }
        else
        {
            syslogWriteFormatDebug(ldebug, "Player %i timed out", myID);
            return ERROR;
        }
    }
    while(1);

    if(gamePlay(myID, socket, actualQuestion) == ERROR)
    {
        return ERROR;
    }
    return OK;
}
示例#10
0
文件: main.c 项目: StewBC/snakebyte
void mainLoop()
{
	bool bAllDone = NO;

	gc_gameState = gSTATE_Frontend;
	
	while(!bAllDone)
	{
		platBeginFrame();
		switch(gc_gameState)
		{
			case gSTATE_Frontend:
				gc_gameState = frontend();
			break;

			case gSTATE_GameSetup:
				gameSetup();
				gc_gameState = gSTATE_LevelSetup;
			// break;

			case gSTATE_LevelSetup:
				levelSetup();
				gc_gameState = gSTATE_Play;
			break;
		
			case gSTATE_Play:
				gc_gameState = gamePlay(YES);
			break;
		
			case gSTATE_Crash:
				gc_gameState = gSTATE_CrashAnim;
			// break;
			
			case gSTATE_CrashAnim:
				if(crash(YES))
				{
					if(gc_lives)
					{
						--gc_lives;
						gc_gameState = gSTATE_LevelSetup;
					}
					else
						gc_gameState = gSTATE_GameOver;
				}
			break;
		
			case gSTATE_ExitLevel:
				if(exitLevel())
					gc_gameState = gSTATE_LevelSetup;
			break;

			case gSTATE_GameOver:
				if(gameOver())
					gc_gameState = gSTATE_Frontend;
			break;

			case gSTATE_AllDone:
				bAllDone = YES;
			break;
		}              
		platSyncEndFrame();
	}
}