Está en la página 1de 22

INSTITUTO TECNOLOGICO SUPERIOR DE LOS RIOS Reporte del juego de Sudoku Materia: Inteligenci Arti

cial. Integrantes: Eder Juarez Montuy, Lucero Carrera Real, Dominga del C. Salazar Dehara, Edgar Eduardo Hernandes Alvarez. M.C. FERNANDO VERA PLIEGO Balancan, Tab. 13 Mayo, 2012 1

Abstract Este artculo se basa sobre la aplicacion de un juego de Sudoku en Java. Esta version incluye una interfaz intuitiva con la posibilidad de utiliza r la ayuda y comprobar si hay errores, mediante el encendido de ayuda de colores que marcara todos los campos posibles para el numero seleccionado . Despues de la comprobacion de

errores, el programa marca los campos validos con color verde y los campos no validos en rojo. Las reglas usadas en esta aplicacion son los siguientes: Un entero solo puede aparecer una vez en: ... la misma

la. ... la misma columna. ... la region 3x3. INTRODUCCION Hoy en dia y en la rama de la Inteligencia Arti

cial existen muchos tipos de busqueda, se de

ne que la Busqueda es un metodo computacional para resolver problemas. Asi como la busqueda Sistematica esta se encarga de que si existe una solucion la encuentra hasta su estado deterministico. Los problemas de busquedas, que generalmente encontramos en Ciencias Computacionales , son de un estado determinstico. Por ejemplo, en los algoritmos de busqueda de anchura y de

busqueda de profundidad, uno sabe la secuencia de los nodos visitados en un Sin embargo, los problemas de b arbol. usqueda, los cuales siempre tendremos que tratar en Inteligencia arti

cial, son no determinstico s y el orden de elementos visitados en el espacio de busqueda depende completamente en el conjunto de datos. Dependiendo de la metodologa de expansion de un espacio de estado y consecuentemente el orden de los estados visitados los problemas de busqueda se nombran diferentes: Busqueda de Metas a Profundidad. Busqueda

de Metas en Anchura. Busqueda Optima. EJECUCION DEL MODELO La parte mas importante de esta aplicacion es en la clase de juego, que incluy e las siguientes funcionalidades: Generar una nueva solucion; Generar un nuevo juego de una solucion; Lleve un registro de entrada del usuario; Comprueb e la entrada del usuario mediante

una solucion generada; Lleve un registr o del numero de seleccionados; Lleve un registro de la ayuda esta encendido o apagado. Como la clase Observable juego se extiende, se puede y se noti

cara a los observadores cuando ciertos cambios se han realizado. SOLUCION Antes de que podamos empezar a generar un juego, primero debemos generar una solucion. Esto se logra mediante el metodo siguiente, que debe ser llamado por el usuario como generateSudoku (new int [9] [9], 0). Los pasos siguientes medidas: Check if a

solution is found. Found solution is returned. Not found continue. Un ArrayList se llena con los numeros de 1 a 9, y arrastrando los pies. Arrastrando los pies es importante, porque de lo contrario, siempre reciben la misma solucion. Mientras hay un numero en el ArrayList, lo siguiente sera ejecutado: El numero 2

posible siguiente se obtiene por el metodo getNextPossibleNumber(int [ ][ ], int, int, List Integer), Encontrado el numero se coloca en la ubicacion actual. El metodo se denomina de forma recursiva con un aumento del ndice, y devolver el valor se almacena en una variable. Si esta variable no es nula, se devuelve, de lo contrario, la ubicacion actual

se vuelve a poner a 0 (es decir, el campo es un espacio en blanco). GENERAR JUEGO Generar un juego es simplemente alcanzar constantemente la eliminacion de un campo al azar y asegurarse de que el juego sigue siendo valido. Valido signi

ca que solo hay una solucion. Esto se consigue mediante los siguientes metodos. El usuario debe llamar al primer metodo, que utiliza el segundo metodo. Una lista se llena con todas las posiciones posibles. La lista se barajan. No se por que. Sospecho que de esta manera, las piezas estan mejor distribuidos. Con el resultado de

que el juego es mas difcil. La lista se pasa al metodo de generateGame (int [ ] [ ], <Integer lista) y el valor de retorno sera devuelto. IMAGENES En las siguientes imagenes se muestra la ejecucion de este juego y posteriorment e como se genera.

Conclusion En este captulo, se hablo de la realizacion del juego, en el cual el objetivo principal es la practica de la realizacion de la busqueda de la solucion posible para el juego. No obstante ya teniamos el conocimiento propio de como es que funcionaba una busqueda. Sabemos que funciona de varias formas los distintos

tipos de busqueda, como por ejemplo la busqueda de profundidad el cual se encarga de una busqueda de seguimiento de una rama de un arbol asta su ultimo nodo y asi asta cubrir todo el arbol, tambien se encuentra el de anchura y el de optimizacion. 5

REFERENCIAS 1. http://www.codeproject.com/Articles/90885/Sudoku-Game-in-Java 6

También podría gustarte