← proyectosUltimate Tic Tac Toe
// proyecto — Ultimate Tic Tac Toe

Ultimate Tic Tac Toe

Nueve tableros y un rival que construyes tú. Créalo, véncelo y mejóralo.

Ultimate Tic Tac Toe — captura
01// historia

Un triqui con varias dimensiones

En primer semestre iba un poco adelantado en Introducción a la Programación. Ya había hecho un curso antes y conocía Pygame, una forma de hacer juegos 2D sencillos sin montarse en Unity o Godot. Y andaba obsesionado con un juego de papel: un triqui con varias dimensiones, donde cada jugada te manda al oponente a otro tablero. Se parece al ajedrez en eso: cada movimiento importa, pero importa más adelante.

02// decision

Un triqui a cambio del parcial

Le propuse a mi profesora un trato: si yo hacía un triqui jugable en Python y en Java, ella me eximía del parcial. De Java no sabía nada. Aceptó.

Por esa época se hablaba de Blackbox, un modelo de IA para programar; nada de Claude ni de Codex. Me tomó semanas, algo que hoy haría en una o dos tardes. Lo terminé con todas las reglas del juego en Pygame, jugable y, para mi nivel, increíble. Me divertí muchísimo. Quería poder jugar solo, pero no sabía hacer un agente, así que hice uno aleatorio. Era malísimo, pero jugaba conmigo.

03// historia

Connect 4 me devolvió al agente

Años después vi Fundamentos de IA en la universidad y aprendimos a construir agentes pequeños que aprenden por refuerzo para jugar Connect 4. Parece algo aislado, pero me recordó muchísimo a aquel agente aleatorio. Decidí mejorar la interfaz y abrir un espacio dentro de la aplicación para escribir scripts de IA y jugar contra ellos.

Esta vez me arriesgué más. Estaba curioseando Rust y el framework Tauri, así que usé la velocidad de Rust para correr los agentes en una app de escritorio. Con ayuda de Claude Code salió bastante sencillo.

04// arquitectura

Motor de IA en Rust y agentes externos

El análisis de jugadas corre en un hilo dedicado de Rust mediante Minimax con poda Alpha-Beta y simulaciones Monte Carlo (MCTS). Adicionalmente, implementé una interfaz para conectar agentes escritos en Python con un límite estricto de tiempo de respuesta, permitiendo experimentar con heurísticas personalizadas.

9 (81 casillas)
subtableros
Alpha-Beta · MCTS
algoritmos
14 del sistema
logros
Partida en Ultimate Tic Tac Toe

↳ Tablero activo y cálculo de jugadas sobre la grilla compuesta.

05// decision

Multijugador en tiempo real con SHA-256

Para las partidas en línea sobre WebSockets, cada paquete de jugada incluye el hash SHA-256 del estado completo del tablero. Si se detecta alguna discrepancia entre clientes debido a latencia o desconexión, el estado se resincroniza de inmediato sin reiniciar la partida.

Menú principal y modos de juego

↳ Selección de modos: partida local, contra IA o emparejamiento online.

06// decision

Agentes hechos con bloques

Después me invitaron a apoyar el taller Ingeniero de IA por un día en la Universidad de La Sabana. La pregunta era cómo hacer que personas que nunca han programado, y que no saben qué es MCTS ni Minimax, se divirtieran construyendo algo interactivo. Me acordé de los bloques con los que aprendí a programar en el colegio.

De ahí salió la idea: armar agentes de Ultimate Tic Tac Toe con bloques, pero bloques que no limitaran la creatividad sino que la empujaran. Muchas de las situaciones que uno se plantea al jugar en la vida real quedaron escritas como bloques para poder combinarlas. Al final, un torneo con todos los agentes para ver quién había hecho el mejor.

07// resultado

Crea a tu rival

Agrandé la app: ahora es web con Next.js, escritorio con Tauri y móvil con React Native. La idea no es darte un bot prefabricado para que juegues contra él, sino que juegues contra tu propia creación. Crea a tu rival, véncelo y mejóralo.

Construido con:Tauri 2.0, Next.js, React Native, Rust, Zustand, Supabase y WebSockets.
siguiente proyecto
caligrama→

Un poema que, además de leerse, dibuja aquello de lo que habla.