AI Agents

Cómo construí Quads, un juego de mesa para móvil, con Claude: de un hackathon de 2 horas a la App Store

Alejandro Rioja
Alejandro Rioja
11 min de lectura
TL;DR

Quads es un juego de mesa para móvil —una versión limpia del clásico juego abstracto Quarto— que empezó como un hackathon de 2 horas con un amigo en Colombia y se lanzó a las tiendas de apps. Esta es la versión totalmente abierta de cómo construyo con Claude: worktrees de agentes en paralelo, una IA de juego real (no un LLM), diseño offline-first y los tropiezos específicos que me costaron horas.

Newsletter gratuita

Cada miércoles. 28.400+ operadores. Sin relleno.

Tabla de contenidos

Actualizado en julio de 2026.

TL;DR: Quads es un juego de mesa para móvil —una versión limpia del clásico juego abstracto Quarto— que empezó como un hackathon de 2 horas con un amigo en Colombia y se lanzó a las tiendas de apps. Esta es la versión totalmente abierta de cómo construyo con Claude: worktrees de agentes en paralelo, una IA de juego real (no un LLM), diseño offline-first y los tropiezos específicos que me costaron horas.

[La lectura del operador] Manejo más de 30 agentes en producción entre una marca de consultoría y Pickleland, mi instalación de pickleball en el área metropolitana de Austin. La mayor parte de lo que construyo es software de negocio serio donde mantengo el manual en privado. Quads es lo opuesto: un proyecto paralelo divertido que puedo mostrarte de arriba abajo. Si quieres ver exactamente cómo trabajo con Claude, sin nada limado, este es el artículo. Puedes encontrar el juego en playquads.com.

Empezó como un hackathon de 2 horas en Colombia

El origen es casi vergonzosamente casual. Estaba en un viaje a Colombia, y un amigo y yo nos dimos un hackathon de 2 horas: elegir algo pequeño, construirlo con IA, ver hasta dónde llegábamos. Nos decidimos por Quarto, un pequeño y hermoso juego de estrategia abstracta que es fácil de aprender y sorprendentemente profundo. Dos horas después teníamos un prototipo jugable, y la idea era demasiado buena para dejarla en un portátil.

Lo que empezó como un reto con límite de tiempo se convirtió en una app móvil real y publicada en iOS y Android. Ese arco —de prototipo de broma a ficha en la tienda— es toda la razón por la que creo que vale la pena escribir sobre este proyecto. La distancia entre «idea divertida» y «cosa que desconocidos pueden descargar» se ha colapsado, y Quads es un caso de estudio limpio de cómo.

Primero, un desvío rápido sobre el nombre. El juego es una reimplementación de Quarto, que es un juego con marca registrada propiedad de Gigamic. Así que la primerísima decisión no relacionada con el código fue no llamarlo Quarto en ningún lugar que un cliente pudiera ver. Pasó de Quarto (la mecánica) a un par de nombres intermedios a Quads: un nombre que es mío para usar. Si estás reimplementando un clásico, resuelve la cuestión de la marca registrada antes de enamorarte de un nombre.

Qué es Quads en realidad

Para los no iniciados: Quads se juega en un tablero de 4×4 con 16 piezas únicas. Cada pieza tiene cuatro atributos binarios —alta o baja, oscura o clara, cuadrada o redonda, sólida o hueca— y las 16 piezas cubren cada combinación posible exactamente una vez. Ganas completando una línea de cuatro piezas que compartan cualquier atributo.

El giro que lo hace brillante: no eliges la pieza que colocas. Tu oponente te la entrega. Luego tú le entregas la suya. Así que cada turno es un doble aprieto: intentas colocar la pieza que te dieron sin armar una victoria, mientras eliges una pieza para entregar que no le regale la partida a tu oponente. Es elegante y genuinamente difícil.

La app trae cuatro formas de jugar, todas completamente offline: contra la computadora en cinco niveles de dificultad, pasar y jugar en un solo dispositivo, un puzle diario y un modo asíncrono de «reta a un amigo». Sin cuenta, sin servidor, sin inicio de sesión. Esa decisión offline-first guio buena parte de la ingeniería, y es una gran parte de por qué una construcción en solitario fue viable.

La lógica del juego: todo un conjunto de reglas que sale de la aritmética de bits

Esta es mi parte favorita, porque es el tipo de cosa que satisface haya escrito o no la IA.

Cada una de las 16 piezas es solo un entero de 0 a 15. Cada uno de los cuatro bits es un atributo. Eso es todo: el conjunto entero de piezas son los números del 0 al 15, porque cuatro bits te dan exactamente 16 combinaciones.

La detección de victorias entonces se vuelve casi trivial. Para cualquier línea de cuatro piezas, mantienes dos acumuladores corrientes: los bits que están en 1 en todas las piezas, y los bits que están en 0 en todas las piezas. Si cualquiera de los acumuladores es distinto de cero después de las cuatro, las piezas coinciden en al menos un atributo: eso es una victoria. Todo el conjunto de reglas se colapsa en un par de ANDs a nivel de bits.

Como la lógica son funciones puras sobre enteros —sin framework, sin interfaz, sin estado— es directamente testeable por unidades, y es trivial de extender. Quads incluso trae una variante de regla casera donde los nueve cuadrados de 2×2 también cuentan como formas ganadoras, lo cual es una adición de dos líneas sobre el mismo truco de bits. Cuando tú y un socio de IA mantienen la lógica central así de limpia, agregar una función es un placer en lugar de un riesgo.

El oponente IA no es un LLM (y esa es la decisión correcta)

Aquí hay un momento didáctico que me importa: no toda «IA» debería ser un modelo de lenguaje grande.

El oponente de Quads es IA de juego clásica pura, y así debe ser. En cada turno toma dos decisiones —dónde colocar la pieza que le entregaron y qué pieza devolver— y la dificultad escala qué tan fuerte piensa:

  • Novato juega esencialmente al azar y te regalará la victoria.
  • Los niveles intermedios agregan heurísticas: tomar una victoria inmediata si existe, y evitar regalar una pieza con la que el oponente pueda ganar, prefiriendo la pieza que arma la menor cantidad de amenazas futuras.
  • Maestro y Gran Maestro ejecutan una búsqueda negamax acotada —búsqueda de árbol de juego real— pero con un presupuesto de nodos estricto para que un movimiento nunca pueda colgar el hilo principal del teléfono. Temprano en la partida, donde la búsqueda perfecta es intratable, recurre a heurísticas rápidas; tarde en la partida, donde el árbol es lo bastante pequeño, busca de verdad.

Dos cosas que vale la pena robar de esto. Primera, un modelo de lenguaje sería peor aquí —más lento, más caro, no determinista y vencible— que cincuenta líneas de negamax. Empareja la herramienta con el problema. Segunda, el presupuesto de nodos es la ingeniería de verdad: en un dispositivo móvil, «correcto pero ocasionalmente se cuelga cuatro segundos» es una función fallida. Acotar la búsqueda para que un movimiento sea siempre rápido, aunque ocasionalmente subóptimo, es la diferencia entre un juguete y un producto. Saber cuándo echar mano de un LLM es el mismo criterio que aplico a cada automatización: es el núcleo de cómo decido si vale la pena una construcción con IA.

Cómo hago funcionar a Claude en la práctica: agentes en paralelo en worktrees

Ahora la parte que mantengo en privado en mis productos más grandes pero que puedo mostrarte por completo aquí.

No construyo con una sola sesión de Claude a la vez. Ejecuto varias en paralelo, cada una en su propio git worktree en su propia rama. Un agente agrega internacionalización, otro construye el sistema del puzle diario, otro hace el modo para daltónicos, otro conecta el sonido; cada uno aislado en su propia copia de trabajo para que no puedan pisarse entre sí, y cada uno se fusiona de vuelta cuando está en verde. El historial de git de Quads es un muro de commits Merge branch 'worktree-agent-…', que es exactamente cómo se ve ese flujo desde afuera.

La razón por la que los worktrees importan es simple: agentes en paralelo editando el mismo directorio de trabajo se pisan al instante. Dale a cada uno un checkout aislado y puedes tener genuinamente cuatro funciones en construcción a la vez, y luego fusionarlas como cualquier otra rama. Es el cambio de mayor apalancamiento en cómo trabajo: pasé de una conversación, una función, a una pequeña flota.

Si quieres la disciplina detrás de los prompts con los que corren esos agentes, es la misma que describo en cómo escribir prompts de sistema para agentes de IA que no fallen en producción: el apalancamiento está en especificaciones claras y actualizadas, no en el fraseo ingenioso.

El tropiezo que me costó una hora (para que no te cueste una a ti)

Cada proyecto te enseña una lección tonta y cara. En Quads fue esta: la herramienta de vista previa no siempre muestra la rama que crees que está mostrando.

Cuando ejecutas múltiples agentes en múltiples worktrees y previsualizas su trabajo, la vista previa puede lanzarse desde un directorio diferente al que está tu sesión actual, así que tomas una captura de la app, no ves ninguno de tus cambios y empiezas a depurar una interfaz «faltante» que nunca faltó. La función estaba bien; la vista previa apuntaba al checkout equivocado. Perdí tiempo real en esto antes de darme cuenta de qué pasaba, y lo anoté en las notas del propio proyecto para que mi yo futuro (y cualquier agente al que le entregue el repo) revise el objetivo de la vista previa antes de depurar errores fantasma.

La trampa relacionada: el archivo de configuración que define esas vistas previas se comparte entre sesiones paralelas, así que dos agentes editándolo a la vez pueden sobrescribir en silencio las entradas del otro. Si vas a correr una flota, trata la configuración compartida como un recurso en disputa: te morderá exactamente una vez, y luego nunca más si anotas la lección.

Ese hábito —capturar cada tropiezo ganado a pulso en un archivo duradero que la siguiente sesión leerá— es la columna vertebral silenciosa de construir con IA a cualquier escala. El contexto se evapora entre sesiones; las lecciones escritas no.

Los trucos offline-first de los que estoy orgulloso

Como Quads no tiene backend, algunos problemas necesitaron respuestas ingeniosas y sin servidor:

  • El puzle diario se elige de forma determinista a partir del día local del año, así que cada jugador en el mundo recibe el mismo puzle con cero coordinación de servidor. (Lección extra: lancé, y luego arreglé de inmediato, un error de más-o-menos-uno por horario de verano en esa aritmética de fechas. Las fechas siempre son más difíciles de lo que parecen.)
  • «Reta a un amigo» codifica un puzle en un código de texto corto —algo como QC1-01-03-3— resguardado por una suma de verificación para que un error de tipeo no pueda producir un reto válido pero equivocado. Tu amigo lo teclea en su propia copia de la app y juega la posición exacta, completamente offline. Sin cuentas, sin emparejamiento, sin servidor.
  • Las vistas previas enriquecidas de enlaces son el único lugar donde sí usé un poquito de código de servidor. Cuando compartes un enlace de reto, una única Cloudflare Pages Function renderiza etiquetas Open Graph por código para que el enlace se despliegue bien en iMessage o WhatsApp. Los rastreadores sociales no ejecutan JavaScript, así que una vista previa renderizada en el cliente se vería idéntica para cada enlace; una pequeña función lo arregla sin necesitar un backend de verdad.

Ninguno de estos es difícil una vez que los ves, pero cada uno es un lugar donde la respuesta perezosa es «levanta un servidor y una base de datos», y la mejor respuesta es «haz la cosa ingeniosa offline». Evitar un backend por completo es por lo que una sola persona pudo lanzar y mantener esto.

Del hackathon a la ficha en la tienda

El último tramo —la parte que nadie te cuenta de un «proyecto de 2 horas»— es todo lo que hay entre «funciona en mi teléfono» y «desconocidos pueden descargarlo». Internacionalización en ocho idiomas de una sola pasada. Textos de la tienda que nunca usan el nombre con marca registrada. Herramientas de compilación para la tienda de apps, versionado y las limpiezas de permisos específicas de cada plataforma que evitan que una revisión de la tienda te rebote. Esto es poco glamoroso, y es donde muchos proyectos paralelos mueren en silencio.

Hacerlo con Claude no acortó la lista, pero hizo cada ítem lo bastante barato como para que de verdad terminara. Esa es la historia real de Quads: no que la IA escribió un juego de mesa —mucha gente puede prototipar uno—, sino que bajó el costo de la última milla lo suficiente como para que una broma de hackathon se convirtiera en un producto publicado.

Si tienes una idea pequeña sobre la que has estado sentado, ese es todo mi argumento. Empieza la versión de 2 horas. Te sorprenderá lo cerca que se ha movido la meta. Y si quieres ver hasta dónde sube en la escala este mismo estilo de trabajo, lo llevé hasta el final con un SaaS multiinquilino completo: cómo construí Courtlines, una plataforma de gestión de clubes, con Claude.

Juega Quads en playquads.com.

Preguntas frecuentes

¿Qué es Quads?

Quads es un juego de mesa para móvil para iOS y Android: una reimplementación limpia del clásico juego de estrategia abstracta Quarto. Juegas en un tablero de 4×4 con 16 piezas únicas, y el giro es que tu oponente elige la pieza que tienes que colocar. Es gratis para jugar, con modos para solitario, pasar y jugar, un puzle diario y retos asíncronos. Encuéntralo en playquads.com.

¿Claude escribió todo el juego?

Claude escribió la gran mayoría del código, trabajando a partir del diseño y las decisiones que yo poseo. Ejecuté varias sesiones de Claude en paralelo, cada una en su propio git worktree, construyendo distintas funciones que fusioné entre sí. La lógica del juego, el oponente IA, la internacionalización, los sonidos y el sistema de puzles se construyeron en gran parte de esta manera y fueron revisados por mí.

¿El oponente IA dentro del juego funciona con un LLM?

No, y deliberadamente. El oponente usa IA de juego clásica: heurísticas en las dificultades bajas y una búsqueda negamax acotada en los niveles superiores, con un presupuesto de nodos estricto para que un movimiento nunca cuelgue el dispositivo. Un modelo de lenguaje sería más lento, más costoso y más débil para este trabajo. Elegir el tipo correcto de IA para el problema importa más que echar mano siempre del modelo más grande.

¿Cuánto tardó en construirse Quads?

El primer prototipo jugable salió de un hackathon de 2 horas con un amigo en un viaje a Colombia. Convertir ese prototipo en una app pulida y publicable en ambas tiendas de apps —con internacionalización, un oponente IA real, retos offline y cumplimiento de las tiendas— tardó considerablemente más, pero cada paso individual fue lo bastante barato con IA como para que el proyecto de verdad llegara a la meta.

¿Cuál es la mayor lección de construir Quads con Claude?

Dos cosas. Primera, ejecuta agentes en git worktrees aislados para poder construir varias funciones en paralelo sin que se pisen entre sí. Segunda, anota cada tropiezo en un archivo duradero que la siguiente sesión leerá: el contexto se evapora entre sesiones, pero las lecciones escritas se acumulan. Para el panorama más amplio de este estilo de trabajo, mira cómo construí Courtlines con Claude.

Seguir leyendo

Artículos relacionados

Seguir leyendo

Recibe el manual de IA en tu buzón

Cada miércoles. 28.400+ operadores. Sin relleno.

↵ para ver todos los resultados esc esc para cerrar