Perft-функция шахматного движка выдает противоречивые результаты ⇐ C++
-
Anonymous
Perft-функция шахматного движка выдает противоречивые результаты
В настоящее время я разрабатываю шахматный движок на C++ и занимаюсь отладкой генератора ходов. Для этой цели я написал простую функцию perft():
int32_t Engine::perft(GameState game_state, глубина int32_t) { int32_t Last_move_nodes = 0; int32_t all_nodes = 0; таймер таймер; таймер.старт(); int32_t выход_глубина = глубина; если (глубина == 0) { возврат 1; } std::vector Legal_moves = генератор.generate_legal_moves(game_state); for (Переместить перемещение: Legal_moves) { game_state.make_move(переместить); Last_move_nodes = perft_no_print (game_state, глубина - 1); all_nodes += Last_move_nodes; std::cout
В настоящее время я разрабатываю шахматный движок на C++ и занимаюсь отладкой генератора ходов. Для этой цели я написал простую функцию perft():
int32_t Engine::perft(GameState game_state, глубина int32_t) { int32_t Last_move_nodes = 0; int32_t all_nodes = 0; таймер таймер; таймер.старт(); int32_t выход_глубина = глубина; если (глубина == 0) { возврат 1; } std::vector Legal_moves = генератор.generate_legal_moves(game_state); for (Переместить перемещение: Legal_moves) { game_state.make_move(переместить); Last_move_nodes = perft_no_print (game_state, глубина - 1); all_nodes += Last_move_nodes; std::cout
Мобильная версия