SUDOKU 1.0 ---------- (C)2005-2006 Miguel Angel Rodriguez Jodar (McLeod / IdeaFix) Versión en BASIC puro del popular juego de lógica. Usa tu Spectrum como un experto jugador y con su ayuda, resuelve puzzles de cualquier nivel de dificultad. Puedes elegir entre obtener una pequeña ayuda o dejar que el Spectrum resuelva todo lo que pueda dar de si. Podrás grabar tus partidas, editarlas, copiar puzzles en tu Spectrum usando como fuente cualquiera de los que hay en periodicos y revistas. A modo de ejemplo, se incluyen tres capturas de pantalla de SUDOKU en acción con el puzzle de sudoku.com de Enero del 2006. La primera corresponde al puzzle recién editado en SUDOKU. La segunda corresponde a un momento en la resolución automática del puzzle, y la tercera, a la pantalla una vez que el Spectrum ha resuelto completamente el puzzle. En la cinta se incluyen también algunos puzzles, desde sencillos hasta nivel "diabolico". Instrucciones de uso -------------------- SUDOKU está dirigido por menus, que aparecen en la parte inferior de la pantalla. Cada opción se activa pulsando la tecla de la letra que está resaltada en cada opción. Por norma general, las teclas QAOP y los cursores mueven la posición del cursor por todo el tablero. Cuando se llega al final, el cursor aparece por el otro lado, lo que facilita las tareas de edicion y búsqueda de soluciones sin tener que recorrer el tablero completo. En el juego se hace mención a los "posibles". Los "posibles" se refiere a la lista de números posibles que pueden estar en una determinada casilla. El menú principal tiene las opciones: Archivo Editar JUgar Fin Archivo : entra en el menú de Archivo Editar : permite editar el puzzle actual Jugar : entra a la busqueda interactiva de la solución del puzzle actual Fin : termina el programa Menú Archivo. Tiene las siguientes opciones: Nuevo Cargar Grabar Opciones Nuevo : borra el puzzle actual. Cargar : carga el puzzle cuyto nombre especifiquemos, desde el dispositivo actual Grabar : graba el estado del puzzle actual con el nombre que especifiquemos, en el dispositivo actual. Opciones : permite cambiar el dispositivo de almacenamiento actual. Se soporta Cinta, Microdrive (y cualquier periférico compatible con la sintaxis del Microdrive), y Wafadrive. Menú Editar : durante la edición, las teclas QAOP/cursores mueven el cursor por el área del tablero. Los números del 1 al 9 ponen ese número en la casilla actual. SPACE borra el número que hubiera en la casilla actual. ENTER da por finalizada la edición. Jugar : durante el juego están disponibles las siguientes opciones: QAOP/cursores: mueven el cursor como ya se ha comentado. Números del 1 al 9: ponen dicho número en la casilla actual. OJO! Para no ralentizar (aún más) el programa, no se actualiza la lista de posibles hasta no usar la opción de Resolver SUDOKU. SPACE: borra el número en la casilla actual. Save (slot): guarda una copia del estado actual del puzzle en una de las 5 memorias disponibles. Load(slot): carga un puzzle grabado previamente con Save(slot) Estas memorias sirven como apoyo a la resolución interactiva, de la siguiente forma: en el momento en que nos encontremos en una encrucijada y no sepamos qué número poner, por haber más de una posibi- lidad, grabamos el puzzle a un slot que no usemos, después ponemos el número y seguimos resolviendo. Si no llegamos a ningun sitio (el número estaba mal puesto y eso nos conduce a un callejon sin salida), no tenemos más que recuperar el sudoku grabado en memoria y probar otra opción. Fila: entra al menú de Filas. Se usa la fila actual (en la que está el cursor). Desde aqui tenemos dos opciones: Pulsando un número del 1 al 9 muestra las posibles ubicaciones de ese número dentro de la fila actual. Pulsando la opción "Detalles", podemos ver con detalle esa fila: los números que la integran, y en las casillas que están vacías, la lista de posibles valores que podrían ir en esa casilla. Desde esta pan- talla podemos movernos a otra fila pulsando su número de fila. Columna: El menú de Columnas funciona exactamente igual que el menú de Filas. Bloque: el menú de Bloques funciona exactamente igual que el menú Filas, EXCEPTO que la opción de "Detalle" está deshabilitada por problemas de tiempo (para entregar este programa al concurso). Resolver: entra al modo de resolución automático. El Spectrum realizará un primer análisis para buscar casillas cuya lista de posibles valores sólo tenga 1 valor, y los pondrá. Éste es el análisis más sencillo. Si encuentra alguno, preguntará al usuario si quiere seguir buscando, o no (S/N). También se da la opción de búsqueda exhaustiva (A) en la que el Spectrum no vuelve a preguntar al usuario, sino que sigue con el proceso de resolución de forma automática hasta que haya conseguido resolver el SUDOKU o hasta que sus análisis no encuentren más elementos (en puzzles muy dificiles puede pasar). Notas técnicas -------------- Se han implementado los siguientes análisis de resolución automática: Análisis simple, de valores posibles aislados. Análisis "must be" para filas, columnas y bloques. Análisis de parejas para filas, columnas y bloques. El resto de análisis se han obviado por la lentitud que añaden a la de por si lenta ejecución de muchas de estas rutinas en BASIC puro.