Esempio n. 1
0
void PlayNRounds(int n){
#ifdef _WIN32
    system("cls");
#elif defined(__linux__)
    system("clear");
#endif
    int score;
    Game myGame;
    bool isGameOver;
    dir_e dir;

    gotoXY(5,0);
    std::cout<<"Previous";
    gotoXY(35,0);
    std::cout<<"Current (Hint: "<<myGame.getHint()<<")";
    myGame.printGrid(35,2);

    if(myGame.isGameOver(score))  myGame.reset();

    Grid myGrid;
    for(int i = 0;i < n;i++){    
        isGameOver = false;
        while(!isGameOver){
            //while((dir = getDirFromKeyboard()) == INVALID);
			myGame.getCurrentGrid(myGrid);
			dir=computeDir(myGrid, myGame.getHint());
            gotoXY(5,10);
            std::cout<<dirToStr(dir);
            myGame.printGrid(5,2);
          
            myGame.insertDirection(dir);
            gotoXY(50,0);
            std::cout<<myGame.getHint();
            isGameOver = myGame.isGameOver(score);
            myGame.printGrid(35,2);
            
       }
        myGame.printGrid(35,2);
        if(i < n - 1)  myGame.reset();
        gotoXY(0,15); 
        printf("  Round:    %d      \n", i+1);
        printf("  Score:    %d      \n", score);
 
    }
}
Esempio n. 2
0
int main(int argc, char** argv) {
	MatchingContext context;
	char* boardArr = argv[1];
	char* bonusArr = argv[2];

	int row, col;
	for(row = 0; row < BOARD_SIZE; row++) {
		for(col = 0; col < BOARD_SIZE; col++) {
			int index = row * BOARD_SIZE + col;
			context.board[row][col] = boardArr[index];
			context.bonus[row][col] = atoi_single_digit(bonusArr[index]);
		}
	}

	char* tilesArr = argv[3];

	int i, j;
	for(i = 0; i < NUM_TILES; i++) {
		for(j = 0; j < TILE_SIZE; j++) {
			context.tiles[i][j] = tilesArr[i * TILE_SIZE + j];
		}
	}

	context.playerColor = argv[4][0];
	context.lowerBound = parseInt(argv[5]);
	context.upperBound = parseInt(argv[6]);
	context.midPoint = (context.upperBound + context.lowerBound) / 2;

	int len = NUM_TILES * 2;
	for(i = 0; i < len; i++) {
		context.bestMove[i] = -1;
	}
	context.bestScore = -1;
	context.bestScoreDiff = 2488320 * 3;

	findMoves(&context, 0);

	for(i = 0; i < NUM_TILES; i++) {
		printf("%d %d :: %d %d %s\n", context.bestMove[2 * i], context.bestMove[2 * i + 1], context.bestMove[2 * i] / BOARD_SIZE, context.bestMove[2 * i] % BOARD_SIZE, dirToStr(context.bestMove[2 * i + 1]));
	}
	printf("Score : %d\n", context.bestScore);

	return 0;
}