Inteligencia artificial en Arduino – Un jugador invencible de Tic Tac Toe Deja un comentario

Puede descargar nuestro e-book ‘Learn Arduino from Scratch’ de este enlazar

Es difícil imaginar un Arduino con solo 2k de RAM capaz de jugar tic tac toe mejor que la mayoría de nosotros. Así es, un jugador inigualable de Tic Tac Toe con una memoria de menos de 2 kilobytes. En este tutorial implementaremos un jugador perfecto de Tic Tac Toe que nunca perderá, solo puede ganar o dibujar.

Tic_tac_toe
Tic_tac_toe

En tales juegos simples, donde la cantidad de movimientos posibles son limitados y respectivamente pequeños, el algoritmo minimax es muy útil. El algoritmo minimax funciona mejor cuando se puede predecir el final del juego. Un juego de mesa como el tic tac toe es relativamente simple con solo 9 pasos. Entonces, el árbol de decisión de todos los movimientos posibles debe tener una profundidad de solo 9 niveles. Dicho esto, ¡las permutaciones totales ascienden a 9! (Factorial) que es 362,880 aunque hay muchos juegos que terminan antes de que la cuadrícula se llene, por lo que ese número es mucho menor.

Entonces, en Runtime Projects decidimos probar esto creando un jugador invencible de Tic Tac Toe. El juego se enviará a través del puerto serie para no complicar las cosas. Sin embargo, puede usar este código para crear su propia versión con pantallas LCD o LED. No vamos a entrar en detalles sobre la implementación del algoritmo aquí. Esta es una programación en C pura con un poco de intención de mantener una huella de memoria muy pequeña. Para que el juego sea un poco interesante, hemos asignado un nivel de dificultad para que la IA nos dé a los humanos la oportunidad de ganar. El nivel de dificultad se establece de 1 a 8. 1 es el más fácil y 8 es imposible. Primero, se le pide al usuario que diga quién está comenzando el juego. Entonces, colocando las X es simplemente ingresando el número de la caja de 0 a 8.

Descargue el código de aquí

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?