@@ -35,6 +35,11 @@ struct chessy::MoveInfo
};
+struct chessy::UndoInfo
+{
+};
+
class chessy::ChessGame
{
Board board;
@@ -13,9 +13,10 @@ size_t Perft::search(void)
size_t result = 0;
auto searcher = [&result] (const MoveInfo& mi, ChessGame& cg, int depth) {
if (depth > 0) {
- cg.doMove(mi);
+ UndoInfo ui = cg.doMove(mi);
Perft p{ depth - 1, cg };
result += p.search();
+ cg.undoMove(ui);
}
else {
result++;