Pruebas Autónomas de Super Mario Usando Modelos de Comportamiento

El artículo profundiza en los métodos de prueba autónoma utilizados en Super Mario Bros., empleando un enfoque de modelo de comportamiento. Este es un seguimiento de una serie en curso que busca perfeccionar el juego autónomo y completar niveles sin intervención humana. El enfoque principal es el uso de un generador de entradas basado en mutaciones, que invierte bits en los datos de entrada para crear escenarios variados para probar la respuesta del juego, revelando situaciones extremas que podrían pasar desapercibidas mediante pruebas tradicionales.
Aquí hay un fragmento de código de la metodología:
import mario
import random
def generate_input(starting_byte, flip_probability, input_length):
input = []
next_byte = starting_byte
for _ in range(input_length):
for j in range(8):
if random.random() < flip_probability:
next_byte ^= (1 << j)
input.append(next_byte)
return input
Este enfoque está diseñado para imitar el juego real, permitiendo que ciertas teclas permanezcan presionadas durante múltiples fotogramas, similar a cómo los jugadores mantienen presionado 'mover a la derecha' mientras presionan 'saltar'. Se mantiene una colección de caminos, representados por secuencias de entrada, que se reproducen selectivamente para encontrar un curso óptimo a través del juego. Una simple función de adecuación favorece los caminos con la posición más alta en el eje x, pero debido a posibles callejones sin salida, se explora un conjunto diverso de caminos con puntuaciones variadas para asegurar pruebas exhaustivas.
Esta técnica es particularmente útil para desarrolladores involucrados en el desarrollo de juegos o aquellos interesados en la automatización de pruebas, ofreciendo información sobre la exploración eficiente de espacios de estado complejos.
📖 Lee la fuente completa: HN AI Agents
👀 Ver también

Optimización de Costos de OpenClaw: Cómo un Desarrollador Solucionó un Error de $750 con Enrutamiento de Modelos
Un desarrollador comparte cómo cambiar todos los subagentes de OpenClaw al modelo gratuito Hunter Alpha en OpenRouter provocó fallos silenciosos, incluido un agente de producción de video que generó código válido pero produjo un video negro silencioso de 9 segundos. La solución implicó implementar un enrutamiento explícito de modelos basado en los requisitos de la tarea.

Usar Archivos Markdown como Motor de Flujo de Trabajo para Claude Code en Kubernetes
Un desarrollador reemplazó herramientas tradicionales de pipeline como Dagster o Prefect con archivos markdown en inglés simple que Claude Code ejecuta como un CronJob de Kubernetes. El sistema coordina los pasos escribiendo artefactos en disco y ha estado funcionando durante más de un mes.

El agente de IA RunLobster construye un panel funcional a partir de una solicitud en lenguaje natural.
Un desarrollador informa que RunLobster construyó e implementó un panel de control completo con integración de Stripe y autenticación en respuesta a un único comando en lenguaje natural, completando en minutos lo que normalmente tomaría días.

Usando Claude Code para Operaciones de Lanzamiento al Mercado: Patrones de Ingeniería de Contexto
Un desarrollador comparte patrones prácticos para usar Claude Code más allá de la codificación, específicamente para ejecutar operaciones de comercialización que incluyen scraping, enriquecimiento, bases de datos, infraestructura de correo electrónico y contenido multiplataforma. Las técnicas clave incluyen archivos CLAUDE.md, delimitación de sesiones, herramientas CLI sobre servidores MCP y subagentes para tareas pesadas.