Artículo creado en 2005.
Resolver Sokoban
El Sokoban es un juego de mecánica muy simple, entretenido si te gustan los rompecabezas, pero (al menos para mi) exasperante cuando te quedas atascado con alguno. Hubo uno especialmente c.br.n (seamos francos), de estos que a primera vista no parecen muy complicados (estos son los peores) y del que lo único que saque fué un brutal calentón de cabeza, vamos, que no lo resolví (no es que los resuelva todos, ya me gustaría, pero es que este...) en fin, que sólo por encontrar la solución de ese Sokoban realicé este simple (simple por bruto) Solver (en castellano sería algo como Resolvedor) que dado un Sokoban te dice si hay solución y los pasos (mínimos) a seguir. Siento si el interface no es muy amigable, de sobras hizo su función.
Debes tener:
- Sokoban.Exe es el programa que resuelve los tableros, la secuencia de botones que tienes que pulsar son:
- Cargar carga el tablero especificado en el archivo Tablero.txt que debe estar en el directorio actual.
- BIni que inicializa el Solver.
- BTodo que inicia el proceso de búsqueda exhaustiva, cuando encuentra una solución se detiene y te lo dice; si no encuentra ninguna también.
- Como va si se toma su tiempo, puedes pulsar este botón para ver en la barra de título como va la búsqueda.
- Paso pulsando sucesivamente este botón se muestra los pasos que se deben darse para resolver el Sokoban.
- Tablero.txt en este archivo debes dar los datos del tablero, su estructura son (en líneas) la siguiente:
- Primera línea cualquier comentario, no se usará para nada esta línea, que será ignorada.
- Segunda línea dos números enteros (separados por un espacio o tabulador) que representan el número de casillas de anchura y de altura del tablero.
- Siguientes líneas por filas y sin separaciones, los dígitos en hexadecimal que indican el contenido de cada casilla (deberá haber tantas líneas como altura tenga el tablero y cada línea tendrá exactamente tantos dígitos como celdas de ancho tenga el tablero). Cada dígito en hexadecimal es la suma de los siguientes valores según se desee "meter" en esa casilla los siguientes elementos (el valor 0 indica que la casilla está vacía):
- 1 indica que la casilla es un muro, se debería rodear todo el tablero con muros.
- 2 indica que es la casilla en la que inicialmente está el cursor, sólo debería indicarse una vez.
- 4 indica que en esa casilla hay una caja que debe ajustarse.
- 8 indica que esa casilla es una de las casillas objetivo de caja. Deberá haber (en caso contrario no habrá solución) al menos tantas casillas objetivo como cajas a ajustar.
La aplicación está programada en Visual C++ usando las MFC.
descargar ejecutable de Resolver Sokoban.
descargar código fuente de Resolver Sokoban.
Opinado el 14/02/10 18:42, valoración 









excelente
Opinado el 05/01/11 14:20, valoración 









Esta muy bueno, gracias, pero lamentablemente no tiene la posibilidad de crear un tablero con una de las cajas ya sobre un objetivo. juliocesarch@gmail.com
Opinado el 05/01/11 14:48, valoración 









¿Como que no Julio?, puedes poner las cajas allí donde desees.
Opinado el 06/01/11 04:03, valoración 









una pregunta: como se hace para indicar en el text, que una caja ya esta en un objetivo al empezar el juego ?
Opinado el 17/03/11 22:54, valoración 









Excelente el solver. Se coloca C para indicar que el objetivo y la caja están en el mismo lugar. Una A indica que el cursor y un objetivo están en le mismo lugar.
Opinado el 07/04/11 19:52, valoración 









Esta bueno pero no pude hacer que ande, ya que lo dejé una semana encendida a la pc, paso los 2 millones pero no me encontró ninguna solución...
Opinado el 27/04/11 02:08, valoración 









Excelente programa, lo probe con un puzzle que no podia pasar y en solo minutos me dio el resultado.
Opinado el 19/08/11 05:37, valoración 









Excelente juego me gusta mucho y me entretengo aparte de que exploto mi intelecto, felicidades al creador del juego.
Opinado el 02/11/11 19:08, valoración 









Una web muy conseguida y los temas tambien
Opinado el 08/01/12 01:05, valoración 








¿Te ha gustado? ¡aporta tu opinión!