PAUL GUERRERO software engineer
← proyectos

lighthouses-bot

  • rust
  • heuristics
  • game-bot

Para un concurso de programación monté un bot en Rust que jugaba a un juego de control de territorio. En tres días pasó por ocho generaciones, y el recorrido fue una lección sobre cuándo la complejidad ayuda y cuándo solo estorba.

Probé lo vistoso: búsqueda en árbol tipo MCTS, aprendizaje por refuerzo, Thompson Sampling para elegir estrategia. Casi nada de eso sobrevivió. En partidas de ocho jugadores, el bot que «aprendía» tomaba mejores decisiones de media pero perdía, porque cualquier error de cálculo era penalizado al instante por los rivales. Ganaba la heurística explícita, la que decidía en menos de un milisegundo.

El momento más claro fue una versión que reescribí para ser más sofisticada: más capas, más matices. Ganaba el 34% de las partidas. La anterior, más simple, ganaba el 53%. Revertí el cambio y me quedé con una lección: la complejidad añade modos de fallo más rápido de lo que añade valor.

La otra lección no fue sobre IA, sino sobre leer. El reglamento decía una cosa y el motor del juego hacía otra; cinco ventajas salieron de leerme el código en vez de la documentación. El bot que siguió las reglas al pie de la letra quedó último.


Cómo está hecho — Rust · heurísticas explícitas · sin dependencias de IA