void take_step_and_capture(const Step& step, GameState *gs) { assert(step.is_motion()); gs->move_piece(step); Step capture_step; if (possible_capture_from_motion(*gs, step)) { capture_from_motion(step, gs); } }
bool GameState::move_piece(const Step &s) { assert(s.is_motion()); const uint8_t c = s.get_color(), p = s.get_piece(), pos = s.get_position(), finish = s.get_finish(); return move_piece(c, p, pos, finish); }