История версий программ Джин & Ифрит

на главную страницу


История версий часть 2

 07.08.2022

Добавил сайт на github.com
Ifrit add to github.com

 13.07.2022

Прошло всего то два года и я решил разобраться почему же не работает ссылка на репозиторий bitbucket.org :)
Ifrit source add to bitbucket.org

Оказалось, что уже с "1 июня 2020 года будет отключена вся связанная с Mercurial функциональность,
в том числе убраны специфичные для Mercurial API, а также удалены все репозитории Mercurial."
В том числе и мои наработки. А там была вся история разработки моего движка!
Это было бы катастрофой для проекта если бы я не продублировал почти все на сайте.
Понятно, что bitbucket.org показал что он ненадежный и безответсвенный партнер.
Ведро оказалось дырявым.
Размещать в нем я больше ничего не буду и денег ему не дам.

 21.03.2021

All Ifrit Все доступные на сайте версии Ифрита.

BIN
bin(GENIE)
bin_ifrit(Ifrit_C exe)
bin_ifrit_b(Ifrit_b exe)
bin_ifrit_j(Ifrit_j exe)
bin_ifrit_m(Ifrit_m exe)
Jim_Ablett_compiles(Ifrit exe)

SRC
src_ifrit(GENIE, Ifrit_C src)
src_ifrit_b(Ifrit_b src)
src_ifrit_j(Ifrit_j src)
src_ifrit_m(Ifrit_m src)

src Strelka_2_0 by Jury Osipov in January 2008
Strelka_2_0

 17.10.2010

Ifrit_j3_7
Подправил Futility pruning.
Подправил распределение времени.

Исходники Ifrit_j3_7(140Kb)
Ifrit_j3_7(96Kb)

 28.11.2010

Ifrit_j3_8
Отказался от идеи переписать код на ассемблере.
Начал переход на объектно-ориентированный код(object-oriented programming).
Добавил классы внутренней доски и списка ходов.

Надеюсь, что сила игры программы не упала.

Исходники Ifrit_j3_8(135Kb)
Ifrit_j3_8(96Kb)

 12.12.2010

Ifrit_j3_9
Переделал все пространства имен в классы.

Сила игры почти без изменений.

Исходники Ifrit_j3_9(133Kb)
Ifrit_j3_9(96Kb)

 25.12.2010

Ifrit_j4_0
Заменил указатели(pointer) на ссылки(reference).
Остался один. Использую в хеш-таблице(class Hash).
Переписал функции обрабатывающие команды в формате UCI протокола.
Они расположены в модулях Go.cpp, Chess_bitboard_FEN.cpp, Protocol_UCI.cpp.

Сила игры почти без изменений.

Исходники Ifrit_j4_0(133Kb)
Ifrit_j4_0(98Kb)
Ifrit_j4_0 Jim Ablett compiles(1268Kb)

 4.1.2011

Ifrit_j4_1
Убрал модули Structure.h и Util.h.
Продолжаю совершенствовать структуру классов.
В очередной раз подправил razoring.

Исходники Ifrit_j4_1(129Kb)
Ifrit_j4_1(99Kb)
Ifrit_j4_1 Jim Ablett compiles(476Kb)
Ifrit_j4_1 Linux builds added. Jim Ablett compiles(1279Kb)

 16.1.2011

Ifrit_j4_2
Убрал ui64.
Подправил архитектуру модулей.
Продолжил совершенствование классов.

Переписал поиск:
Привел к более тестируемому виду.
Расширил применение lmr.
Подправил условие пересчета в pv варианте.
В очередной раз подправил razoring.

Исходники Ifrit_j4_2(127Kb)
Ifrit_j4_2(100Kb)
Ifrit_j4_2 Jim Ablett compiles(1278Kb)

 6.2.2011

Ifrit_j4_3
Изменил распределение времени на ход.
Переписал функцию экстренного выхода.
Теперь не должно быть просрочек времени(no loss on time).

Исходники Ifrit_j4_3(127Kb)
Ifrit_j4_3(100Kb)
Ifrit_j4_3 Jim Ablett compiles(1277Kb)

 9.9.2011

Ifrit_j4_4
Привел в соответствие имя класса и заголовочного файла (принцип как в java).
Распределил константы по пространствам имен.
Разбил два больших класса(позиция и список) на множество маленьких.
Поля классов "позиция" и "список ходов" снова сделал структурами.
Отредактировал комментарии в заголовочных файлах.
Отредактировал оценку.
Добавил эвристику истории.

Исходники Ifrit_j4_4(134Kb)
Ifrit_j4_4(100Kb)
Ifrit_j4_4 Jim Ablett compiles(923Kb)

 18.9.2011

Ifrit_m1f
Генератор ходов переписал на magic-bitboards.
Поправил коэффициенты оценки.

Исходники Ifrit_m1f(141Kb)
Ifrit_m1f(100Kb)

 19.9.2011

Ifrit_m1_1f
Добавил мобильность фигур(mobility) и атаку на короля.
Поправил futility.
Поправил коэффициенты оценки.

Исходники Ifrit_m1_1f(140Kb)
Ifrit_m1_1f(100Kb)

 21.9.2011

Тестеры нашли ошибку инициализации magic-bitboards в некоторых ситуациях.
Отдельное спасибо Graham Banks.

Заменил Ifrit_m1 на Ifrit_m1f и Ifrit_m1_1 на Ifrit_m1_1f (fixed) .

 23.9.2011

Ifrit_m1_2
Оптимизировал по скорости поиска.
Отказался от классов.
Поправил оценку.

Исходники Ifrit_m1_2(137Kb)
Ifrit_m1_2(98Kb)

 26.9.2011

Ifrit_m1_3
Изменил сортировку ходов.
Изменил оценку позиции.
Поправил поиск.

Исходники Ifrit_m1_3(138Kb)
Ifrit_m1_3(100Kb)

 28.9.2011

Ifrit_m1_4
Переписал генератор взятий.
Переписал детектор шахов.
Переделал delta pruning.
Добавил LMR в корень.

Исходники Ifrit_m1_4(138Kb)
Ifrit_m1_4(98Kb)
Ifrit_m1_4 Jim Ablett compiles(567Kb)

 20.10.2011

Ifrit_m1_5
Поправил оценку.
Поправил LMR.
Поправил futility pruning.

Исходники Ifrit_m1_5(139Kb)
Ifrit_m1_5(99Kb)
Ifrit_m1_5 Jim Ablett compiles(579Kb)

5.2.2012

Выложил "Ifrit. История разработки. Часть 8".


 9.5.2012

Ifrit_m1_6
Поправил константы в оценке.
Отключил печать промежуточных результатов. Ради экономии времени в блице.
Включил razoring.
Пытаюсь реализовать принцип – каждой эвристике по модулю.
В заголовочных файлах добавил описание эвристик из википедии.
Привел в соответствие имя модуля имени эвристики.
Привел в соответствие имя пространства имен (служит вместо класса) и имя модуля.

Исходники Ifrit_m1_6(148Kb)
Ifrit_m1_6(99Kb)

 10.5.2012

Ifrit_m1_6_JA
Jim Ablett compiles Ifrit m1.6
Windows/Linux/Android 64/32
Whats New: (JA builds)
1. Ported source code to GCC.
2. New Android compile

Ifrit_m1_6 Jim Ablett compiles(1739Kb)

 27.5.2012

Ifrit_m1_7
Доработал модули работающие с UCI протоколом.
Отключил razoring.

Исходники Ifrit_m1_7(162Kb)
Ifrit_m1_7(99Kb)

 28.5.2012

Ifrit_m1_7_JA
Jim Ablett compiles Ifrit m1.7
Ported source code to GCC.
Windows/Linux/Android 64/32

Ifrit_m1_7 Jim Ablett compiles(1370Kb)

 12.6.2012

Ifrit_m1_8
Поправил поиск, таблицу перестановок, вывод счета.
Множество мелких изменений в модулях:
search_root
search
transposition_table
iterative_deepening
Включил razoring.

Исходники Ifrit_m1_8(163Kb)
Ifrit_m1_8(100Kb)

 15.6.2012

Ifrit_m1_8_JA
Jim Ablett compiles Ifrit m1.8
Ported source code to GCC.
Windows/Linux/Android 64/32

Ifrit_m1_8 Jim Ablett compiles(1379Kb)

 23.6.2012

Добавил код Ифрита в репозиторий bitbucket.org
Ifrit source add to bitbucket.org