|
Последнее обновление 27 June 2012 (16 августа 2018 поменял хостинг)
На главную
Добавил код Ифрита в репозиторий bitbucket.org
Ifrit source add to bitbucket.org
Ифрит (Ifrit) - шахматный
UCI движок написанный на языке С++.
Jim Ablett's Winboard Chess Projects
Ifrit m1.8 компиляция от Jim Ablett (Jim Ablett compiles: Ifrit m1.8-JA)
Windows/Linux/Android 64/32
Rating in CCRL 40/40(June 23, 2012):
Ifrit j2.9 2084 (+37 -37)
Ifrit j3.6 64-bit 2211 (+32 -32)
Ifrit j3.8 64-bit 2161 (+39 -39)
Ifrit j4.2 2115 (+34 -34)
Ifrit j4.3 2156 (+33 -33)
Ifrit m1.5 2375 (+28 -28)
Ifrit m1.6 2328 (+40 -40)
Ifrit m1.7 2429 (+68 -67)
Ifrit m1.8 2386 (+80 -82)
Rating in CCRL 40/4(May 14, 2012):
Ifrit m1.5 64-bit 2369 (+30 -30)
Ифрит представлен на сайтах:
SDchess - бесплатные шахматные программы (Free Chess)
WBEC Newspage
RWBC-chess Ratings
Ифрит участвует в битве движков ChessWar, который проводит Olivier Deville
на сайте ChessWar
WinBoard forum
Ifrit m1_5 in OpenWar
Games group G(completed)
Final standings after round 11
Games group F
Final standings after round 11
Ifrit j4-3_x64_ja - OpenWar 08(completed)
Crosstable OpenWar 8th
Ifrit m1-5_x64_ja - OpenWar 9th Edition
OpenWar 9th Edition starts 15.11.2011 at 10:00 french time.
List of participants
Pairings
Crosstable OpenWar 9th
Ифрит играет в турнирах которые проводит Graham Banks
Ifrit j2.6 - 17th Amateur Series Division 8(completed)
17th Amateur Series Division 8
Ifrit j3.5 - 21th Amateur Series Division 7(completed)
21th Amateur Series Division 7
Ifrit j3.6 - 22nd Amateur Series Division 7(completed)
22nd Amateur Series Division 7
Ifrit j3.9 - 24th Amateur Series Division 6(completed)
24th Amateur Series Division 6
Ifrit j4.2 - 25th Amateur Series Division 6(completed)
25th Amateur Series Division 6
Ifrit j4.3 - 26th Amateur Series Division 6(completed)
26th Amateur Series Division 6
Ifrit j4.3 - 27th Amateur Series Division 6(completed)
27th Amateur Series Division 6
Ifrit m1.5 - 31st Amateur Series Division 5(completed)
31st Amateur Series Division 5
Ifrit m1.5 - REDSHIFT MYSTERY(completed)
REDSHIFT MYSTERY
Ifrit m1.8 - INFESTATION OF THE NANOBYTES(completed)
INFESTATION OF THE NANOBYTES
Ifrit m1.8 64-bit - 39th Amateur Series Division 6(completed)
39th Amateur Series Division 6
UCI движок Ifrit
В серии "с" используется 0х88 генератор ходов.
В серии "b" используется bitboard генератор ходов.
В серии "j" используется bitboard генератор ходов + объектно-ориентированное программирование (object-oriented programming).
(объектно-ориентированное программирование до версии j3 и начиная с версии j3.8)
В серии "m" используется magic-bitboards генератор ходов.
Типы игры:
При игре обычно использую 256 Мб хеш-таблицу.
1. Фиксированная глубина. (Fixed depth)
Возможность задавать фиксированную глубину поиска в полуходах.
2. Блиц партии.(Blitz game)
Тестируем с контролем 1 мин + 1 сек и 5 мин + 1 сек на партию.
3. Бесконечный анализ.(Infinite analysis)
Работа в режиме анализа позиции. Вы делаете ходы, а движок оценивает позицию.
Алгоритм:
1. MiniMax. Основной перебор оптимизирован альфа-бета отсечением. При правильной реализации он не вносит дополнительной погрешности.
2. Late move reductions.
3. Hash-table(хеш-таблица).
4. Mvv/lva(most valuable victim / least valuable aggressor). Сортировка взятий наиболее ценная жертва/наименее ценный агрессор.
5. Killer heuristic(эвристика убийцы). Это просто использование лучшего хода для данной глубины.
6. Quiescence search (форсированный перебор).
На максимальной глубине основного перебора мы продолжаем цепочку взятий, либо начинаем, если фигура под боем.
Взятия считаются до конца.
7. Extensions(продления).
В случае шахов глубина этой ветки увеличивается на полуход.
8. Null move(нулевой ход). Редукция 4.
9. Delta pruning используем в quiescence search.
10. Futility pruning.
11. Razoring.
12. History heuristic.
В графической оболочке Арена (автор
Martin Blume) www.playwitharena.com
можно поиграть с Ифритом.
Программа находится в процессе разработки.
Программу тестируют: Dragon777, Сергей Зеркалов, Anechka008.exe, GreKo.exe, Murka_2_w32.exe, fruit_21.exe.
Обратите внимание на исходники. Они хорошо прокомментированы. И те, кто хотят написать
шахматную программу, найдут в них пример реализации. Я
стремлюсь не только к эффективности,
но и к прозрачности кода. Пытаюсь сделать максимально понятные
и доступные исходники.
Дневник писал для себя, но так как он получился забавным,
то решил его выложить.
Оставляйте сообщения в гостевой и пишите по нижеуказанному
адресу.
E-mail: Andchess2006@yandex.ru
|