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

Ответ
Опции темы
Непрочитано 07.06.2010, 16:41   #1
ThinkingALot
 
Регистрация: 15.03.2010
Сообщений: 1,874
Сказал(а) спасибо: 2,230
Поблагодарили 4,925 раз(а) в 1,366 сообщениях

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

По умолчанию Проект "Чайка"



Заготовка для движка (версия 0.1):
http://sourceforge.net/projects/gullchess/.
Пока играет где-то на 2600 - 2700 CCRL и поддерживает только контроли вида n'+0".

Сделал две версии: 01a - генерация ходов с помощью Magic и массивов атак. 01b - просто Magic. На AMD K8 версия 01a быстрее на 10-15%. У кого Core 2, i7 и Phenom, вы не могли бы сравнить скорость этих версий?
По идее, 01a должна быстро работать на компах с большим кэшем и медленной оперативной памятью, 01b - наоборот.
Benchmark работает так: запускаете в консоли движок, пишете "bench 11". Программа работает несколько десятков секунд и выдает nps.

Алгоритмы:
-Хэш в ФВ
-Пешечный хэш
-Шахи в ФВ
-SEE
-Нулевой ход
-История, Killer
-LMR
-Razoring
-Продления шахов

P.S. Весь код одним файлом, потому что
1) Так он быстрее грузится и компилируется.
2) Это облегчает навигацию по коду, если использовать полезную фичу Visual Studio: Клик правой кнопкой мыши->Outlining->Collapse to Definitions.

Тесты Чайки (Gull)
Вложения
Тип файла: zip Gull II.zip (260.8 Кб, 70 просмотров)
Тип файла: zip Gull R375.zip (263.1 Кб, 204 просмотров)
Тип файла: zip Gull 2.1.zip (301.6 Кб, 28 просмотров)
Тип файла: zip Gull 2.2.zip (350.0 Кб, 49 просмотров)
Тип файла: zip Gull 2.3.zip (351.3 Кб, 162 просмотров)
Тип файла: zip Gull 2.8 beta.zip (1.42 Мб, 196 просмотров)
Тип файла: zip Gull 2.8 beta and 2.9 alpha XP compatibility fix.zip (767.0 Кб, 66 просмотров)
Тип файла: zip Gull 3.zip (826.2 Кб, 271 просмотров)

Последний раз редактировалось ThinkingALot; 17.04.2014 в 19:32.
ThinkingALot вне форума   Ответить с цитированием
57 пользователя(ей) сказали cпасибо:
Непрочитано 11.01.2018, 21:37   #721
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Ребят как установить оболочку чайки подскажите пожалуйста?
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 11.01.2018, 21:42   #722
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

И ребят подскажите литературу для программирования шахматного движка и какой язык для этого надо выучить?
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 11.01.2018, 22:11   #723
sovaz1997
 
Регистрация: 08.11.2016
Возраст: 20
Сообщений: 397
Сказал(а) спасибо: 473
Поблагодарили 560 раз(а) в 224 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Russian Gamer, можно использовать книгу Евгения Корнилова для понимания основ Альфа-бета алгоритма и написания базовой части программы. Также, советую этот сайт: https://chessprogramming.wikispaces.com - на нем очень много исчерпывающей информации о программировании шахматных движков. Язык программирования - не принципиально, какой. Лучше тот, который более приближён к железу (C и C++). Можно и на других, конечно, если вы не хотите учить C/C++. Для генерации ходов советую писать Magic Bitboards (чтобы скорость движка была высокой). После этого путём тестирования вы можете постепенно улучшать движок, используя известные различные эвристики и свои идеи. Если хотите писать с нуля, то вполне реально написать движок уровня до 2000. Далее, думаю, будет труднее.

Ещё почитайте про UCI (протокол, созданный для подключения движка к оболочке).
sovaz1997 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Russian Gamer (11.01.2018)
Непрочитано 11.01.2018, 22:40   #724
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

А как проводится тест движка просто например в оболочке фрица включаешь в турнир свой движок и включаешь другие движки,или нужны какие-то доп настройки?
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 11.01.2018, 23:13   #725
sovaz1997
 
Регистрация: 08.11.2016
Возраст: 20
Сообщений: 397
Сказал(а) спасибо: 473
Поблагодарили 560 раз(а) в 224 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Russian Gamer, тест можно проводить с помощью LittleBlitzer, либо Cute-Chess CLI (там есть возможность запуска нескольких игр параллельно). Но до этого вам ещё рано, для начала надо написать базовую часть движка: генератор ходов, оценочную функцию и простейшую функцию перебора ходов.
sovaz1997 вне форума   Ответить с цитированием
Непрочитано 11.01.2018, 23:29   #726
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

sovaz1997,
Я пока не собираюсь писать свой движок я хочу попробовать улучшить движок Gull.
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 11.01.2018, 23:51   #727
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

sovaz1997,
Увы но при загрузке движков в LittleBlitzer,выдают ошибку и закрывает программу.
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 12.01.2018, 06:17   #728
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 42
Сказал(а) спасибо: 12
Поблагодарили 23 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Цитата:
Сообщение от Russian Gamer Посмотреть сообщение
И ребят подскажите литературу для программирования шахматного движка и какой язык для этого надо выучить?
Введение в шахматное программирование

И рекомендуется на досуге почитать подходящие темы на этом форуме
Уэф вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
LLLax (12.01.2018), Russian Gamer (12.01.2018), sovaz1997 (12.01.2018)
Непрочитано 12.01.2018, 06:27   #729
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 42
Сказал(а) спасибо: 12
Поблагодарили 23 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Цитата:
Сообщение от Russian Gamer Посмотреть сообщение
sovaz1997,
Я пока не собираюсь писать свой движок я хочу попробовать улучшить движок Gull.
С правами предыдущего автора у вас проблем не будет?
Уэф вне форума   Ответить с цитированием
Непрочитано 12.01.2018, 12:08   #730
pavel48
 
Регистрация: 17.10.2012
Сообщений: 1,466
Сказал(а) спасибо: 4,686
Поблагодарили 7,493 раз(а) в 1,183 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Gull.3.1_JV Free:

https://www.solidfiles.com/v/7aqaZn5RYGMMn

Последний раз редактировалось pavel48; 12.01.2018 в 14:57.
pavel48 вне форума   Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
byan_mivv (12.01.2018), chesspart (12.01.2018), LLLax (12.01.2018), vovakor (12.01.2018), whiteshark (12.01.2018)
Непрочитано 12.01.2018, 12:52   #731
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Уэф,
А какие проблемы могут быть с правами вон люди создают новые версии,в англ топике я нашёл новую программу LazyGull например.
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 12.01.2018, 14:38   #732
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 42
Сказал(а) спасибо: 12
Поблагодарили 23 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Цитата:
Сообщение от Russian Gamer Посмотреть сообщение
Уэф,
А какие проблемы могут быть с правами вон люди создают новые версии,в англ топике я нашёл новую программу LazyGull например.
Вообще-то есть Закон РФ от 23 сентября 1992 г. N 3523-I
"О правовой охране программ для электронных вычислительных машин и баз данных"


Цитата: "Статья 10. Исключительное право

Автору программы для ЭВМ или базы данных или иному правообладателю принадлежит исключительное право осуществлять и (или) разрешать осуществление следующих действий:

воспроизведение программы для ЭВМ или базы данных (полное или частичное) в любой форме, любыми способами;

распространение программы для ЭВМ или базы данных;

модификацию программы для ЭВМ или базы данных, в том числе перевод программы для ЭВМ или базы данных с одного языка на другой;"

Выделено мной. До нарушителей на английских топиках далековато, а вы, автор, и закон, ИМХО, находитесь в одном государстве. Я не предираюсь, а предостерегаю.

Последний раз редактировалось Уэф; 12.01.2018 в 14:49.
Уэф вне форума   Ответить с цитированием
Непрочитано 12.01.2018, 15:12   #733
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Уэф,
Спасибо за информацию хорошо тогда напишу свою программу на основе кода Gull.
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 12.01.2018, 15:31   #734
Guardian
 
Аватар для Guardian
 
Регистрация: 11.03.2010
Адрес: Russia
Сообщений: 550
Сказал(а) спасибо: 611
Поблагодарили 987 раз(а) в 368 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

@Уэф

Gull - open source
на open source это не распространяется, единственно, что не разрешено - это заниматься пиратством т.е. продавать чужой коммерческий продукт под своей маркой в "промышленных" масштабах без разрешения правообладателя

Т.е. грубо говоря единственное, что вы не можете - это основать производство "Windows" и продавать "Windows" под маркой "Окна"

Последний раз редактировалось Guardian; 12.01.2018 в 15:40.
Guardian вне форума   Ответить с цитированием
Непрочитано 12.01.2018, 20:43   #735
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Тест:
1.Gull 3 x64 syzygy +144/=237/-119 52.50% 262.5/500 +17
2.Gull 3.1JVx64 +119/=237/-144 47.50% 237.5/500 -17
Причём я заметил что Gull 3.1JV во всех моих тестах начинает бодро, он даже перекатывал основной Gull 3,но как-будто начинал уставать и неизменно уступал в тестах под конец.
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 12.01.2018, 21:01   #736
Russian Gamer
 
Регистрация: 15.08.2016
Возраст: 16
Сообщений: 68
Сказал(а) спасибо: 8
Поблагодарили 17 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Но у меня как-то странно сейчас просматриваю партии движки катали один и тот же вариант это нормально?
Russian Gamer вне форума   Ответить с цитированием
Непрочитано 12.01.2018, 21:12   #737
sovaz1997
 
Регистрация: 08.11.2016
Возраст: 20
Сообщений: 397
Сказал(а) спасибо: 473
Поблагодарили 560 раз(а) в 224 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Russian Gamer, это нормально, если не подключена дебютная книга
sovaz1997 вне форума   Ответить с цитированием
Непрочитано 15.01.2018, 06:25   #738
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 42
Сказал(а) спасибо: 12
Поблагодарили 23 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Цитата:
Сообщение от Guardian Посмотреть сообщение
@Уэф
Gull - open source
В зипе, выложенном автором, лицензионное соглашение отсутствует, и там нет прямого разрешения на любое использование кода. Факт публикации исходного кода таким разрешением не является - код может быть опубликован, например, с целью обсуждения, поиска недостатков и замечаний.
Значит, по умолчанию, действует Закон.

Или я неправильно понимаю Закон?
Уэф вне форума   Ответить с цитированием
Непрочитано 15.01.2018, 13:33   #739
Guardian
 
Аватар для Guardian
 
Регистрация: 11.03.2010
Адрес: Russia
Сообщений: 550
Сказал(а) спасибо: 611
Поблагодарили 987 раз(а) в 368 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Лицензия для Gull

https://github.com/basil00/Gull/blob/master/LICENSE
Guardian вне форума   Ответить с цитированием
Непрочитано 15.01.2018, 14:04   #740
Уэф
 
Аватар для Уэф
 
Регистрация: 17.09.2013
Сообщений: 42
Сказал(а) спасибо: 12
Поблагодарили 23 раз(а) в 13 сообщениях
Страна:
По умолчанию Re: Проект "Чайка"

Цитата:
Сообщение от Guardian Посмотреть сообщение
С одной стороны я вижу отсутствие какой-либо лицензии в исходниках от автора, в последнем его сообщении от 12.06.2015, 00:00 на странице Тынц! дословно:
"Нет, проект по-прежнему заморожен, и разморожен будет нескоро (если вообще будет). " - нет и намека на передачу прав.

Затем где-то в интернете появляется лицензия на его программу. У меня возникает логичный вопрос:

А автор в курсе наличия в интернете этой лицензии?

Последний раз редактировалось Уэф; 15.01.2018 в 14:07.
Уэф вне форума   Ответить с цитированием
Ответ

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


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

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

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

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