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.
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í