Почему функция Perft для моего шахматного двигателя дает два разных выхода? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему функция Perft для моего шахматного двигателя дает два разных выхода? [закрыто]

Сообщение Anonymous »

Я отлаживаю поколение движения для своего шахматного двигателя. Чтобы точно определить, где разрывается моя программа, у меня есть функция 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»