N-Puzzle
Este post fue migrado de un blog hecho con Wordpress. Si se ve mal, dejame un comentario y lo arreglo.
Hace unos días mandé a la lista de correos de PyAr una implementación inicial del juego N-Puzzle. n-puzzle-0.1.tgz.
Es muy sencilla. Toma una imagen, la parte en cuadraditos, quita uno de los cuadraditos y los mezcla. Luego uno puedo deslizar los cuadraditos adyasentes al espacio en blanco con las flechas de teclado. El objetivo del juego es recomponer la imagen original.

Ojo! Si bien en esta nueva versión apretando la tecla 'S' entramos y salimos del modo Auto Solve, no estoy usando IA para implementarlo. Siempre pueden mirar el código y ver como lo estoy haciendo :)
Actualmente el juego está planteado como una prueba de concepto más que como un programa totalmente usable. Esto implica que pueden ocurrir errores durante su ejecución y que algunas opciones que podrían ser configurables están clavadas en el código:
- N es el número de fichas que participan del juego: 8 (en un tablero de 3 x 3), 15 (en uno de 4 x 4), 24 (en uno de 5 x 5). Por defecto es 8 pero puede cambiarse en el archivo
run.py
. - La imagen que se usará para generar las fichas se llama ejemplo.jpg y debe estar en el mismo directorio que los scripts (yo proveo una). Pueden pisarla con otra imagen o pueden cambiar la ruta a la misma en el archivo
run.py
. La imagen debe ser de 600 x 600 pixeles. - El desordenamiento original del tablero se efectua mediante un número X de movimientos. En el código fuente el valor usado es 20 pero puede cambiarse en el método
__init__
de la clase Puzzle en el archivopuzzle.py
(van a encontrarlo en la llamada al método_shuffle
).
El puzzle resuelto se ve así:

0.1-1: mix(x,y) se realiza ahroa como x,y = y,x en lugar de usar una variable temporal. Cada Card tiene un cid (Card ID), un par i,j correspondiente a su posición original en el tablero. El desordenado del tablero se realiza mediante el movimiento aleatorio de las piezas (usando los métodos up, down, right y left) para evitar que el juego comience con una configuración que no tiene solución (Para un ejemplo, Google: 14-15 Puzzle). Apretando la tecla 'S' se entra y sale del modo 'Auto Solve' en el cual la computadora nos ayuda a resolver el juego. Atención: NO IA was used in this feature.
Requiere Python y PyGame. Si tienen problemas para instalarlos mandenme un mail y los ayudo.
Comentarios
Comments powered by Disqus