Ceļvedis

Domino spēles pirmkods: noteikumi, datora pretinieki un 58 testi

Kas ietilpst komplektā Pip Club Dominoes, kurus noteikumus tas spēlē, kur mainīt tekstus un kauliņus un ko tas neietver.

Pip Club Dominoes māksla: jenots, lapsa un melns kaķis kapučdžemperos smaida apaļa galda ap ar trim domino kauliņiem saulrietā.

Domino spēles pirmkods izskatās vienkāršs, kamēr neapskati malu gadījumus. Kas sāk, ja neviens neturē dubulto? Kas notiek, ja krājums ir tukšs un abi spēlētāji izlaiž gājienu? Kā darbojas punktu skaitīšana bloķētam raundam? Sagatave, kas uz šiem jautājumiem atbild kodā un to pierāda ar testiem, ir vērtīgāka par tādu ar skaistākiem kauliņiem. Pip Club Dominoes, mūsu dubultsešnieka sagatave, piegādājas ar 58 automatizētiem testiem, kas aptver noteikumus, datora pretinieku, galda izkārtojumu, saglabāšanu un 14 tulkojumus.

Šis ceļvedis izskaidro, kurus noteikumus spēle spēlē, kā komplekts ir sakārtots, ko vari mainīt ar teksta redaktoru un kam vajag pārbūvi, kā to hostēt un ko licence ļauj. Failu nosaukumi nāk no ilustrētā pircēja ceļveža, kas piegādājas ar vienumu.

Viena lieta, kas jāzina pirms visa pārējā: Pip Club spēlē pret datoru. Tam nav tiešsaistes režīma un nav divu spēlētāju režīma vienā ierīcē.

Noteikumi, ko spēlē šis domino spēles pirmkods

Noteikumi ir tā vieta, kur domino sagataves visvairāk atšķiras, tāpēc pārbaudi tos pret to, ko gaida tavi spēlētāji. Pip Club spēlē klasisku dubultsešnieka kauliņu spēli, viens spēlētājs pret vienu datora pretinieku.

  • 28 kauliņi no 0 līdz 6. Katrs spēlētājs saņem 7, pārējie 14 paliek krājumā (boneyard).
  • Atver augstākais dubultais. Ja dubulto nav, atver augstākā kopsumma, un neizšķirta gadījumā augstākā puse.
  • Galdam vienmēr ir divi gali, A un B. Kauliņam jāsakrīt ar galu, un nulle sakrīt ar nulli.
  • Dubultie var stāvēt šķērsām, bet nekad nezarojas un nedod papildu gājienu.
  • Ja nav sakrītoša, velc pa vienam kauliņam, līdz vari spēlēt. Ja krājums ir tukšs un sakrītoša nav, izlaid gājienu.
  • Domino: kas iztukšo savu roku, saņem punktus par kopsummu, kas palikusi pretinieka rokā.
  • Lock: divas izlaišanas pēc kārtas ar tukšu krājumu nobloķē galdu. Zemākā kopsumma saņem starpību, un vienādas kopsummas ir neizšķirts.

Quick Round (ātrais raunds) beidzas pēc viena raunda. Points Match (punktu spēle) spēlē raundus, līdz kāds sasniedz 50 vai 100. Kampaņā ir 9 sastapšanās 3 nodaļās, pa vienai katrā pulcēšanās vietā, un katra uzvara dod zīmogu.

Kas ietilpst komplektā

Spēlētāji stājas pret trim datora pretiniekiem ar savu raksturu: Rico, DJ jenots, Faísca, skeitotāja lapsa, un Nix, mākslinieces kaķis, katrs ar līmeni Easy (viegls), Normal (normāls) vai Hard (grūts). Spēlējamie kauliņi spīd, galds rāda, kur kauliņš nokritīs, un padoms iesaka gājienu. Ir trīs pulcēšanās vietas, Rooftop (jumts), Skate Park (skeitparks) un Midnight Arcade (vēlās nakts arkāde), seši vācami kauliņu komplekti, kampaņas zīmogi un statistika. Darbojas pele, skārieni un tastatūra.

  • game/: gatavā hostējamā versija ar index.html, pip.config.js, modules/, lib/, assets/ un licenses/.
  • game/lib/phaser.js: Phaser 3.90.0, lasāms, MIT licencē.
  • source/: rediģējamais TypeScript, māksla, mūzika, tulkojumi un automatizētie testi.
  • documentation/index.html un DOCUMENTATION.html: pircēja ceļvedis 14 valodās, kas atveras bezsaistē.
  • THIRD-PARTY-LICENSES/: paziņojumi par Phaser un fontu Barlow Condensed.

Māksla un mūzika ir produkta oriģinālie aktīvi, licencēti pircējam kopā ar vienumu. Saskarne ir 14 valodās un seko pārlūka valodai; balss ierakstu nav, tāpēc katra pretinieka replika seko izvēlētajai valodai.

Skatīt Pip Club Dominoes: demo, ceļvedi un cenu

Maini bez pārbūves: pip.config.js

Blakus index.html atrodas pip.config.js. Atver to jebkurā teksta redaktorā, maini vērtību, augšupielādē failu un pārlādē lapu. Tur atrodas trīs iestatījumi.

  • title: pārlūka cilnes nosaukums.
  • saveKey: nosaukums, zem kura glabājas saglabātā spēle. Noklusējums ir pip-club.
  • defaultLanguage: sākuma valoda. Ja tukšs, spēle seko pārlūkam.

Dzīvā vietnē saveKey nemaini. Cita atslēga liek spēlei ignorēt esošo progresu un sākt jaunu saglabājumu, kas noder otrai kopijai un sāp atjauninājumam.

Kur pirmkodā atrodas teksti, māksla un kauliņi

  • Teksti un tulkojumi: source/src/ui/i18n.ts un source/src/ui/locales/.
  • Tēlu māksla, ainas un logotips: source/src/assets/club/.
  • Mūzika: source/src/assets/music/.
  • Kauliņu krāsas: source/src/art/palette.ts un source/src/art/tileArt.ts.
  • Testi: source/tests/.

Tipisks zīmola darbs notiek šādā secībā: logotips un ainas māksla mapē assets/club/, tad kauliņu paleta, tad teksts lokalizācijās. White label ir atļauts, tāpēc tavs zīmols var aizstāt mūsu. Datora spēles vai noteikuma maiņa ir dziļāks darbs; palaid testus pirms un pēc, jo tie aptver abus.

Ja veido nelielu galda spēļu katalogu, blakus šai sagatavei labi ietilpst divas citas mūsu sagataves.

Ludo Cats: Ludo ar kaķēniem, CPU trijos līmeņos vai draugi uz vienas ierīces

Boba Club: Klondike pasjanss ar 12 sadalījumu kampaņu

Pārbūve pēc TypeScript rediģēšanas

Mape game/ jau ir sabūvēta, tāpēc spēles uzstādīšanai Node.js nevajag. Tas vajag tikai pēc pirmkoda maiņas.

  1. Uzstādi Node.js 22.12 vai jaunāku (ceļvedis testēts ar 22.23). Kopā ar to nāk npm.
  2. Atver termināli mapē source/, kur atrodas package.json un package-lock.json.
  3. Palaid npm ci. Tas uzstāda precīzas bloķētās Phaser, Vite, Vitest un TypeScript versijas.
  4. Palaid npm test (58 testi) un npm run typecheck. Salabo kļūdas, pirms būvē.
  5. Palaid npm run build. Rezultāts ir mape source/dist-static/ ar index.html, modules/, lib/, assets/ un licenses/.
  6. Dublē hostēto spēli, tad augšupielādē dist-static/ saturu tieši kā game/.

Ceļvedis brīdina pret npm audit fix un npm update, jo tie maina testētās versijas. Ja parādās pakotņu problēma, atjaunojiet piegādāto package.json un package-lock.json pāri.

Hostings tavā vietnē

Augšupielādē tikai game/ saturu, lai index.html atrodas tieši mērķa mapē, piemēram, public_html/games/pip-club/. Blakus tam paturi assets/, lib/, modules/, licenses/ un pip.config.js un saglabā katra nosaukuma burtu reģistru. Nelādē augšā source/, documentation/ vai ZIP.

  • Derīgs jebkurš statisks HTTP(S) hostings, jebkurā apakšmapē jebkurā domēnā, jo spēle izmanto relatīvus ceļus.
  • Spēlēšanai nevajag datubāzi, PHP vai Node.js pakalpojumu.
  • Index.html atvēršana no datora (file://) netiek atbalstīta.
  • Hostingam jāpiegādā .js, .webp, .woff2 un .mp3 ar parastiem tipiem.
  • Spēle neveic analītikas, rangu, maksājumu vai reklāmas izsaukumus.

Saglabājumi paliek spēlētāja pārlūkprogrammā, IndexedDB vai localStorage, un nesinhronizējas starp ierīcēm. Lai atjauninātu, augšupielādē jauno game/ pāri vecajai, saglabā pip.config.js un tā saveKey, un, ja vecā versija joprojām rādās, notīri kešatmiņas failus, nevis vietnes datus.

Ko tas neietver un licence

Izdevumā nav tiešsaistes vai lokāla divu spēlētāju režīma, mākoņa saglabājumu, tiešsaistes ranga, pirkumu par reālu naudu un reklāmas SDK. Natīvās lietotnes, hostings un pielāgota izstrāde arī ir ārpus komplekta. Reklāmu, veikala vai sinhronizācijas pievienošana ir izstrādātāja darbs, kam vajag tavus kontus un apstiprinājumus.

Pip Club cenrādī ir $49, kas kļūst par $41.65 ar Black Friday akciju līdz 2026. gada 30. novembrim; komplekta atlaide 5% līdz 20% attiecas, ja pērc divas vai vairāk sagataves kopā. Licence ir mūžīga un neekskluzīva vienam gala produktam, tavam vai viena klienta. Drīksti mainīt kodu, mākslu un audio, uzlikt savu zīmolu un ielaist spēlētājus bez maksas vai ar reklāmām, bet sagatavi vai tās kodu atsevišķi pārdot nedrīksti. Atbalsts ilgst sešus mēnešus vai divpadsmit ar paplašinājumu; viss, kas pāri uzstādīšanai un defektu labošanai, tiek piedāvāts atsevišķi.

Lasīt licences un atbalsta noteikumus

Biežāk uzdotie jautājumi

Vai domino spēles pirmkods ir TypeScript vai JavaScript?

Pirmkods ir lasāms, nesamazināts TypeScript. Gatavā mape game/ ir sabūvēts JavaScript, tāpēc TypeScript rīki vajag tikai, ja maini spēli.

Vai var spēlēt divi cilvēki pret otru?

Nē. Spēlētāji stājas pret datora pretiniekiem vienā ierīcē. Nav tiešsaistes vai lokāla divu spēlētāju režīma.

Kuru domino variantu tā spēlē?

Klasisko dubultsešnieku, viens pret vienu, ar kauliņu vilkšanu no krājuma, izlaišanu un Lock noteikumu. Domino ieskaita pretinieka atlikušo summu, un nobloķētā galda uzvar zemākā summa.

Ko var mainīt bez pārbūves?

pip.config.js iestata pārlūka nosaukumu, saglabāšanas atslēgu un sākuma valodu. Noteikumi, māksla, teksti un mūzika tiek mainīti pirmkodā un vajag pārbūvi.

Vai tas darbojas bezsaistē?

Tas neizsauc ārējus pakalpojumus, bet tā nav instalējama bezsaistes lietotne. Spēlētājiem jātiek līdz tavai tīmekļa adresei, lai to ielādētu.

Vai tā ir domino bāze, kas tev vajag?

Pip Club der vietnei vai portālam, kam vajag klasisku galda spēli visu vecumu auditorijām, studijai, kas veido zīmolotu domino spēli vienam klientam, un izstrādātājam, kas vēlas lasāmu TypeScript ar datora pretinieku un īstiem vienību testiem. Tā neder projektam, kam vajag, lai cilvēki spēlē viens pret otru, tiešsaistē vai vienā ekrānā; tas ir pielāgots darbs no paša sākuma.

Nospēlēt Pip Club demo un nopirkt licenci

Vajag citu noteikumu kopu vai vairākas licences? Pieprasi piedāvājumu