Código fuente de juego de dominó: reglas, rivales de la CPU y 58 pruebas
Qué trae el paquete de Pip Club Dominoes, qué reglas sigue, dónde cambiar textos y fichas, y qué deja fuera.

Un código fuente de juego de dominó parece sencillo hasta que revisas los casos raros. ¿Quién sale cuando nadie tiene una mula? ¿Qué pasa cuando se acaba el pozo y los dos pasan? ¿Cómo se cuentan los puntos en una mano cerrada? Una plantilla que responde eso en el código, y lo demuestra con pruebas, vale más que una con fichas más bonitas. Pip Club Dominoes, nuestra plantilla de doble seis, trae 58 pruebas automáticas que cubren las reglas, el rival de la computadora, el acomodo de la mesa, el guardado y las 14 traducciones.
Esta guía explica qué reglas sigue el juego, cómo está organizado el paquete, qué cambias con un editor de texto y qué requiere compilar, cómo publicarlo y qué permite la licencia. Los nombres de archivo vienen del manual ilustrado que acompaña al producto.
Antes que nada, un aviso: Pip Club se juega contra la computadora. No tiene modo en línea ni modo de dos jugadores en el mismo dispositivo.
Las reglas de este código fuente de juego de dominó
Las reglas son donde más cambian las plantillas de dominó, así que compáralas con lo que espera tu público. Pip Club juega el dominó clásico de doble seis con robo, un jugador contra un rival de la computadora.
- 28 fichas del 0 al 6. Cada jugador recibe 7 y las otras 14 quedan en el pozo.
- Sale la mula más alta. Sin mulas, sale la ficha de mayor suma, y en empate, la de mayor mitad.
- La mesa siempre tiene dos puntas, A y B. La ficha debe coincidir con una punta, y la blanca va con la blanca.
- Las mulas pueden ir atravesadas, pero nunca abren nuevas puntas ni dan turno extra.
- Si no tienes ficha, roba una a la vez hasta poder jugar. Con el pozo vacío y sin jugada, pasas.
- Dominó: quien se queda sin fichas suma el total que le quedó al rival en la mano.
- Cierre: dos pases seguidos con el pozo vacío cierran la mesa. La suma menor gana la diferencia, y las sumas iguales empatan.
La Ronda Rápida termina después de una mano. La Partida a Puntos juega manos hasta que alguien llega a 50 o 100. La campaña tiene 9 encuentros en 3 capítulos, uno por punto de reunión, y cada victoria da un sello.
Qué trae el paquete
El jugador enfrenta a tres rivales de la computadora con personalidad propia: Rico, el mapache DJ, Faísca, la zorra patinadora, y Nix, la gata artista, cada uno en Fácil, Normal o Difícil. Las fichas jugables brillan, la mesa muestra dónde caerá la ficha y una pista sugiere la jugada. Hay tres puntos de reunión (Rooftop, Skate Park y Midnight Arcade), seis juegos de fichas coleccionables, sellos de campaña y estadísticas. Funciona con mouse, táctil y teclado.
- game/: la versión lista para publicar, con index.html, pip.config.js, modules/, lib/, assets/ y licenses/.
- game/lib/phaser.js: Phaser 3.90.0, legible, con licencia MIT.
- source/: el TypeScript editable, arte, música, traducciones y las pruebas automáticas.
- documentation/index.html y DOCUMENTATION.html: el manual del comprador en 14 idiomas, que abre sin internet.
- THIRD-PARTY-LICENSES/: avisos de licencia de Phaser y de la fuente Barlow Condensed.
El arte y la música son originales del producto y se licencian al comprador junto con él. La interfaz viene en 14 idiomas y sigue el idioma del navegador; no hay voz grabada, así que cada frase de los rivales aparece en el idioma elegido.
Ver Pip Club Dominoes: demo, manual y precio
Cambios sin compilar: pip.config.js
Junto a index.html está pip.config.js. Ábrelo en cualquier editor de texto, cambia un valor, sube el archivo y recarga. Hay tres ajustes.
- title: el título de la pestaña del navegador.
- saveKey: el nombre con que se guarda la partida. El predeterminado es pip-club.
- defaultLanguage: el idioma inicial. Vacío, el juego sigue al navegador.
No cambies saveKey en un sitio en producción. Una clave distinta hace que el juego ignore el progreso existente y empiece una partida nueva, algo útil para una segunda copia y doloroso en una actualización.
Dónde están textos, arte y fichas en el código
- Textos y traducciones: source/src/ui/i18n.ts y source/src/ui/locales/.
- Arte de los personajes, escenarios y logo: source/src/assets/club/.
- Música: source/src/assets/music/.
- Colores de las fichas: source/src/art/palette.ts y source/src/art/tileArt.ts.
- Pruebas: source/tests/.
Un trabajo de marca suele seguir este orden: logo y arte de los escenarios en assets/club/, luego la paleta de las fichas y luego los textos en locales. Se permite marca blanca, así que tu marca puede ir en lugar de la nuestra. Cambiar cómo juega la computadora o una regla es un trabajo más profundo; corre las pruebas antes y después, porque cubren ambas cosas.
Si estás armando un pequeño catálogo de juegos de mesa, otras dos plantillas nuestras encajan junto a esta.
Ludo Cats: ludo con gatitos, CPU en tres niveles o amigos en el mismo dispositivo
Boba Club: solitario Klondike con campaña de 12 repartos
Compilar después de editar el TypeScript
La carpeta game/ ya está compilada, así que instalar el juego no requiere Node.js. Solo lo necesitas después de cambiar el código.
- Instala Node.js 22.12 o más reciente (el manual se probó con 22.23). npm viene incluido.
- Abre una terminal en source/, donde están package.json y package-lock.json.
- Ejecuta npm ci. Instala las versiones fijadas de Phaser, Vite, Vitest y TypeScript.
- Ejecuta npm test (58 pruebas) y npm run typecheck. Corrige los errores antes de compilar.
- Ejecuta npm run build. El resultado queda en source/dist-static/, con index.html, modules/, lib/, assets/ y licenses/.
- Respalda el juego publicado y sube el contenido de dist-static/ igual que game/.
El manual desaconseja npm audit fix y npm update, porque cambian las versiones probadas. Si aparece un problema de paquetes, restaura el par package.json y package-lock.json que venía en el ZIP.
Publicarlo en tu sitio
Sube solo el contenido de game/, para que index.html quede directo en la carpeta de destino, por ejemplo public_html/games/pip-club/. Deja assets/, lib/, modules/, licenses/ y pip.config.js junto a él y respeta mayúsculas y minúsculas en cada nombre. No subas source/, documentation/ ni el ZIP.
- Sirve cualquier hosting estático HTTP(S), en cualquier subcarpeta de cualquier dominio, porque el juego usa rutas relativas.
- No hace falta base de datos, PHP ni servicio Node.js para jugar.
- Abrir index.html desde tu computadora (file://) no está soportado.
- El servidor debe servir .js, .webp, .woff2 y .mp3 con sus tipos normales.
- El juego no hace llamadas de analítica, ranking, pagos ni anuncios.
Lo guardado queda en el navegador del jugador, en IndexedDB o localStorage, y no se sincroniza entre dispositivos. Para actualizar, sube el nuevo game/ sobre el anterior, conserva pip.config.js y su saveKey, y borra los archivos en caché, no los datos del sitio, si sigue apareciendo la versión vieja.
Lo que no incluye, y la licencia
La edición no tiene modo de dos jugadores, en línea ni local, ni guardado en la nube, ranking en línea, compras con dinero real o SDK de anuncios. Las apps nativas, el hosting y el desarrollo a medida también quedan fuera. Agregar anuncios, tienda o sincronización es trabajo de desarrollo con tus propias cuentas y aprobaciones.
Pip Club cuesta 49 USD de lista, que quedan en 41.65 USD con la promoción de Black Friday hasta el 30 de noviembre de 2026; el descuento por paquete, de 5% a 20%, aplica cuando compras dos o más plantillas juntas. La licencia es perpetua y no exclusiva, para un producto final, tuyo o de un cliente. Puedes cambiar código, arte y audio, ponerle tu marca y dejar entrar a los jugadores gratis o con anuncios, pero no revender la plantilla ni su código por separado. El soporte dura seis meses, o doce con la extensión; lo que vaya más allá de instalar y corregir defectos se cotiza.
Leer los términos de licencia y soporte
Preguntas frecuentes sobre el código de Pip Club
¿El código fuente del juego de dominó es TypeScript o JavaScript?
El código es TypeScript legible, sin minificar. La carpeta game/, lista para publicar, es el JavaScript compilado, así que solo necesitas las herramientas de TypeScript para cambiar el juego.
¿Pueden jugar dos personas entre sí?
No. El jugador enfrenta a los rivales de la computadora en un dispositivo. No hay modo de dos jugadores, en línea ni local.
¿Qué variante de dominó juega?
Doble seis clásico, uno contra uno, con robo del pozo, pase y regla de cierre. El dominó suma lo que le quedó al rival, y la mesa cerrada se la lleva la suma menor.
¿Qué puedo cambiar sin compilar?
pip.config.js define el título de la pestaña, la clave de guardado y el idioma inicial. Reglas, arte, textos y música se cambian en el código y requieren compilar.
¿Funciona sin internet?
No llama a servicios externos, pero no es una app instalable sin conexión. El jugador necesita entrar a tu dirección para cargarlo.
¿Es la base de dominó que necesitas?
Pip Club sirve a un sitio o portal que quiere un juego de mesa clásico para todas las edades, a un estudio que arma un dominó con la marca de un cliente y a quien busca TypeScript legible con un rival de computadora y pruebas reales. No sirve para un proyecto donde las personas jueguen entre sí, en línea o en la misma pantalla; eso es trabajo a medida desde el inicio.
Jugar la demo de Pip Club y comprar la licencia
¿Necesitas otras reglas o varias licencias? Pide una cotización
