Agente basado en Monte Carlo Tree Search (MCTS) diseñado específicamente para dominar el Connect6, un juego donde el factor de ramificación supera las 300 opciones por movimiento. Implementado en C++17, el sistema está contenerizado con Docker y se comunica vía gRPC para competir en el entorno distribuido de la asignatura Inteligencia Artificial I.
Connect6 se juega sobre una cuadrícula estándar de 19x19. La partida comienza con el jugador Negro colocando 1 piedra en su primer turno; a partir de ahí, ambos jugadores colocan 2 piedras por turno. El objetivo es alinear 6 fichas propias en línea recta (horizontal, vertical o diagonal) para declarar la victoria. El servidor gestiona automáticamente la legalidad de los movimientos y el límite de tiempo (10 segundos por turno).
🤖 IA vs IA: Dos agentes autónomos compiten sin intervención humana.
👤 Humano vs Humano: Dos jugadores se turnan en la misma máquina para jugar.
🧠 IA vs Humano: Un jugador real se enfrenta directamente al agente MCTS.
Cada nivel del árbol representa la colocación de una sola piedra.
Permite evaluar la regla de 2 piedras por turno como una secuencia lógica, optimizando la búsqueda de combinaciones tácticas (dobles amenazas).
Fórmula UCT mejorada con conocimiento de dominio: text UCT = (v/n) + C√(ln(N)/n) + Prioridad_VCDT/(n+1) Inyecta un valor extra a los nodos que generan o bloquean amenazas de nivel 4 o superior.
Equilibrio perfecto entre exploración y explotación con guía estratégica.
Filtro de Relevancia: Solo expande casillas cercanas a piedras existentes, podando ramas irrelevantes.
Detección de Jugadas Urgentes: Evaluación previa que colapsa el árbol si detecta:
Victoria Inmediata: Completa el 6-en-raya y elige esa jugada directamente.
Bloqueo Obligatorio: Si el rival tiene amenaza Nivel 5 o Nivel 4 doble, restringe la expansión solo a casillas de bloqueo.
40 pasos de simulación (equivale a 20 turnos completos).
Política de "Heurística Agresiva": Los jugadores simulados priorizan ganar o bloquear antes de moverse al azar.
Respeto estricto de las reglas (1 ficha inicial, luego 2 por turno).
Sistema propio de gestión de estados que mantiene la integridad del tablero durante miles de iteraciones por segundo.
Ejecute el siguiente comando
docker compose up --build
Abre la URL que aparezca en la terminal (normalmente http://localhost:5173 o similar) en tu navegador.