Pull to refresh

Comments 9

А чем не устроило описание наподобие регулярных выражений?
Просто сложные ходы можно попытаться описать отдельно. Например:
player-turn player-king-unmoved east empty-unattacked empty-unattacked (?: (1:player-pawn-unmoved)) \1 west any any

для короля: anyDir (empty|enemy-capture)-unnattacked
def Leap = empty|(enemy-capture?)
def Ride = empty* Leap
ферзь: anyDir Ride
Слон: digDir Ride
Ладья: crossDir Ride
Конь: (forward any forwardDiag Leap) | (backward any backwardDiag Leap)|…
Пешка: forward empty lastline-promote | forwardDiag enemy-capture | secondline forward empty empty trigger-fastmove |
(?: west (1:enemy-fastmove)) northwest any (?:\1-capture) | (?: east (1:enemy-fastmove)) northeast any (?:\1-capture)
Слишком сложно получается (я уже всю голову на эту тему сломал). Пока речь идёт просто о причудливых шахматных перемещениях, типа Chu Shogi, всё более-менее нормально (хотя там тоже чудес хватает). Шашки и, например, Фанорона уже заставляют напрячься. Когда дело доходит до манкал и "Болотуду", начинаешь рвать на себе волосы. Ну а как выразить «регэкспами» правила Го или, например "Ордо" или "Ритмомахию", я просто не представляю. Отсюда родилась идея обогащения ходов. Описать всё что описывается просто DSL-ем (да хоть и регэкспами), создав заготовку с простейшим перемещением фигур, а всю сложную логику вынести в JavaScript-расширения (благо писать их легче чем ZoG-расширения на C++).
Отказываться от чего-то, во то вложено много времени и сил, и вправду очень тяжело. Но, похоже, был сделан правильный выбор в пользу разработки своих компонентов — разжав пальцы, сбросили и оковы (судя по списку запланированных опций — много оков).
Успехов в дальнейшей эволюции! И мне кажется, что создателям Jocly про это тоже можно было узнать.
Спасибо. Пока нет работающего прототипа, им нет смысла писать.
Когда получится что-то работающее, конечно попробую связаться.
Всегда с интересом читаю статьи GlukKazan
Желаю удачного развития проекта.
Спасибо, Вадим. Ваша статья про Пулук мне тоже понравилась.
Не хотите продолжить? Рекомендую Шен.
Хм… что-то мой ответ не отправился. Повторю.

Я уже давненько думаю о реализации Дальдозы. А с недавнего времени еще и Сиджы. Ее правила я узнал еще в детстве. Есть возможность сделать и наконец-то поиграть :)
Дальдозу я сделал, но вроде не совсем правильно. Вроде бы, при активации фигуры должны оставаться на месте, но у меня бред какой-то получался. Сделал, чтобы двигались на единичку. Хорошая игра, молодцы викинги. Сиджа тоже ничего.
Sign up to leave a comment.

Articles