int main(int argc, char **argv) { /* Initialize service */ sef_startup(); char *video_mem; video_mem = vg_init(VBE_105_MODE); while (1) { if (menu(video_mem) == -1) { break; } int n_seconds_player1 = game(video_mem, 1, -1); if (n_seconds_player1 == -1) { break; } int n_seconds_player2 = game(video_mem, 2, n_seconds_player1); if (n_seconds_player2 == -1) { break; } if (n_seconds_player1 > n_seconds_player2) { player_wins(video_mem, 2); } else { player_wins(video_mem, 1); } } vg_exit(); return 0; }
int solve_for_player(int* testcase, int bitmask, int test_size){ int sub_array_index, bitmask_index; int i; if(player_wins(testcase, bitmask, test_size)){ return 1; }else{ for(sub_array_index = 0; sub_array_index < test_size; ++sub_array_index){ bitmask_index = (1 << sub_array_index); if(bitmask & bitmask_index){ if(!solve_for_player(testcase, bitmask ^ bitmask_index, test_size)){ return 1; } } } return 0; } }