Ръководство

Сорс код за домино: правила, CPU противници и 58 теста, обяснени

Какво съдържа пакетът Pip Club Dominoes, кои правила играе, къде се сменят текстовете и плочките и какво не включва.

Графика за Pip Club Dominoes: енот, лисица и черна котка с суичъри се усмихват около кръгла маса с три плочки домино на залез.

Сорсният код за домино изглежда прост, докато не проверите граничните случаи. Кой започва, когато никой няма дубъл? Какво става, когато купчината е празна и двамата играчи пропускат? Как се смята резултатът в края на блокиран рунд? Шаблон, който отговаря на тези въпроси в кода и ги доказва с тестове, струва повече от този с по-красиви плочки. Pip Club Dominoes, нашият шаблон с двойна шестица, включва 58 автоматизирани теста, които покриват правилата, компютърния противник, разположението на масата, записа и 14-те превода.

Това ръководство обяснява кои правила играе играта, как е организиран пакетът, какво можете да смените с текстов редактор и какво изисква компилиране, как да я хоствате и какво позволява лицензът. Имената на файловете идват от илюстрираното ръководство за купувача, което се доставя с артикула.

Едно нещо трябва да знаете преди всичко друго: Pip Club се играе срещу компютъра. Няма онлайн режим и няма режим за двама играчи на едно устройство.

Правилата, които играе този сорс код за домино

Правилата са мястото, където шаблоните за домино се различават най-много, затова ги сверете с това, което очакват играчите ви. Pip Club играе класическа игра с блокове с двойна шестица, един играч срещу един компютърен противник.

  • 28 плочки от 0 до 6. Всеки играч получава по 7, а останалите 14 остават в купчината (boneyard).
  • Най-високият дубъл започва. Ако няма дубли, започва най-високата сума, а при равенство – най-високата половина.
  • Масата винаги има два края, A и B. Плочката трябва да съвпада с край, а нула съвпада с нула.
  • Дублите може да се поставят напречно, но никога не разклоняват и никога не дават допълнителен ход.
  • Ако няма съвпадение, теглите по една плочка, докато можете да играете. Ако купчината е празна и няма съвпадение, пропускате.
  • Domino (пълно изиграване): който изчисти ръката си, записва сумата на останалите в ръката на противника.
  • Lock (заключване): два поредни пропуска при празна купчина заключват масата. По-ниската сума печели разликата, а при равни суми е реми.

Quick Round (бърз рунд) свършва след един рунд. Points Match (мач до точки) играе рундове, докато някой достигне 50 или 100. Кампанията има 9 срещи в 3 глави, по една на всяко място за събиране, а всяка победа носи печат.

Какво има в пакета

Играчите се изправят срещу трима компютърни противници със собствена личност: Rico, енотът диджей, Faísca, лисицата скейтър, и Nix, котката художник, всеки на Easy (лесно), Normal (нормално) или Hard (трудно). Плочките, които могат да се играят, светят, масата показва къде ще падне плочката, а подсказката предлага ход. Има три места за събиране (Rooftop (покрив), Skate Park и Midnight Arcade), шест колекционерски комплекта плочки, печати от кампанията и статистика. Работят мишка, докосване и клавиатура.

  • game/: готовата за хостване версия, с index.html, pip.config.js, modules/, lib/, assets/ и licenses/.
  • game/lib/phaser.js: Phaser 3.90.0, четим, по лиценз MIT.
  • source/: редактируемият TypeScript, графиката, музиката, преводите и автоматизираните тестове.
  • documentation/index.html и DOCUMENTATION.html: ръководството за купувача на 14 езика, което се отваря офлайн.
  • THIRD-PARTY-LICENSES/: известията за Phaser и шрифта Barlow Condensed.

Графиката и музиката са оригинални активи на продукта, лицензирани на купувача заедно с артикула. Интерфейсът е на 14 езика и следва езика на браузъра; няма записан глас, така че всяка реплика на противника следва избрания език.

Вижте Pip Club Dominoes: демо, ръководство и цена

Промяна без компилиране: pip.config.js

До index.html стои pip.config.js. Отворете го в произволен текстов редактор, сменете стойност, качете файла и презаредете. Там има три настройки.

  • title: заглавието в раздела на браузъра.
  • saveKey: името, под което се пази записът. По подразбиране е pip-club.
  • defaultLanguage: стартовият език. Ако е празен, играта следва браузъра.

Не променяйте saveKey на жив сайт. Друг ключ кара играта да пренебрегне съществуващия прогрес и да започне нов запис, което е полезно за второ копие и болезнено при обновяване.

Къде са текстовете, графиката и плочките в сорса

  • Текстове и преводи: source/src/ui/i18n.ts и source/src/ui/locales/.
  • Графика на героите, сцените и логото: source/src/assets/club/.
  • Музика: source/src/assets/music/.
  • Цветове на плочките: source/src/art/palette.ts и source/src/art/tileArt.ts.
  • Тестове: source/tests/.

Типичната работа по брандиране върви в този ред: логото и графиката на сцените в assets/club/, после палитрата на плочките, после текстовете в локалите. White label е разрешен, така че вашата марка може да замени нашата. Промяната на играта на компютъра или на правило е по-дълбока работа; пуснете тестовете преди и след нея, защото покриват и двете.

Ако изграждате малък каталог с настолни игри, два други наши шаблона подхождат до този.

Ludo Cats: Ludo с котенца, компютър на три нива или приятели на едно устройство

Boba Club: солитер Klondike с кампания от 12 раздавания

Компилиране отново след редакция на TypeScript

Папката game/ вече е компилирана, така че инсталирането на играта не изисква Node.js. Той ви трябва само след промяна в сорса.

  1. Инсталирайте Node.js 22.12 или по-нов (ръководството е тествано с 22.23). npm идва с него.
  2. Отворете терминал в source/, където са package.json и package-lock.json.
  3. Изпълнете npm ci. Той инсталира точните заключени версии на Phaser, Vite, Vitest и TypeScript.
  4. Изпълнете npm test (58 теста) и npm run typecheck. Поправете грешките, преди да компилирате.
  5. Изпълнете npm run build. Резултатът е source/dist-static/, с index.html, modules/, lib/, assets/ и licenses/.
  6. Направете резервно копие на хостваната игра, после качете съдържанието на dist-static/ точно като game/.

Ръководството предупреждава срещу npm audit fix и npm update, защото променят тестваните версии. Ако се появи проблем с пакет, възстановете доставената двойка package.json и package-lock.json.

Хостване на вашия сайт

Качвайте само съдържанието на game/, така че index.html да стои директно в целевата папка, например public_html/games/pip-club/. Пазете assets/, lib/, modules/, licenses/ и pip.config.js до него и запазете големите и малките букви в имената. Не качвайте source/, documentation/ или ZIP файла.

  • Работи всеки статичен HTTP(S) хостинг, в която и да е поддиректория на който и да е домейн, защото играта използва относителни пътища.
  • За игра не са нужни база данни, PHP или услуга с Node.js.
  • Отварянето на index.html от компютъра ви (file://) не се поддържа.
  • Хостингът трябва да отдава .js, .webp, .woff2 и .mp3 с нормалните типове.
  • Играта не извършва заявки за анализ, класиране, плащания или реклама.

Записите остават в браузъра на играча, в IndexedDB или localStorage, и не се синхронизират между устройствата. За обновяване качете новата game/ върху старата, запазете pip.config.js и saveKey, а ако старата версия още се показва, изчистете кешираните файлове, а не данните на сайта.

Какво не включва и лицензът

Изданието няма онлайн или локален режим за двама играчи, облачни записи, онлайн класация, покупки с истински пари и рекламен SDK. Нативните приложения, хостингът и персонализираната разработка също са извън пакета. Добавянето на реклами, магазин или синхронизация е работа за разработчик, която изисква ваши собствени акаунти и одобрения.

Pip Club е на списъчна цена 49 USD, която става 41,65 USD с промоцията за Black Friday до 30 ноември 2026 г.; пакетна отстъпка от 5% до 20% важи, когато купите два или повече шаблона заедно. Лицензът е безсрочен и неексклузивен, за един краен продукт, ваш или на един клиент. Можете да променяте кода, графиката и аудиото, да поставите марката си върху него и да пуснете играчите безплатно или с реклами, но не можете да препродавате шаблона или кода му сами по себе си. Поддръжката трае шест месеца или дванадесет с разширението; всичко извън инсталирането и поправката на дефекти се оценява отделно.

Прочетете лиценза и условията за поддръжка

Често задавани въпроси

Сорс кодът за домино на TypeScript ли е, или на JavaScript?

Сорсът е четим, неминифициран TypeScript. Готовата за хостване папка game/ е компилираният JavaScript, така че за промени по играта са ви нужни само инструментите за TypeScript.

Могат ли двама души да играят един срещу друг?

Не. Играчите се изправят срещу компютърните противници на едно устройство. Няма онлайн или локален режим за двама играчи.

Кой вариант на домино играе?

Класическата двойна шестица, един срещу един, с теглене от купчината, пропускане и правило за заключване. Domino отчита оставащата сума на противника, а заключената маса отива на по-ниската сума.

Какво мога да променя без компилиране?

pip.config.js задава заглавието в браузъра, ключа за запис и стартовия език. Правилата, графиката, текстовете и музиката се променят в сорса и изискват компилиране.

Работи ли офлайн?

Не извиква външни услуги, но не е приложение за инсталиране с офлайн режим. Играчите трябва да достигнат до вашия уеб адрес, за да я заредят.

Това ли е домино базата, от която се нуждаете?

Pip Club подхожда на сайт или портал, който иска класическа настолна игра за всички възрасти, на студио, което прави брандирана игра на домино за един клиент, и на разработчик, който иска четим TypeScript с компютърен противник и истински unit тестове. Не подхожда на проект, в който хората трябва да играят един срещу друг, онлайн или на един екран; това е персонализирана работа от самото начало.

Изиграйте демото на Pip Club и купете лиценз

Нужен ви е друг набор от правила или няколко лиценза? Поискайте оферта