Бесплатно, без рекламы, с открытым исходным кодом и еще много всего интересного!

Двадцать лет назад я написал версию FreeCell, в которой для каждого перемещения требовался только один клик. Ведь карты знают, куда им идти, верно? Я получил серьезный отпор от моих друзей, зависимых от FreeCell, но сегодня я заметил, что многие версии работают таким образом. Учитывая, насколько сильно изменился Интернет, я недавно переписал его как прогрессивное веб-приложение (PWA) и написал об этом здесь, на Среднем, в которое вы можете поиграть здесь.

Но почему не Паук? Логика немного сложнее, с перевернутыми картами, несколькими колодами, разными правилами в зависимости от того, сколько мастей используется. Однако оказалось, что для этого потребовалось всего 310 строк кода против 395 во FreeCell. (Общедоступно на github.com/jcoonrod, а вы играете здесь).

В моей предыдущей статье описывались основы простого HTML и процедурного подхода JavaScript: генерировать карты как SVG, «раздавать их», добавляя их как дочерние узлы.

Ключом к тому, чтобы сделать ее играбельной и увлекательной, является определение приоритета того, куда должна перемещаться стопка карт, когда вы нажимаете на ее верхнюю карту. Ответ: сначала посмотрите, может ли он стечь на существующие стеки — сначала вправо (а затем вокруг), а если нет, посмотрите, есть ли открытый каскад, куда он может пойти.

Наслаждаться!