Kildekode til dominospil: regler, computermodstandere og 58 tests
Hvad Pip Club Dominoes-pakken indeholder, hvilke regler den spiller, hvor du ændrer tekster og brikker, og hvad den ikke har med.

Kildekode til dominospil ser enkel ud, indtil du kigger på kanttilfældene. Hvem åbner, når ingen har en dobbelt? Hvad sker der, når bunken er tom, og begge spillere passer? Hvordan virker scoren, når en runde er låst? En skabelon, der besvarer de spørgsmål i kode og beviser det med tests, er mere værd end en med pænere brikker. Pip Club Dominoes, vores dobbelt-seks-skabelon, leveres med 58 automatiske tests, der dækker reglerne, computermodstanderen, bordopstillingen, gemning og de 14 oversættelser.
Denne guide forklarer, hvilke regler spillet spiller, hvordan pakken er organiseret, hvad du kan ændre med en teksteditor, og hvad der kræver en genopbygning. Den forklarer også, hvordan du hoster det, og hvad licensen tillader. Filnavnene kommer fra den illustrerede købervejledning, der følger med varen.
Én ting at vide før alt andet: Pip Club spilles mod computeren. Det har ingen online-tilstand og ingen to-spillertilstand på én enhed.
Reglerne, som denne kildekode til dominospil spiller
Det er i reglerne, dominoskabeloner adskiller sig mest, så tjek dem mod det, dine spillere forventer. Pip Club spiller et klassisk dobbelt-seks-brikspil, én spiller mod én computermodstander.
- 28 brikker fra 0 til 6. Hver spiller får 7, og de andre 14 bliver i bunken.
- Den højeste dobbelt åbner. Uden dobbelter åbner den højeste sum, og ved lighed den højeste halvdel.
- Bordet har altid to ender, A og B. En brik skal matche en ende, og nul matcher nul.
- Dobbelte må ligge på tværs, men de forgrener sig aldrig og giver aldrig en ekstra tur.
- Uden match trækkes én brik ad gangen, indtil du kan spille. Er bunken tom uden match, passer du.
- Domino: den, der tømmer sin hånd, scorer summen af det, der er tilbage i modstanderens hånd.
- Lås: to passer i træk med tom bunke låser bordet. Den lavere sum vinder forskellen, og lige summer giver uafgjort.
En hurtig runde slutter efter én runde. En pointkamp spiller runder, indtil nogen når 50 eller 100. Kampagnen har 9 møder i 3 kapitler, ét pr. hangout, og hver sejr giver et segl.
Hvad der følger med i pakken
Spillerne møder tre computermodstandere med hver sin personlighed: Rico the DJ (vaskebjørnen), Faísca (skaterræven) og Nix (kunstnerkatten), hver på Easy, Normal eller Hard. Spilbare brikker lyser, bordet viser en forhåndsvisning af, hvor en brik vil lande, og et hint foreslår et træk. Der er tre hangouts (Rooftop, Skate Park og Midnight Arcade), seks samlebare brik-sæt, kampagnesegl og statistik. Mus, touch og tastatur virker alle.
- game/: den færdige build, der kan hostes, med index.html, pip.config.js, modules/, lib/, assets/ og licenses/.
- game/lib/phaser.js: Phaser 3.90.0, læsbar, under MIT-licensen.
- source/: den redigerbare TypeScript, grafik, musik, oversættelser og de automatiske tests.
- documentation/index.html og DOCUMENTATION.html: købervejledningen på 14 sprog, som åbner offline.
- THIRD-PARTY-LICENSES/: noter til Phaser og skrifttypen Barlow Condensed.
Grafik og musik er originale aktiver i produktet, licenseret til køberen sammen med varen. Grænsefladen findes på 14 sprog og følger browsersproget. Der er ingen indtalt stemme, så hver modstanderlinje følger det valgte sprog.
Se Pip Club Dominoes: demo, vejledning og pris
Ændr uden genopbygning: pip.config.js
Ved siden af index.html ligger pip.config.js. Åbn den i en hvilken som helst teksteditor, ændr en værdi, upload filen og genindlæs. Tre indstillinger ligger der.
- title: titlen på browserfanen.
- saveKey: navnet gemmen lagres under. Standarden er pip-club.
- defaultLanguage: startsproget. Er feltet tomt, følger spillet browseren.
Behold saveKey uændret på en live-side. En anden nøgle får spillet til at ignorere eksisterende fremskridt og starte en ny gemning. Det er nyttigt til en ekstra kopi og smertefuldt ved en opdatering.
Hvor tekster, grafik og brikker ligger i kilden
- Tekster og oversættelser: source/src/ui/i18n.ts og source/src/ui/locales/.
- Figurgrafik, scener og logo: source/src/assets/club/.
- Musik: source/src/assets/music/.
- Brikfarver: source/src/art/palette.ts og source/src/art/tileArt.ts.
- Tests: source/tests/.
Et typisk brandingjob går i denne rækkefølge: logo og scenegrafik i assets/club/, derefter brikpaletten, og så ordlyden i sprogfilerne. White label er tilladt, så dit brand kan erstatte vores. At ændre computerens spil eller en regel er et dybere job. Kør testene før og efter, for de dækker begge dele.
Hvis du bygger en lille katalog af bordspil, passer to andre af vores skabeloner ved siden af denne.
Ludo Cats: Ludo med killinger, computer på tre niveauer eller venner på én enhed
Boba Club: Klondike-kabale med en kampagne på 12 uddelinger
Genopbygning efter redigering af TypeScript
Mappen game/ er allerede bygget, så installation af spillet kræver ingen Node.js. Du har kun brug for det, efter du har ændret kilden.
- Installer Node.js 22.12 eller nyere (vejledningen er testet med 22.23). npm følger med.
- Åbn en terminal i source/, hvor package.json og package-lock.json ligger.
- Kør npm ci. Det installerer de præcise låste versioner af Phaser, Vite, Vitest og TypeScript.
- Kør npm test (58 tests) og npm run typecheck. Ret fejl, før du bygger.
- Kør npm run build. Resultatet er source/dist-static/ med index.html, modules/, lib/, assets/ og licenses/.
- Tag en sikkerhedskopi af det hostede spil, og upload derefter indholdet af dist-static/ på præcis samme måde som game/.
Vejledningen advarer mod npm audit fix og npm update, fordi de ændrer de testede versioner. Hvis der opstår et pakkeproblem, så gendan de leverede package.json og package-lock.json.
Hosting på dit site
Upload kun indholdet af game/, så index.html ligger direkte i målmappen, for eksempel public_html/games/pip-club/. Behold assets/, lib/, modules/, licenses/ og pip.config.js ved siden af den, og behold store og små bogstaver i alle navne. Upload ikke source/, documentation/ eller ZIP-filen.
- Enhver statisk HTTP(S)-host virker, i en hvilken som helst undermappe på et hvilket som helst domæne, fordi spillet bruger relative stier.
- Der kræves ingen database, PHP- eller Node.js-tjeneste for at spille.
- Åbning af index.html fra din computer (file://) understøttes ikke.
- Hosten skal levere .js, .webp, .woff2 og .mp3 med normale filtyper.
- Spillet foretager ingen analyse-, rangliste-, betalings- eller annoncekald.
Gemninger bliver i spillerens browser, i IndexedDB eller localStorage, og synkroniseres ikke mellem enheder. Ved en opdatering uploader du den nye game/ over den gamle, beholder pip.config.js og dens saveKey, og rydder cachede filer i stedet for webstedsdata, hvis den gamle version stadig vises.
Hvad den ikke indeholder, og licensen
Udgaven har ingen online- eller lokal to-spillertilstand, ingen cloud-gemninger, ingen online-rangliste, ingen køb for rigtige penge og intet annonce-SDK. Native apps, hosting og skræddersyet udvikling ligger også uden for pakken. Tilføjelse af annoncer, en butik eller synkronisering er udviklerarbejde, der kræver dine egne konti og godkendelser.
Pip Club koster 49 USD, hvilket bliver til 41,65 USD med Black Friday-kampagnen indtil 30. november 2026. En pakkerabat på 5 % til 20 % gælder, når du køber to eller flere skabeloner samlet. Licensen er evigvarende og ikke-eksklusiv, til ét slutprodukt, dit eller én kundes. Du må ændre koden, grafikken og lyden, sætte dit brand på den og lade spillerne spille gratis eller med annoncer, men du må ikke videresælge skabelonen eller dens kode alene. Support varer seks måneder, eller tolv med forlængelsen. Alt ud over installation og rettelse af fejl tilbydes særskilt.
Læs licens- og supportvilkårene
Ofte stillede spørgsmål
Er kildekoden til dominospil TypeScript eller JavaScript?
Kilden er læsbar, uminificeret TypeScript. Den færdige mappe game/, der kan hostes, er den byggede JavaScript, så du har kun brug for TypeScript-værktøjer, hvis du vil ændre spillet.
Kan to personer spille mod hinanden?
Nej. Spillerne møder computermodstanderne på én enhed. Der findes ingen online- eller lokal to-spillertilstand.
Hvilken dominovariant spiller den?
Klassisk dobbelt-seks, én mod én, med at trække fra bunken, at passe og en låseregel. Domino scorer modstanderens resterende sum, og et låst bord går til den lavere sum.
Hvad kan jeg ændre uden at genopbygge?
pip.config.js sætter browsertitlen, gemmenøglen og startsproget. Regler, grafik, tekster og musik ændres i kilden og kræver en genopbygning.
Virker det offline?
Det kalder ingen eksterne tjenester, men det er ikke en app, der kan installeres til offline brug. Spillerne skal kunne nå din webadresse for at indlæse det.
Er dette det dominograndlag, du har brug for?
Pip Club passer til et site eller en portal, der vil have et klassisk bordspil for alle aldre, til et studie, der bygger et brandet dominospil til én kunde, og til en udvikler, der vil have læsbar TypeScript med en computermodstander og rigtige enhedstests. Det passer ikke til et projekt, hvor folk skal spille mod hinanden, online eller på én skærm. Det er specialarbejde fra start.
Spil Pip Club-demoen og køb licensen
Har du brug for et andet regelsæt eller flere licenser? Bed om et tilbud
