Pull to refresh

Comments 17

Звучит и выглядит интересно) хотелось бы поиграть. В своё время с огромным интересом переключился с шахмат на шоги и захватила меня эта игра надолго) интересно было бы посмотреть до чего дорастет в итоге ваша идея и насколько захватывающей будет.
Менюшки вырвиглазные. Хотя если б просто иное сочетание цветов — было бы лучше.
Посмотрел на ваш комментарий и понял, что игре правда не хватает разнообразия дизайна. Добавил возможность выбора цветовой темы в настройках, благо заготовки для этого были. Надеюсь, в них сочетания цветов получше)

Картинки
image

image
Очень достойная работа. Несколько вопросов по боту. Использовалась ли предварительная сортировка ходов в узлах и связанные с этим эвристики (например, Killer Heuristic)? Углублялись ли на форсированных ходах (при угрозах королю и бое фигур)? Использовались ли дополнительные отсечения, помимо «альфа-бета»? Вообще, что нибудь подобное этому?
Спасибо за вопросы!

  1. Да, ходы сортируются по эффективности. То есть ход, в результате которого убьют прогрессора (пешку) будет стоять после хода, на котором убьют агрессора (фигуры, которая ходит только по черным клеткам).
  2. Нет. Для реализации подобных фич нужно довольно сильно изменить механизм откатов ходов.
  3. Да, Zobrish hashing для работы transposition table. Были попытки реализовать iterative deepening и реализовать MTD(f), но они ничего не улучшали.
А как вы реализуете ограничение на «обдумывание» хода без Iterative deepening? Просто всегда на 6 ходов вперёд, независимо от того сколько по времени? Ну и Transposition table, они в основном для того чтобы при Iterative deepening по сто раз одно и тоже не считать. Разве нет?
Ограничений по времени никаких. А константа 6 подобрана таким образом, чтобы бот думал разумное время. У нас идея из transposition table помогла отсечь одинаковые позиции с одинаковыми границами.

Совсем недавно рассказывал, что поле боя в третьих героях шестигранное, что правильно, потому что у нас равнозначные направления. А поле большой карты из квадратиков

Я кстати при реализации движка третьих героев не стал заморачиваться с трехмерными координатами для гексаполя.

Для поля битвы шестигранники более актуальны, т.к. там ходы часто более короткие по расстоянию, плюс меньше анимаций делать. Не думаю что есть математическое обоснование правильности, иначе бы в последующих играх серии от него не ушли.

Могу пояснить доказательство, что выбор клеток с нулевой суммой координат единственно.


Если у нас есть два набора координат с суммой 0, указывающие на одну клетку, то у нас два набора для клетки {0,0,0}. Обозначим второй набор, как {X, Y, Z}. Тк у нас нет смещения по оси w, то X = Z. Ну а теперь можно найти, что Y = -X. А это как раз наш цикл.

Я не имею математического образования, но легко доказать, что перемещение в сторону отличается от перемещения по диагонали :) А на шестигранной сетке различий нет

Про это можно думать с другой точки зрения. У нас есть две степени свободы, т.к. третья координата будет равна минус сумме двух выбранных. А раз есть всего две степени свободы, то пространство двумерно.

То есть мы представляем координаты в удобном для нас виде, только и всего.
На самом деле, это просто замечательно, что хоть кто-то занимается ботами для чего-то отличного от классических Шахмат, Шашек, Го. Всего классического. Поле то не паханное.
Современные консоли поддерживают максимум 256 цветов, поэтому приходится работать с ограниченным набором: довольно грустно с точки зрения цветового дизайна.
Современные терминалы поддерживают true color.
проследите, скажем, как меняются координаты при перемещении по диагонали

Одна и координат меняется каждый раз на 1, а другая через одну клетку на один.
Кстати у вас верхний гекс в столбике с индексом 3 неправильно подписан, из-за этого я долго не мог сообразить, почему в этой диагонали правило не выполняется
Одна и координат меняется каждый раз на 1, а другая через одну клетку на один.
Это куда неудобнее релизовывать, чем с трехмерными.

Кстати у вас верхний гекс в столбике с индексом 3 неправильно подписа
Спасибо, что нашли, теперь должно быть правильно
Sign up to leave a comment.