示例#1
0
int main(int argc, char *argv[]) {
	std::cout.precision(2);
	std::cout.setf(std::ios::fixed,std::ios::floatfield);
    srand(static_cast<unsigned int>(time(nullptr)));

    Game game=OTHELLO;
    if (argc>1) game=parse_game(argv[1]);
    Board *board=choose_game(game);

    float p1time = static_cast<float>(1.);
    float p2time = static_cast<float>(1.);
    if (argc>2) p1time = parse_float(argv[2],p1time);
    if (argc>3) p2time = parse_float(argv[3],p2time);

	Player *player_a=new PlayerBot(PLAYER_1,p1time,0,0.2);
	Player *player_b=new PlayerBot(PLAYER_2,p2time,0,0.2);

	play_game(player_a,player_b,board);

    delete board;
	delete player_a;
	delete player_b;

	return 0;
}
示例#2
0
void parse_games(FILE * file, uint32_t start)
{

    uint32_t count = 0;
    fseek(file, start, SEEK_SET);
    fread(&count, sizeof(count), 1, file);

    printf("\tCount = %d\n\n", count);

    count_games = count;

    int i;
    for (i = 0; i < (count); i++) {
	uint32_t start_script;
	uint32_t next_script;
	fseek(file, (start + 4) + 4 * i, SEEK_SET);
	fread(&start_script, sizeof(start_script), 1, file);
	if (i < (count - 1)) {
	    fread(&next_script, sizeof(next_script), 1, file);
	} else {
	    next_script = end_game;
	}
	char name[2024];
	snprintf(name, 2020, "game%02d", i);
	save_block(name, start_script, next_script - start_script);

	printf("Game Header (%2d, 0x%X)\n--------------------------\n", i,
	       start_script);
	parse_game(file, i, start_script, next_script);
    }
}
示例#3
0
int pr_parse( pr_state_t* parser )
{
   int res;

   if ( ( res = setjmp( parser->env ) ) == 0 )
   {
      match_any( parser );
      parse_clrmamepro( parser );

      while ( parser->lexer.token != LX_EOF )
         parse_game( parser );
   }

   *parser->prev = NULL;
   return res;
}