Pull to refresh

Comments 32

Шашек много!
О да :)
Я как-то тоже интересовался. В частности шашками на нестандартных досках. Сделал даже proof of concept одной.
Неплохо. Но гексагональными досками я пока не проникся. Рисовать их сложно, а чего-то нового в геймплей вроде не привносят (хотя я могу ошибаться). Абалон вот хочу сделать.
Мы как-то в общаге на таких досках — на троих, четверых и шестерых развлекались.

В плане «можно ли тут что-нибудь не сильно сложное и при этом не сильно простое придумать».
В общем, не придумались у нас «100 Полей»
Вот моя (довольно вольная) интерпретация «ста полей».
Правда, в процессе разработки это мигрировало в сторону Аватара.

В рамках данного определения игра "Отелло" (она же реверси) тоже является шашками! Взятие в ней не просто обязательно, а необходимо для совершения хода! Отсутствие ходов завершает игру — с поправкой, что оно должно быть у обоих противников.

Есть разница. В Реверси (насколько я помню) нельзя делать «тихий» ход. А раз все ходы ударные — нет приоритета ударных ходов. Суть шашек (на мой взгляд) в безусловном приоритете ударных ходов по отношению к тихим.
Ну и самое главное. В Реверси/Отелло партия не заканчивается когда один из игроков не может ходить. Партия заканчивается когда пасуют оба и побеждает захвативший большую территорию. Это сложно назвать простым условием завершения.

Что касается тихих ходов, Скирюк как-то раз объяснял разницу, но я всё время путаю Реверси и Отелло. В какой-то из них если нет результативного хода — принудительный пас (вроде в Отелло), а в другой можно ходить в любое место рядом со своей фигурой (Реверси).
UFO just landed and posted this here
Вероятные 6 ходов подряд как-то сурово.
UFO just landed and posted this here
Тогда слишком слабо. Не так часто бывает возможность взять сразу шесть фигур, значит соответствующая грань кубика будет «срабатывать» очень редко. Конечно, в такой интерпретации это более жизненно чем то как я понял в начале, но всё равно смысл кубика от меня ускользает.
Забыли главную игру детства «Чапаев»

Ну и уголки можно было вспомнить
Слов нет, игры хорошие, но немного «не в формате» того о чём написано в статье. Уголки, Хальма — игры переходов, про них как нибудь отдельно стоит написать. Чапаев — вообще особая тема. Там физический движок нужен.
В двумерном пространстве с круглыми шашками, как я понимаю, довольно просто можно соорудить. Силу «щелчка» задавать вектором -растяжкой. Ещё разрушаемые препятствия по полю поставить, и будет «Ангри Чапай» :)
Сделать то всё можно, просто это совсем другой класс игр. Чапаев — это больше про биллиард чем про шашки.
Обожаю шашечные варианты еще с детства. Причем варианты — даже больше «обычных» Русских — в них на том уровне, до которого я дошел, стало как-то скучно играть. Т.е. против новичков — слишком просто, против профессионалов — бесполезно, а со своим уровнем — именно скучно. Зато модификации а-ля «поддавки» оказались куда более занимательны. Особенно, после того, как стало понятно, что «поддавки» — игра весьма противоречащая первоначальному впечатлению. Т.е. казалось бы: если основная задача избавиться от шашек, значит, то нужно стремиться отдать свои шашки в как можно большем кол-ве. Ан нет…

Когда открыл для себя «Ставропольские» и «Столбовые» — это был вообще переворот в сознании. А уж когда мы скрестили ставропольские и столбовые — это вообще был сюр. Впрочем, таким же сюром оказались и «Столбовые поддавки». С первых партий вообще было непонятно, что на доске происходит и как в такое играть. После десятка партий начало вырисовываться хоть какое-то понимание.

Еще интересны всякие модерновые варианты а-ля «плоские» Харцдаме, Дамео, или «столбовые», как, например, Эмерго. Это — именно шашечные игры, в духе шашечной традиции: бой через «перепрыгивание», цель — оставить противника без ходов и так далее.

Если же уйти в «около-шашечное пространство», тогда есть еще такие великолепные игры, как Камелот или Сальта. В каждой есть определенные шашечные элементы, как, например, перепрыгивание через чужие фигуры.
Харцдаме — есть. Дамео в планах. Вообще, игры добавляются довольно быстро. Это сильная сторона Dagaz — новую игру создать относительно легко, гораздо легче чем в Jocly, например. Слабое место (пока) — AI. Всё никак не могу отладить нормального бота.
Да-да, когда есть платформа, то имплементация новых игр сводится к программированию логики и GUI. Но ИИ для шашек «на коленке» сделать, действительно, не так просто. Я бы даже сказал, что мне для шахмат что-то такое наваять было проще, чем для шашек (хотя своего бота для шахмат я так и не выпустил). С одной стороны мобильность в шашках обычно ниже, чем в шахматах… С другой стороны — в шахматах позицию оценивать зачастую проще в виду разного веса фигур.

У Дамео есть еще шестиугольный вариант Гексдаме. Правда, в него я не играл, но Кристиан Фрилинг (автор Дамео) как-то упоминал, что ему Гексдаме нравилось больше. Если мне память не изменяет, разговор был эдак лет 7 назад. Автор Харцдаме, кстати, был вдохновлён правилами Дамео, хотя по сути скорее ближе к Туреским шашкам. Но такой вот «твист» с разворачиванием доски на 45 градусов создал совершенно новые тактические и стратегические маневры.
На самом деле, всё еще проще. Программирование новой игры сводится к рисованию ресурсов и описанию в JS «нестандартной» логики. Стандартная логика «зашита» в ядро и программируется ZRF (вроде такого). ZRF напрямую не используется, а транслируется в JS специальной утилитой (получается такое). В дальнейшем, оттранслированное (в идеале) больше руками не правится. Весь смак в программировании нестандартной логики, кстати максимально используемой повторно (например, шашечное "правило большинства").

UI меняется совсем редко, когда требуется что-то новое в интерфейсе (например, в Фанороне потребовалось показывать потенциальные взятия, иначе было непонятно). А AI вообще ортогональное направление, оформлен ботами. Тоже с целью максимального повторного использования. Сейчас тружусь над минимаксом, пока даже без альфа-бета отсечения. Проблемы, в основном, с отладкой. Ещё есть "Монте-Карло", но тоже пока плюшевый, да и не для всех игр подходит.
ZRF — это который от Zillions of Games? Я последние пять лет отошёл от игрового мира :) В своё время я думал о написании своего мета-языка для описания игр, по аналогии с ZoG-ом, но так руки и не дошли. В результате просто прописывал напрямую логику в джаваскрипте на клиентской стороне и в PHP на серверной. Когда дело касалось одного семейства игр, то все было действительно просто. Ну, в смысле, разница в логике/GUI в шашечных играх — минимальна. Хотя со столбовыми шашками я в своё время повозился, чтобы добиться удобного отображения (со столбовыми шахматами, Таврелями, было еще сложнее, потому что увидеть цвет «торца» фигуры не достаточно). Или взять какую-то трехмерную «экзотику» типа Акрона, где как бы симулируется результат падения шариков.

Для шашек Монте-Карло скорее всего слабо подходит. Из моего опыта, МК вообще плохо подходит для игр, в которых возможны бесконечные циклы ходов. Т.е. да, конечно, есть всякие ограничивающие правила «50 ходов» или «трехкратного повтора позиции», но это довольно искуственные правила и простой МК с таким плохо справляется. Я в свое время часто использовал гибрид: ходы в начале партии выбирал с помощью МК, а ближе к концу партии переключался на альфа-бету.
Шустро! :) Сейчас опробую :)
Ну пока как в анекдоте: «Быстро Качественно Недорого» — выберите любые два критерия. Завтра буду править кернельный баг.
Основное отличие любительских проектов от коммерческих как раз и состоит в том, какой пункт в конце-концов решают опустить… в большинстве случаев :)
Сегодня утром внезапно понял, в чём там было дело. Ошибка проявлялась в том, что фигура не превращалась (вернее превращалась во view, но не в model) при выполнении «тихого» хода. При этом, баг никак не проявлялся, например, в «Русских шашках» (я проверил). При этом, ни те ни другие фактически не использовали никаких расширений (баг в Dameo воспроизводился при отключенных maximal-captures и deferred-captures), используя только базовую логику ZRF. При взгляде под таким углом, всё стало очевидным. В Dameo добавился ещё один тип «тихого» хода:

Групповой ход
(define dameo-shift (
  $1
  (while (and friend? (piece? Man))
      cascade 
      $1
  )
  (verify empty?)
  add
))

Кстати, если закомментировать строку с cascade, вместо «толкания» получится «перепрыгивание». Я взял его из старой заготовки, не особо заморачиваясь. Сравним с обычным тихим ходом:

Одиночное перемещение
(define checker-shift (
   $1 (verify empty?)
   (if (in-zone? promotion)
      (add King)
    else
      add
   )
))

Конечно же, я забыл про превращение, при выполнении группового хода! Но это ещё не всё. В случае, если «перепрыгивать» некого, групповой ход фактически дублирует одиночный! При этом, и тот и другой формируют полностью одинаковую текстовую нотацию, поскольку в текущей версии, в нотацию хода не попадает информация о превращении фигур. Контроллер, в такой нештатной ситуации, повёл себя не вполне адекватно, передав в model один ход, а во view совсем другой.

В общем, баг конечно не кернельный, но весьма забавный и поучительный. Чему он может поучить? Двум вещам. Во первых, не надо торопиться. Во вторых, в моей реализации Dameo для Zillions завалялся роскошный баг, связанный с не превращением фигур при выполнении группового хода, не правленный с мая этого года.

Ах да, сам bugfix.
Рад, что помог его обнаружить :) Забавно вышло, что я «нарвался» на него в первой же партии, в которой я фигуры двигал практически случайным образом.
О, да, столбовые шашки в своё время очень нравились. Тот неловкий момент, когда опасно есть много шашек противника :) И битва башен под конец, когда в них уже свои и чужие вперемешку — угар.
К сожалению, в моей реализации, видно только две верхние шашки в башне. Не очень удобно играть. Пытался рисовать полосками, но как-то некрасиво получалось, с учётом того, что обычно там шашек не очень много, но вообще-то может и до 24 набиваться.
И в противовес ему — весьма выгодно грамотно отдать свои, чтобы потом сковырнуть маковку и получить приличный танк! Размен в столбовых уже был весьма невыгоден.
весьма выгодно грамотно отдать свои, чтобы потом сковырнуть маковку и получить приличный танк

Когда играешь против новичка и они впервые видят этот тактический ход — практически всегда реакция «Вау!». Потом уже, с опытом, начинаются такие тактические манёвры, где противники ходят вокруг да около, выстраивая такие цепочки «отдавания» своих шашек ради создания башни.

В этом тактическом манёвре, кстати, у Столбовых шашек есть что-то от поддавков. Скорее даже по ощущениям, чем по конкретным ходам.
В шашках вообще много от поддавков. Вся комбинационная игра построена на том как правильно «поддать» свою шашку.

Пример

Sign up to leave a comment.

Articles