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; }
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); } }
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; }