Я отлаживаю поколение движения для своего шахматного двигателя. Чтобы точно определить, где разрывается моя программа, у меня есть функция Perftwchildnodes , которая распечатывает, сколько из общих узлов листьев поступает из каждого первого возможного движения. Когда я использовал эту строку FEN R3K2R/8/3Q4/8/8/8/6Q1/R3KR2 B QKQ - 2 2 на глубине 3 PERFTWHILDNODES Неправильно сказал, что перемещение G2A2 Результаты 1089 листьев, так что я применил G2A2 и Reran PerftWH, не применял G2A2 и reran perftwh. На этот раз он правильно сказал, что было 1126 узлов листьев. Вызов Perft на нем с глубиной 2. My Move Struct сохраняет только целые числа для происхождения, пункта назначения и продвижения и использования отладчика, и я проверял, что все три значения одинаковы в обеих ситуациях, поэтому применяемый ход одинаково.
#include
#include
#include
#include
#include
const int wPawn = 1, bPawn = -1, wRook = 2, bRook = -2, wKnight = 3, bKnight = -3,
wBishop = 4, bBishop = -4, wQueen = 5, bQueen = -5, wKing = 6, bKing = -6;
const uint64_t squareMask[64] = {1ULL, 1ULL
Подробнее здесь: https://stackoverflow.com/questions/797 ... nt-outputs
Почему функция Perft для моего шахматного двигателя дает два разных выхода? [закрыто] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Метод Java Date.toString() дает два разных результата на разных серверах Linux [закрыто]
Anonymous » » в форуме JAVA - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-