Navigation » Immortal Chess - Chess without Frontiers! > Шахматный раздел > Шахматное программирование » Perft, (проверка генератора ходов)

Шахматное программирование Chess Programming. Вы уже написали свою шахматную программу? Или только-только приступили к её разработке? Добро пожаловать в данный раздел! Делимся советами, помогаем новичкам в шахматном программировании

Ответ
Опции темы
Непрочитано 23.09.2018, 20:39   #1
AlexLaw
 
Регистрация: 08.06.2015
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Страна:
По умолчанию Perft, (проверка генератора ходов)

Здравствуйте.
Подскажите программу для проверки генератора ходов.
Т.е. нужно допустим задать позицию в FEN и глубину перебора - получить на выходе сколько листьев на данной глубине при данном ходе.
Написал конечно забубенно, но вот для наглядности

Так вот, у меня при depth=4 Nodes=4085604,
Понятно, что у меня есть какая то не корректность, чтобы ее найти мне и нужна такая проверка
Скрытый текст:

r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -
Move Nodes Сумма depth-4
e1-g1 86975 86975
e1-f1 77887 164862
e1-d1 79989 244851
e1-c1 79803 324654
f3-h3 98524 423178
f3-g3 94461 517639
f3-e3 92505 610144
f3-d3 83727 693871
f3-g4 92037 785908
f3-f4 90488 876396
f3-h5 95035 971431
f3-f5 104992 1076423
f3-f6 77838 1154261
h1-g1 84876 1239137
h1-f1 81563 1320700
a1-d1 79695 1400395
a1-c1 83263 1483658
a1-b1 83348 1567006
e2-f1 88728 1655734
e2-d1 74963 1730697
e2-d3 85119 1815816
e2-c4 84835 1900651
e2-b5 79739 1980390
e2-a6 69334 2049724
d2-c1 83037 2132761
d2-e3 90274 2223035
d2-f4 84869 2307904
d2-g5 87951 2395855
d2-h6 82323 2478178
c3-d1 84782 2562960
c3-b1 84773 2647733
c3-a4 91447 2739180
c3-b5 81498 2820678
e5-d3 77431 2898109
e5-g4 79912 2978021
e5-c4 77752 3055773
e5-g6 83866 3139639
e5-c6 83885 3223524
e5-f7 88799 3312323
e5-d7 93913 3406236
g2-h3 82759 3488995
g2-g3 77468 3566463
g2-g4 75677 3642140
b2-b3 81066 3723206
a2-a3 94405 3817611
a2-a4 90978 3908589
d5-e6 97464 4006053
d5-d6 79551 4085604


Это мои данные.

Или выложете такие же данные с вашей программы.
Правда придется это делать несколько раз вам и мне, чтобы найти у меня не корректность.
PS Видел на сайте прогу WildCat, но как там задать позицию и глубину не знаю.

Последний раз редактировалось AlexLaw; 23.09.2018 в 22:08.
AlexLaw вне форума   Ответить с цитированием
Непрочитано 24.09.2018, 05:58   #2
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 48
Сказал(а) спасибо: 13
Поблагодарили 24 раз(а) в 14 сообщениях
Страна:
По умолчанию Re: Perft, (проверка генератора ходов)

Рецепт такой:

Скачать Stockfish (у меня версия 8), запустить. Скормить ему строку установки позиции с ФЕНа, например "position fen rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1". Затем буковку "d" - режим детализации. Затем волшебную команду, например, "perft 5".

Вывод Стокфиша использовать по назначению. Выход из стокфиша (протокол UCI) - "quit" Успехов!

Последний раз редактировалось Уэф; 24.09.2018 в 06:01.
Уэф вне форума   Ответить с цитированием
Непрочитано 24.09.2018, 07:43   #3
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 48
Сказал(а) спасибо: 13
Поблагодарили 24 раз(а) в 14 сообщениях
Страна:
По умолчанию Re: Perft, (проверка генератора ходов)

Кстати, попробовал скормить эту позицию своему движку - тот тоже дал расхождение с вышеприведенной таблицей. Решил воспользоваться собственным советом - задал её Стокфишу 8 - тот упал. Скачал Стокфиш 9, попробовал - он тоже упал.

Проверил позицию и ФЕН - всё вроде в порядке. Вот уж не ожидал от лучшего движка такого подвоха.

Виноват - поторопился с предыдущим ответом. Вопрос остаётся открытым.
Уэф вне форума   Ответить с цитированием
Непрочитано 24.09.2018, 09:22   #4
RomeoA23
 
Аватар для RomeoA23
 
Регистрация: 28.10.2010
Возраст: 34
Сообщений: 2,509
Сказал(а) спасибо: 9,645
Поблагодарили 20,264 раз(а) в 2,426 сообщениях
Страна:

Награды пользователя:

По умолчанию Re: Perft, (проверка генератора ходов)

Попробуйте Cfish

http://immortalchess.net/forum/showp...&postcount=499
или более свежий
http://immortalchess.net/forum/showp...&postcount=507

__________________
ICCF 2424. AMD Ryzen 7 1700X @3.6 GHz
22600 kN/s Fritz Chess Benchmark v4.2

Последний раз редактировалось RomeoA23; 24.09.2018 в 09:26.
RomeoA23 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
АЛЕКСЕЙ1976 (24.09.2018)
Непрочитано 24.09.2018, 17:37   #5
RomeoA23
 
Аватар для RomeoA23
 
Регистрация: 28.10.2010
Возраст: 34
Сообщений: 2,509
Сказал(а) спасибо: 9,645
Поблагодарили 20,264 раз(а) в 2,426 сообщениях
Страна:

Награды пользователя:

По умолчанию Re: Perft, (проверка генератора ходов)

Цитата:
Сообщение от Уэф Посмотреть сообщение
Кстати, попробовал скормить эту позицию своему движку - тот тоже дал расхождение с вышеприведенной таблицей. Решил воспользоваться собственным советом - задал её Стокфишу 8 - тот упал. Скачал Стокфиш 9, попробовал - он тоже упал.

Проверил позицию и ФЕН - всё вроде в порядке. Вот уж не ожидал от лучшего движка такого подвоха.

Виноват - поторопился с предыдущим ответом. Вопрос остаётся открытым.
Со Стокфишем всё в порядке.
Просто вместо perft 5 нужно ввести go perft 5

Смотрите этот коммит:
https://github.com/official-stockfis...584036b01091b6
__________________
ICCF 2424. AMD Ryzen 7 1700X @3.6 GHz
22600 kN/s Fritz Chess Benchmark v4.2
RomeoA23 вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
bes (25.09.2018), АЛЕКСЕЙ1976 (24.09.2018), Уэф (25.09.2018)
Непрочитано 25.09.2018, 05:54   #6
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 48
Сказал(а) спасибо: 13
Поблагодарили 24 раз(а) в 14 сообщениях
Страна:
По умолчанию Re: Perft, (проверка генератора ходов)

Спасибо, я нашёл свою ошибку - неверно вводил строку ФЕНа.

Последний раз редактировалось Уэф; 25.09.2018 в 06:01.
Уэф вне форума   Ответить с цитированием
Непрочитано 25.09.2018, 14:24   #7
AlexLaw
 
Регистрация: 08.06.2015
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Страна:
По умолчанию Re: Perft, (проверка генератора ходов)

Цитата:
Сообщение от RomeoA23 Посмотреть сообщение
Попробуйте Cfish


Почему Nodes не соответствует таблице?
AlexLaw вне форума   Ответить с цитированием
Непрочитано 25.09.2018, 14:35   #8
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 48
Сказал(а) спасибо: 13
Поблагодарили 24 раз(а) в 14 сообщениях
Страна:
По умолчанию Re: Perft, (проверка генератора ходов)

Цитата:
Сообщение от AlexLaw Посмотреть сообщение

Почему Nodes не соответствует таблице?
Там стартовая начальная позиция. Для начальной - соответствует.
Уэф вне форума   Ответить с цитированием
Непрочитано 25.09.2018, 16:47   #9
AlexLaw
 
Регистрация: 08.06.2015
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Страна:
По умолчанию Re: Perft, (проверка генератора ходов)

Нашел более менее подходящую прогу и сразу нашел где копать у себя.
Прога написана на JavaScript.

Хотел поделиться, но не смог прикрепить вложимое.
библиотека для генерации ходов -https://github.com/jhlywa/chess.js
библиотека для визуализации доски - https://github.com/oakmac/chessboardjs/
AlexLaw вне форума   Ответить с цитированием
Непрочитано 28.09.2018, 15:07   #10
Remes_
 
Регистрация: 05.02.2011
Сообщений: 542
Сказал(а) спасибо: 52
Поблагодарили 1,192 раз(а) в 407 сообщениях
Страна:
По умолчанию Re: Perft, (проверка генератора ходов)

Я когда-то любительскую статейку писал про эту функцию. Использовал специальную консольную программу. Ссылку найти не смог, название помню - Sharper v0.17 by Albert Bertilsson. Там в ini файле прописать позицию, и программа будет перебирать в глубину. Вроде она даже умеет показывать количество ходов на каждый одиночный ход.
Ещё статья есть с несколькими примерами - https://www.chessprogramming.org/Perft_Results
Remes_ вне форума   Ответить с цитированием
Непрочитано 30.09.2018, 22:01   #11
AlexLaw
 
Регистрация: 08.06.2015
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Страна:
По умолчанию Re: Perft, (проверка генератора ходов)

Нашел.
Может кому пригодиться.
https://zipproth.de/jetchess/index.html

Последний раз редактировалось AlexLaw; 30.09.2018 в 22:08.
AlexLaw вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
chesspart (01.10.2018)
Ответ

Социальные закладки


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка бита jury_osipov Шахматное программирование 1 03.04.2011 23:46
Скорость генератора ходов Mathematic Шахматное программирование 19 18.12.2010 19:15