void game::move(const point & p, border_names side) { //Border offset (for indication) auto s = GAME_SCALE; point boff; //Print _board.place(p, side); printf("[GAME] Placing "); switch (side) { case border_names::top: boff = point(s/2, 0); printf("top "); break; case border_names::left: boff = point(0, s/2); printf("left"); break; case border_names::right: boff = point(s, s/2); printf("right "); break; case border_names::bottom: boff = point(s/2, s); printf("bottom"); break; default: printf("???"); break; } printf(" at (%d,%d) - %c\n", p.x, p.y, _turn == player ? 'p' : 'o'); #if USE_ANIMATIONS //Indicate move _lastmove_position = p*GAME_SCALE + GAME_OFFSET + boff; _lastmove_radius = GAME_SCALE/2; #endif //Get newly closed cells std::vector<point> new_squares = dirty_cells(p, side); int size = new_squares.size(); //If any if (size != 0) { //Assign and add scores _board.assign(new_squares, _turn); if (_turn == player) _score.player += size; else _score.opponent += size; } //Else turn is over else switch_turn(); }
int main(int argc, char* argv[]) { struct game *game = create_game(); apply_sc(0, &zero_value, game); switch_turn(game); apply_sc(100, &help_value, game); switch_turn(game); apply_cs(&K_value, 100, game); switch_turn(game); apply_cs(&S_value, 100, game); switch_turn(game); apply_sc(100, &get_value, game); switch_turn(game); apply_sc(100, &zero_value, game); switch_turn(game); apply_cs(&put_value, 0, game); switch_turn(game); apply_sc(0, &zero_value, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&K_value, 100, game); switch_turn(game); apply_cs(&S_value, 100, game); switch_turn(game); apply_sc(100, &get_value, game); switch_turn(game); apply_sc(100, &zero_value, game); switch_turn(game); apply_cs(&put_value, 0, game); switch_turn(game); apply_sc(0, &zero_value, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); // 8192 apply_cs(&K_value, 100, game); switch_turn(game); apply_cs(&S_value, 100, game); switch_turn(game); apply_sc(100, &get_value, game); switch_turn(game); apply_sc(100, &zero_value, game); switch_turn(game); print_game(game); apply_cs(&put_value, 0, game); switch_turn(game); apply_sc(0, &zero_value, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_sc(100, &attack_value, game); switch_turn(game); apply_cs(&K_value, 100, game); switch_turn(game); apply_cs(&S_value, 100, game); switch_turn(game); apply_sc(100, &get_value, game); switch_turn(game); apply_sc(100, &zero_value, game); switch_turn(game); apply_cs(&put_value, 0, game); switch_turn(game); apply_sc(0, &zero_value, game); switch_turn(game); apply_cs(&K_value, 100, game); switch_turn(game); apply_cs(&S_value, 100, game); switch_turn(game); apply_sc(100, &get_value, game); switch_turn(game); apply_sc(100, &zero_value, game); switch_turn(game); apply_cs(&put_value, 0, game); switch_turn(game); apply_sc(0, &zero_value, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); // 16384 apply_cs(&K_value, 100, game); switch_turn(game); apply_cs(&S_value, 100, game); switch_turn(game); apply_sc(100, &get_value, game); switch_turn(game); apply_sc(100, &zero_value, game); print_game(game); apply_cs(&put_value, 0, game); switch_turn(game); apply_sc(0, &zero_value, game); switch_turn(game); apply_cs(©_value, 0, game); switch_turn(game); print_game(game); apply_cs(&put_value, 0, game); switch_turn(game); apply_sc(0, &zero_value, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&dbl_value, 0, game); switch_turn(game); apply_cs(&succ_value, 0, game); switch_turn(game); apply_cs(&revive_value, 0, game); switch_turn(game); print_game(game); destroy_game(game); return 0; }