Home
Antonio Francisco Urbano Muñoz EL DIRECTOR DEL PROYECTO
Contents
1. DEVELOP OF AN INTELLIGENT GO S STRATEGY GAME PROGRAM THAT HELPS LEARNING AUTO EVALUATES AND COMPETES ABSTRACT This project consists in developing an application that uses artificial intelligence The application uses the six basic rules of the Go game and a set of strategies this allows novice players to learn progressively with independent and competitive evaluation This project will have high impact in strategy games introducing into the market the first intelligence application for learning the Go game The project development has had various parts those parts are a friendly user interface for the game an algorithm to apply the game rules an expert system to implement the basic strategies of the game and a friendly user interface for editing problems The evolutionary development is the development methodology used The method of evolutionary development examines requirements carefully before proceeding to the next stage The requirements that are understood are selected for the first version of the application While development is carried out the users test the different prototypes and provide backup information and new requirements to developers Developers based on those requirements build newer and more complete prototypes of the product This process is repeated until the client accepts the prototype as the one that fulfills all the requirements The database model has been developed using the entity relationship scheme Th
2. Extensiones son formas alternativas de conseguir el objetivo Descripci n de datos en este apartado se describe la informaci n intercambiada con el sistema 22 Escenario primario El sistema muestra la jugada inicial El usuario realiza un movimiento El sistema comprueba que el movimiento finaliza una jugada correcta El sistema muestra el comentario de la jugada y actualiza el perfil del usuario Extensiones 2 a El movimiento no finaliza ninguna jugada 2 a 1 Volvemos al punto 1 2 b El movimiento finaliza una jugada que no es correcta 2 b 1 El sistema muestra el comentario de la jugada Descripci n de datos Problema Idproblema Titulo Nivel Jugada Inicial Inicio Comentario Jugadas Idjugada Idproblema Jugada Comentario xito Perfil Idperfil Lvl Problema 23 a Pens Escenario primario El usuario introduce su nombre de perfil de usuario El sistema comprueba que el nombre de perfil de usuario no existe El sistema muestra a ade el perfil de usuario al sistema Extensiones 2 a El nombre de perfil de usuario no existe 2 a 1 Volvemos al punto 1 Descripci n de datos Perfil Idperfil Nombre Lvl a Pendis Escenario primario 1 El sistema muestra todos los perfiles de usuarios 2 El usuario selecciona el perfil de usuario a borrar 3 El sistema borra el perfil de usuario AAA Descripci n de datos Perfil
3. La aplicaci n pretende ser un entorno en el cual los usuarios puedan aprender a jugar al Go a la vez que se divierten procurar un entorno amigable para la creaci n y ejecuci n de problemas del juego y proporcionar de forma sencilla una manera de intercambiar los problemas creados entre los usuarios de la aplicaci n Los objetivos del proyecto son los siguientes gt Desarrollar un interfaz agradable y c moda tanto para el juego como para la creaci n de problemas Desarrollar algoritmos para aplicar las reglas del juego Desarrollar un sistema experto que implemente las estrategias b sicas del juego Desarrollar el proyecto cumpliendo la planificaci n especificada Gestionar el borrado la creaci n la exportaci n y la importaci n de los problemas Gestionar la creaci n y el borrado de los perfiles de los usuarios 2 1 Estructura de la divisi n del trabajo EDT seganid SOAM uysa ZO EOdM sewajqod ap 10UB 3 CO E 0dM os obanr LO E0OdM sodnojold ap UOISE LIBIDO yO dM oy s q E0dM soysinba op SISIpuy lt CO Z 0dM sapepisadau ap UQE SYYUSDE LO gOrdM sISIJpuy ZOdM u saJ LOMA oJUaluezue7 DOM A continuaci n se realizar una breve descripci n las actividades mostradas en el EDT gt Lanzamiento WP 00 En esta actividad se acordar n los t rminos en los que el proyecto debe ser realizado Como salida de esta actividad se obtiene el Anexo B gt
4. con l Problemas Este paquete contiene todos los objetos necesarios para aplicar un problema con xito a continuaci n se se alaran los objetos m s importantes que contiene Jugada Este objeto contiene todo lo necesario para la definici n de una jugada perteneciente a un problema para ello almacena la informaci n de la jugada que se va a jugar Esta informaci n se compone de gt Identificador de la jugada Identificador del problema Secuencia de movimientos que representa la jugada Comentario de la jugada Y V V Y Un indicador de si la jugada es la correcta o no Adem s contiene todos los m todos necesarios para interactuar con l Problema Este objeto contiene todo lo necesario para la definici n de un problema para ello almacena la informaci n del problema que se va a jugar Esta informaci n se compone de gt Identificador del problema Jugada inicial del problema Comentario para el inicio del problema Color del jugador al comenzar el problema Y Y YV Y Una colecci n de las jugadas que componen el problema Adem s contiene todos los m todos necesarios para interactuar con l 39 AplicarProblema Este objeto contiene todo lo necesario para aplicar un problema la estructura de este objeto se divide en tres partes La primera establece el escenario inicial del juego la segunda comprueba que existe una jugada en la que se est cumpliendo con la secuencia de movimientos l
5. new Font TimesRoman Font BOLD 36 m c 6 darawstringt EJemplo de Espital 15 50 5 MIiCGACaWstringk Ct CULOS Lo 90 F3 Recuperamos la fuente original miCG setFont f public void espiral 4 LE y 71 Dibujamos errculos en Los lados horizontales y 100 for x 100 x lt 200 x 10 miCG drawOvalt X Y 20 20 5 m1it6 drawOvali x Y 100 207 20 Ahora en los verticales x 100 for y 100 y lt 200 y 10 muc6 arawOvalA XV y20p20 15 m1C6 drawovalt x 100 Y 20 20 3 i public void starty 4 Hace el dibujo off line titulos espiral Ahora muestra la imagen de golpe repaint 72 10 11 12 13 14 15 16 17 18 19 Utilizando esta t cnica se ha conseguido que el tablero quede con el siguiente aspecto La clase que genera el tablero que se observa en la imagen hereda de la clase cambas lo que nos permite poder dibujar en la imagen Para ello debemos conocer las dimensiones del tablero ya que las l neas del tablero se pintan en base a una posici n absoluta en el tablero 73 10 11 12 13 14 15 16 17 18 19 A continuaci n mostraremos c mo se colocan las piezas en el tablero En esta imagen se observa como se colocan las piezas en las intersecciones para ello se dispone de un m todo que traduce en el momento del click del rat n las coordenadas absolutas del rat n a unas coordenadas relativas que se u
6. 11 12 13 14 15 16 17 18 19 Como podemos observar el interfaz es bastante Nombre Pruebas Aceptar Perfil se despliega la siguiente ventana Crear Perfil introduzca el nombre del perfil Titulo Negras Blancas Piezas Capturadas 0 0 Movimientos gt Pasar Comentarios intuitivo S1 le damos a Crear Al introducir el nombre de perfil y darle al bot n de Aceptar lo almacenamos en la base de datos II Este es el entorno de juego en el que nada al mostrarse ya podremos empezar a jugar contra la m quina Archivo Problemas Titulo 1 NT 7 Tr EAT LETE TNS EA TS doble atari basico 1 1 An LAN 4 per Aeris EN DA e 17 PI A ES A A as En A Sa E EA TEE 7 a i a es S VITA A Ca 2 Es a E E g E ET ARDE AS 7 Negras Blancas Een PE aa Y Ma as e e de AAA NAAA AA EPA IAS _ E UE EDS TR ANA AA TAS ET Piezas Capturadas 4 0 0 z Movimientos 6 p JD El 3E S 3 2D 3F 4E 4F n 5F 5G 6F 6G 9 4C 7G TE TF 10 6D 4H 11 A E 12 Pasar 13 Comentarios 14 E Comienzan Blancas 15 En esta situaci n hay un defecto en la posici n de las piedras negras averigualo y captura alguna 16 piedra negra en dos movimientos 17 18 19 Como podemos observar tenemos dos men s en la parte superior izquierda de la imagen que nos permiten salir y sele
7. Gesti n WP 01 Esta actividad se realizar a lo largo de todo el proyecto consiste en comprobar que se cumple con la planificaci n obtenida y que se cumplen los objetivos propuestos adem s de realizar la documentaci n necesaria del proyecto gt Identificaci n de necesidades WP 02 01 El objetivo de esta actividad es conocer las necesidades del cliente para ello se concertar n entrevistas con el cliente Como salida de esta actividad se redactar un informe con las conclusiones obtenidas gt An lisis de requisitos WP 02 02 En esta actividad se realizar n las siguientes actividades Reconocimiento del problema Creaci n de la lista de requisitos Casos de uso Estudio del modelo conceptual de datos Una vez realizada esta actividad se obtendr n el modelo l gico del sistema el modelo conceptual de datos y una lista de requisitos del sistema gt Dise o del juego Go WP 03 01 En esta actividad se establecer la forma en la que interact a el usuario con el entorno dedicado al juego para ello se utilizar n los casos de uso tambi n se establecer n los distintos objetos sus funcionalidades y sus relaciones teniendo en cuenta las reglas y las estrategias b sicas del juego para ello crearemos diagramas de clase En esta actividad dise aremos tambi n el aspecto gr fico del juego y los distintos men s que necesitaremos para jugar Y por ltimo se establecer n las relaciones ent
8. Idperfil Lvl Nombre 24 a Pem Escenario primario El usuario selecciona el fichero a importar El sistema comprueba que la extensi n del fichero a importar es la correcta El sistema actualiza la informaci n de los problemas Extensiones 2 a La extensi n del fichero a importar no es la correcta 2 a 1 Volvemos al punto 1 Descripci n de datos Problema Idproblema Titulo Nivel Jugada Inicial Inicio Comentario Jugadas Idjugada Idproblema Jugada Comentario xito 25 a Pens Escenario primario El sistema muestra todos los problemas existentes El usuario selecciona el problema a exportar El sistema crea un fichero con la extensi n urb y exporta el problema S Descripci n de datos Problema Idproblema Titulo Nivel Jugada Inicial Inicio Comentario Jugadas Idjugada Idproblema Jugada Comentario xito 26 Escenario primario 1 El sistema muestra un listado con todos los problemas 2 El usuario selecciona el problema a borrar 3 El sistema borra el problema de la base de datos A AAA SAA Descripci n de datos Problema Idproblema Titulo Nivel Jugada Inicial Inicio Comentario Jugadas Idjugada Idproblema Jugada Comentario xito 27 a Pens Escenario primario 1 El usuario introduce el nombre creador y nivel del nuevo problema
9. Las aplicaciones Java permiten que los programas dibujen en memoria para luego ir mostrando la imagen completa de forma suave Este es el proceso conocido como doble buffering y tiene dos ventajas fundamentales sobre el proceso normal de pintar o dibujar directamente sobre la pantalla Primero el usuario ve aparecer de golpe la imagen en la pantalla Mientras el usuario est viendo esa imagen el programa est generando la siguiente para mostrarla de golpe a continuaci n y as una y otra vez Segundo la t cnica de doble buffering involucra un objeto Image que se puede pasar directamente a varios m todos Esta capacidad para manipular objetos Image permite descomponer las rutinas de dibujo en componentes funcionales en lugar de un enorme m todo paint Para entender el doble buffering primero se necesita comprender qu es un contexto gr fico Un contexto gr fico es simplemente una estructura de datos que el sistema sabe utilizar como tablero de dibujo es decir es la zona en que se va a pintar Ya hemos visto y utilizado contextos gr fico en las declaraciones del m todo paint Publize VOIO parate Graphis g 4 El objeto Graphics g es el contexto gr fico Se utiliza g para realizar todo el dibujo Por ejemplo J Arawstrinag TiHoLlal 2302 Gwdrawrectd Loy loo Uy 0 Jy 70 Entonces Java traduce todo lo que se dibuja en g en im genes sobre la pantalla Para realizar doble buffering se necesita pues primero
10. El sistema guarda la informaci n del problema El usuario introduce la jugada inicial del problema El sistema actualiza la informaci n del problema El sistema muestra la jugada inicial del problema El usuario introduce la jugada correcta del problema El sistema actualiza la base de datos con la informaci n del problema Extensiones 6 a El usuario introduce una jugada que no es correcta 6 a 1 El sistema actualiza la base de datos con la informaci n del problema 6 a 2 Volvemos al punto 5 Descripci n de datos Problema Idproblema Titulo Creador Nivel Jugada Inicial Inicio Comentario Jugadas Idjugada Idproblema Jugada Comentario xito 28 a Pens Escenario primario 1 El sistema muestra un listado con todos los problemas 2 El usuario selecciona el problema 3 El sistema muestra los datos del problema a A Descripci n de datos Problema Idproblema Titulo Creador Nivel Jugada Inicial Inicio Comentario 29 3 3 4 Modelo conceptual de datos MARQO1 Representa Informaci n l gica de un sistema Estructura Reglas El dise o conceptual es un esquema o descripci n de alto nivel de la estructura de los datos de un sistema independientemente de la implementaci n posterior de la base de datos Caracter sticas Es un proceso dirigido completamente a los datos Enfatiza la comprensi
11. Nombre Aceptar Cancelar En esta ventana se mostrar un listado seleccionable de los problemas una vez seleccionado el problema si le damos a aceptar 6 29 exportaremos el problema con el formato urb en la carpeta donde tengamos el ejecutable del juego 60 gt Importar problema Abrir Buscar en C Mis documentos M a cI Anexos CI Mis carpetas para compartir 3 Blocs de notas de OneNote 3 Mis im genes 3 Captured Files CI Mis videos cI Coches CI My Games CI Mi m sica CA My Pando Packages C Mis archivos recibidos CI PFC presentacion Ancillae Nombre de archivo Archivos de tipo Todos los archivos El aspecto de la ventana ser concretamente este debido a que en Java existe un di logo para la selecci n de archivos con un aspecto predefinido Se deber restringir los archivos que se puedan importar a los archivos con la extensi n urb 61 3 7 Dise o de la base de datos Para comprender mejor la estructura de los datos se va a definir las tablas y los atributos necesarios para almacenar la informaci n imprescindible para el desarrollo del proyecto Para ello definiremos las distintas entidades necesarias los atributos y las relaciones entre las entidades describiendo los siguientes puntos gt Atributos se describir n las caracter sticas del elemento gt Clave primaria se definir la clave primaria de la tabla gt Clave extranjera En cas
12. aria 67 E IO E 6 09100 4 0 07 OP COP COPADO Mo A S 68 A 2S es 0119 11010 1 AAA U P A 70 ES Protono Minas 75 Aat A E 85 KP OOU DO A a A 89 J Henraniecnas utad dSn E TE 93 Os Proe ba S asas ata 94 PO I O E N A 95 Oa Pre SUDUC Aa 96 A E O S 97 TOBIO OS TA T enea a E OA 98 Anexo A Manual de Instalaci n oooonccnncnonononcnnnnnnnononncnnnnnncnnononnnnnnnnnnos I A exo B Manual lde Usua ua dd tte I IV 1 Introducci n WIK107 ANRI0O4 1 1 Breve introducci n hist rica del juego del Go El Go es probablemente el juego de tablero m s antiguo del mundo nacido en China hace m s de 4 000 a os Se dice que fue el primer Emperador de China figura mitol gica quien invent el juego para mejorar el desarrollo mental de un hijo de pocas luces Como el Ajedrez el Go es un juego de estrategia si bien difiere de este en muchos aspectos Las reglas del Go son muy sencillas y a pesar de que como en el Ajedrez los jugadores enfrentan sus respectivas capacidades anal ticas en el Go la intuici n juega un papel mucho m s importante Un proverbio dice que nunca se ha jugado dos veces una misma partida de Go Esto es bastante probable sobre un tablero de 19 intersecciones por 19 hay alrededor de 4 63x10 posiciones posibles Se estima que es jugado por unos ochenta millones de personas en el sureste asi tico siendo los pa ses predominantes China Corea y Jap n En oriente normalmente se apr
13. crear un contexto gr fico que no es presentado inmediatamente en la pantalla Creaci n de contextos gr ficos Crear contextos gr ficos tiene dos pasos Crear una imagen vac a con las dimensiones adecuadas y obtener un objeto Graphics de esa imagen El objeto Graphics que se construye en el segundo paso realiza la funci n de contexto gr fico Por ejemplo IMPO Java dwt y import java applet Applet public class CGrafico extends Applet Image dobleBuffer Graphics miCG PubliIC V tO Inre 4 IJ Inicializa el doble buffer dobleBuffer createlmagel 300 300 miCG dobleBuffer getGraphics Construye un rea gr fica de trabajo miCG setColor Color white miC6 ti 1TRectX 0 0 3007300 esize 00 4390 3 Podemos utilizar mica para dibujar cualquier cosa Las im genes se trazar n en doble buffer Cuando el dibujo est terminado se puede presentar el doble buffer en pantalla public void painti Graphics q A S lo se tiene que presentar la imagen del buffer q dtawimag e dobleButter 0 0 tOnrisS J 71 Utilizaci n de contextos gr ficos Una vez definido un contexto gr fico podemos usarlo en cualquier parte de nuestro programa Por ejemplo podemos repartir la responsabilidad para dibujar sobre varias funciones Public void titulo 4 Obtiene la fuente de texto actual y la guardamos Font f miCG getFont Seleccionamos otra fuente para el t tulo m1CG setFont
14. de abscisas public int getY devuelve la posici n relativa al eje de ordenadas public boolean getColor devuelve el color de la pieza en valores booleanos true para negro y false para blanco Cadena Es un conjunto de piezas conectadas Una est conectada a otra cuando son del mismo color y las intersecciones en las que est n posicionadas est n conectadas por una l nea Por lo que una cadena solo puede ser de un color Para definir una cadena se necesita una colecci n de piezas conectadas y que sean todas del mismo color y las libertades de la cadena Los m todos m s importantes que tenemos para interactuar con esta clase son los siguientes public void a adirPieza Pieza param Permite a adir una pieza para ello se vuelve a calcular las libertades de la cadena una vez a adida la pieza private boolean comprobarPertenenciaPieza Point punto Comprueba si existe la pieza en la cadena private boolean comprobarPertenenciaCadena Point punto Comprueba la pertenencia de la pieza a la cadena public int getLibertades devuelve las libertades de la cadena public boolean getColor Devuelve el color de la cadena public ArrayList getPiezas Devuelve la colecci n de piezas que pertenecen a la cadena public void borrarPieza Pieza p Elimina de la colecci n de piezas de la cadena la pieza en cuesti n public void combinarCadenas ArrayList param Cadena paraml int ordenada int abcisa ArrayList l
15. de usuarios Como salida de esta actividad se obtendr n los diagramas de clase y el dise o del interfaz gr fico para el entorno de gesti n gt Programaci n prototipos WP 04 En esta actividad se programar el interfaz del juego las reglas y se implementaran las estrategias del juego utilizando para ello el modelo l gico los casos de uso y los diagramas de clase realizados en la actividad de an lisis de la aplicaci n del juego Go Esta actividad est basada en el desarrollo de distintos prototipos para alcanzar la aplicaci n final del juego Como salida de esta actividad se obtendr la aplicaci n final del juego Go gt Pruebas WP 05 En esta actividad se comprobar que no se ha cometido ning n fallo en la programaci n para ello se realizar una bater a de pruebas en el ejecutable del prototipo de la aplicaci n gt Cierre WP 06 Una vez que se ha establecido que el prototipo es definitivo se realizar un cierre formal del proyecto en la que se obtiene la aceptaci n de la aplicaci n por parte del cliente 10 2 2 Organizaci n Director Coordin ador Jos Maria Rodr guez Fern n dez Miguel Angel Sanz Bobi Jefe de Proyecto Antonio Fco Urbano Mu oz An alista Programador Antonio Fco Urban o Mu oz Antonio Fco Urban o Mu oz gt Director Jos Mar a Rodr guez Fern ndez es quien propuso el proyecto Desarrollo de un programa inteligente de aprendizaje y evaluaci
16. gesti n del juego a continuaci n se se alaran los objetos m s importantes que contiene Inicio Muestra las opciones de inicio del juego gt Jugar al Go gt Editor de problemas gt Borrar problema gt Borrar perfil gt Exportar problema gt Importar problema gt Salir Adem s contiene todos los m todos necesarios para interactuar con l Borrar problema Este di logo muestra una lista de problemas seleccionable que pueden ser borrados Adem s contiene todos los m todos necesarios para interactuar con l Borrar perfil Este di logo muestra una lista de perfiles seleccionable que pueden ser borrados Adem s contiene todos los m todos necesarios para interactuar con l Exportar problema Este di logo muestra una lista de problemas seleccionable que pueden ser exportados a un fichero con el formato urb Adem s contiene todos los m todos necesarios para interactuar con l Importar problema Este di logo muestra ra z de directorios en la que 6 podremos navegar para importar los problemas con el formato urb Adem s contiene todos los m todos necesarios para interactuar con l 55 Seleccionar perfil Este di logo muestra una lista de perfiles seleccionable una vez seleccionado un perfil podremos subirlo de nivel resolviendo los problemas existentes en la base de datos Adem s contiene todos los m todos necesarios para interactuar con l Borrar perfi
17. los m todos necesarios para interactuar con l 48 Dise o de los elementos del interfaz del editor de problemas En este apartado mostraremos el dise o grafico que posteriormente programaremos para el editor de problemas gt Tablero o O O O O O AO O O O O O O IO O IO O O 19 Este es el dise o que tendr el tablero de juego es un tablero de 19 x 19 donde el usuario al pinchar en las intersecciones podr colocar las piedras 49 gt Ventana Archivo Problemal Salir Guardar Negras Blancas Piezas Capturadas Movimientos Comentarios e Negras O Blanca Acepta Esta ser la disposici n b sica de los elementos en la ventana en el hueco ir embebido el tablero de juego Como se observa en el men est la opci n salir que permitir volver al men inicial tambi n est la opci n de guardar problema que almacenar el problema creado en la base de datos 50 gt Crear problema Crear problema Nivel o Cancelar En esta ventana introduciremos la informaci n necesaria para la creaci n de problemas 51 3 6 Dise o de la gesti n En este apartado definiremos tanto el dise o del interfaz gr fico del editor de la gesti n como el dise o l gico del mismo gt Diagrama de paquetes Dominio Di logos 52 A continuaci n definiremos la funci n de los distintos paquetes l gicos que se van a utilizar para e
18. m s importantes para la aplicaci n de la l gica en este prototipo Reglas Este objeto es similar al explicado en el prototipo anterior con la salvedad de que cuando el usuario introduce la jugada inicial puede elegir el color de la pieza a colocar AccesoSql Este objeto contiene todas las instrucciones necesarias para interactuar con las tablas de problemas y jugadas tanto para lectura creaci n borrado o modificaci n de los registros que contiene Los m todos m s importantes que tenemos para interactuar con esta clase son los siguientes public void insertarProblema Problema p Una vez creado un problema este m todo nos permite a adirlo a la base de datos AplicarJugadalni Este objeto nos permite que cada vez que se pulse el bot n Aceptar una vez introducida una jugada inicial aparezca representada en el tablero la jugada inicial Pr cticamente toda la l gica del editor de problema recae en la acci n de pulsar el bot n aceptar ya que si los movimientos cumplen las reglas o no es algo que tiene integrado el tablero y ste se realizo en el prototipo III 88 4 5 Prototipo V En este prototipo se han creado todos los di logos necesarios para la gesti n del juego y una ventana inicial para la integraci n del juego del Go el editor de problemas y los di logos para la gesti n A continuaci n mostraremos los di logos junto con una breve descripci n de su funcionamiento Borrar Pro
19. problema gt Comentario para el inicio del problema gt Color del jugador al comenzar el problema gt Una colecci n de las jugadas que componen el problema Los m todos m s importantes que tenemos para interactuar con esta clase son los siguientes public int getld Devuelve el id del problema public String getTitulo Devuelve el t tulo del problema public String getCreador Devuelve el creador del problema public String getJugadalni Devuelve la jugada inicial del problema public int getInicio Devuelve un valor num rico que representa el color del usuario public ArrayList getJugadas Devuelve la colecci n de jugadas que pertenecen al problema 82 AplicarProblema Este objeto contiene todo lo necesario para aplicar un problema la estructura de este objeto se divide en tres partes La primera establece el escenario inicial del juego la segunda comprueba que existe una jugada en la que se est cumpliendo con la secuencia de movimientos la tercera indica el siguiente movimiento a realizar En la tercera parte continuamos la jugada en caso de encontrar alguna concordancia u obtenemos el siguiente movimiento que vamos a aplicar del m dulo de estrategia Los m todos m s importantes que tenemos para interactuar con esta clase son los siguientes public void iniciar Problema p Este m todo recorre los movimientos de la jugada inicial del problema los convierte al formato para qu
20. propio Un atributo compuesto es un atributo con varios componentes cada uno con un significado por s mismo Un grupo de atributos se representa mediante un atributo compuesto cuando tienen afinidad en cuanto a su significado o en cuanto a su uso Un atributo compuesto se representa gr ficamente mediante un valo 32 Los s mbolos que se van a utilizar para representar los diagramas entidad relaci n son los siguientes Nombre Entidad Nombre Relaci n Para representar la cardinalidad de las relaciones utilizaremos los siguientes s mbolos e 01 gt Para la relaci n 0 1 eo 0 gt Para la relaci n de O a muchos o 6 gt Para la relaci n de 1 a muchos 33 Diagramas entidad relaci n El modelo conceptual de datos queda como se expone a continuaci n siguiendo los s mbolos especificados anteriormente a Un perfil de usuario puede resolver ninguno o muchos problemas y un problema puede ser resuelto por ninguno o por muchos perfiles de usuarios Un perfil de usuario puede crear ninguno o muchos problemas y un problema es creado por un perfil de usuario Un perfil de usuario puede borrar ninguno o muchos problemas y un problema es borrado por un perfil de usuario Un perfil de usuario puede importar ninguno o muchos problemas y un problema es importado por un perfil de usuario Un perfil de usuario puede exportar ninguno o muchos
21. representan gr ficamente mediante rombos y su nombre aparece en el interior 31 Entidad Cualquier tipo de objeto o concepto sobre el que se recoge informaci n cosa persona concepto abstracto o suceso Por ejemplo coches casas empleados clientes empresas oficios dise os de productos conciertos excursiones etc Las entidades se representan gr ficamente mediante rect ngulos y su nombre aparece en el interior Un nombre de entidad s lo puede aparecer una vez en el esquema conceptual Hay dos tipos de entidades fuertes y d biles Una entidad d bil es una entidad cuya existencia depende de la existencia de otra entidad Una entidad fuerte es una entidad que no es d bil Atributo Es una caracter stica de inter s o un hecho sobre una entidad o sobre una relaci n Los atributos representan las propiedades b sicas de las entidades y de las relaciones Toda la informaci n extensiva es portada por los atributos Gr ficamente se representan mediante bolitas que cuelgan de las entidades o relaciones a las que pertenecen Cada atributo tiene un conjunto de valores asociados denominado dominio El dominio define todos los valores posibles que puede tomar un atributo Puede haber varios atributos definidos sobre un mismo dominio Los atributos pueden ser simples o compuestos Un atributo simple es un atributo que tiene un solo componente que no se puede dividir en partes m s peque as que tengan un significado
22. 4 Ejecutar c digo en sistemas remotos de forma segura Ser f cil de usar y tomar lo mejor de otros lenguajes orientados a objeto Java no implementa Bases de Datos ya que solo es un lenguaje de programaci n pero implementa funciones que permiten al programador realizar conexiones entre la interfaz de usuario y el Gestor de Base de Datos La conexi n entre la aplicaci n en java y la base de datos se realiza mediante los drivers en este caso se va a usar como base de datos MySql por lo que el driver que se va usar es el mysql connector java 5 0 5 MySQL es un sistema de gesti n de base de datos relacional multihilo y multiusuario con m s de seis millones de instalaciones El entorno de desarrollo que se ha utilizado ha sido Eclipse Una vez definidas las tecnolog a que se van a usar se definir n los distintos prototipos de la aplicaci n que se han realizado a lo largo del desarrollo del proyecto Para ello vamos a definir los objetivos que se han propuesto cumplir en este prototipo como se han realizado los objetivos y por ltimo evaluaremos el prototipo 67 4 1 Prototipo I En este prototipo de aplicaci n se va a desarrollar el tablero de juego Se va a seguir el dise o realizado en la etapa anterior por lo que el tablero queda con el siguiente aspecto A B D F o H I J K L M N O P Q R SE CETT TTTS TTT 19 68 Para ello se han utilizado labels etiquetas con el siguiente fondo Este fondo se ut
23. Autorizada la entrega del proyecto del alumno Antonio Francisco Urbano Mu oz EL DIRECTOR DEL PROYECTO Jos Mar a Rodr guez Fern ndez Fdo Fecha scada A V2 B2 del Coordinador de Proyectos Miguel ngel Sanz Bobi Fdo Fecha A A UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA T CNICA SUPERIOR DE INGENIER A ICAD INGENIERO EN INFORM TICA PROYECTO FIN DE CARRERA DESARROLLO DE UN PROGRAMA INTELIGENTE DE APRENDIZAJE Y EVALUACI N AUT NOMA Y COMPETITIVA DEL JUEGO DE ESTRATEGIA GO AUTOR Antonio Francisco Urbano Mu oz MADRID Junio de 2007 DESARROLLO DE UN PROGRAMA INTELIGENTE DE APRENDIZAJE Y EVALUEACI N AUT NOMA Y COMPETITIVA DEL JUEGO DE ESTRATEGIA GO Autor Urbano Mu oz Antonio Francisco Director Rodr guez Fern ndez Jos Mar a Entidad Colaboradora ICAI Universidad Pontificia de Comillas RESUMEN DEL PROYECTO El proyecto consiste en la realizaci n de una aplicaci n inteligente que partiendo de las seis reglas b sicas del Go y un limitado conjunto de estrategias aprendidas a priori reglas fijas O restricciones permita a un jugador novel realizar un aprendizaje progresivo con evaluaci n aut noma y competitiva Este proyecto causar un impacto en los juegos de estrategia introduciendo en este mercado el primer programa inteligente de aprendizaje para el juego del Go Para realizar este proyecto se ha desarrollado un interfaz agradable y c moda del juego par
24. ET y ny 3 f y e A P j y x 4 12 13 14 15 16 _ Correcta 8 Negras O Blancas 17 Editar Comentario Aceptar 18 19 Como vemos despu s de introducir la jugada inicial el checkbox ha cambiado ahora permite indicar si la jugada que vamos a introducir es correcta o no Una vez desarrollada una jugada le damos a aceptar y volveremos a la situaci n inicial del problema lo que nos permitir desarrollar m s jugadas y a adir los respectivos comentarios En el men superior tenemos la opci n problema y dentro de sta la opci n Guardar que permite guardar el problema junto con todas las jugadas creadas en la base de datos VIII Di logos para la gesti n Borrar Problema Come come basi Come come basi Come come basi supervivencia ba Come come basi Regla del Suicidi Regla del Suicidi KO basico 1 doble atari basic Punto d bil basic Come come b si 1 1 1 1 1 1 1 1 1 1 1 Este di logo me permite s lo con seleccionar un problema y pulsar Aceptar eliminar un problema Borrar Perfil Pruebas Aceptar Cancelar Este di logo me permite s lo con seleccionar un perfil y pulsar Aceptar eliminar un perfil IX Exportar Problema T tulo Come come basig 4 Come come basic Come come basic supervivencia bas Come come basic Regla del Suicidio Regla del Suicidio KO basico 1 doble atari basico Punto d bil basic Come come
25. a significativamente el proceso de exportado e importado de problemas La extensi n que tiene el fichero es urb lo que nos restringir los archivos que se pueden importar a archivos urb 91 Abrir Buscar en Mis documentos al E Ee CI Anexos CI Mis carpetas para compartir 3 Blocs de notas de OneNote 3 Mis im genes 3 Captured Files CI Mis videos 3 Coches 3 My Games CT Mi m sica CI My Pando Packages C Mis archivos recibidos CI PFC presentacion Nombre de archivo Archivos de tipo Todos los archivos X Este es el di logo que nos permite importar problemas con este di logo seleccionamos el problema que queremos importar y devuelve un File con la url del fichero que se pretende importar Desarrollo de un programa inteligente de aprendizaje y evaluaci n aut noma y competitiva del juego de estrategia Go E inicio Eg Jugar Crear Problema Borrar Problema Borrar Perfil Exportar Problema importar Problema Sala Esta es la ventana inicial en la que tenemos un men con las diferentes funciones que ofrece esta aplicaci n 92 5 Herramientas utilizadas gt Herramientas Hardware e Portatil Dell Inspiron 6400 e Procesador Intel Centrino Duo a 1 66 Ghz e Memoria 2 GB DDR2 e Disco Duro 60 GB 5400 rpm gt Herramientas Software e Sistema operativo Windows XP e Se ha utilizado como lenguaje de programaci n Java y como entorno de desarrollo Ecl
26. a el usuario algoritmos para la aplicaci n de las reglas del juego un sistema experto que implemente las estrategias b sicas del juego un interfaz gr fico para la creaci n de problemas se ha cumplido la planificaci n especificada se ha a adido la gesti n de problemas y de de perfiles de usuarios de formar gr fica Se utilizar el modelo de desarrollo evolutivo En el modelo evolutivo los requerimientos son cuidadosamente examinados y s lo esos que son bien comprendidos son seleccionados para el primer incremento Los desarrolladores construyen una implementaci n parcial del sistema que recibe s lo estos requerimientos Mientras se desarrolla el sistema los usuarios lo usan y proveen retroalimentaci n a los desarrolladores Basada en esta retroalimentaci n la especificaci n de requerimientos es actualizada y una segunda versi n del producto es desarrollada y desplegada El proceso se repite indefinidamente El modelo que se va a seguir para la gesti n de la base de datos ser el modelo relacional La informaci n puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poder para administrar la informaci n Se ha utilizado como lenguaje de programaci n Java y como entorno de desarrollo Eclipse para almacenar toda la informaci n referente a los problemas y a los perfiles de usuario MySql para el desarrollo de la documentaci n se ha utilizado Microsoft Word 2007 II
27. a tercera indica el siguiente movimiento a realizar En la tercera parte continuamos la jugada en caso de encontrar alguna concordancia u obtenemos el siguiente movimiento que vamos a aplicar del m dulo de estrategia Adem s contiene todos los m todos necesarios para interactuar con l Reglas Este paquete contiene todos los objetos necesarios para aplicar las reglas del juego con xito a continuaci n se se alaran los objetos m s importantes que contiene SituacionPartida Este objeto contiene los algoritmos necesarios para conocer la situaci n de la partida Adem s contiene todos los m todos necesarios para interactuar con l Reglas Este objeto contiene los algoritmos necesarios para aplicar las reglas de juego Adem s contiene todos los m todos necesarios para interactuar con l Estrategias Este paquete contiene todos los objetos necesarios para aplicar las estrategias b sicas del juego con xito a continuaci n se se alaran los objetos m s importantes que contiene Estrategia Este objeto contiene los algoritmos necesarios para aplicar las estrategias b sicas del juego Adem s contiene todos los m todos necesarios para interactuar con l 40 Visual Este paquete contiene todos los objetos necesarios para mostrar el entorno en el que se va a desarrollar el juego a continuaci n se se alaran los objetos m s importantes que contiene Go Este objeto contiene los algoritmos necesar
28. ables necesarios para que la aplicaci n Go funcione correctamente Los archivos ejecutables se encuentran en la carpeta Aplicaci n Go Aplicaciones del cd de instalaci n y son los siguientes e j2sdk 1_4 2 14 windows 1586 p 1ftw e mysql essential 5 2 3 falcon alpha win32 e setup e Sql En la instalaci n de los archivos necesarios seguiremos los pasos que nos indican los instalables salvo en el siguiente paso Al instalar base de datos MySql se elegir la configuraci n est ndar y ejecutaremos configurar ahora el password que daremos al perfil root es el de celtas Por ltimo solo queda ejecutar el link que se encuentra en el escritorio llamado Go II Anexo B Manual de Usuario Manual de usuario Ventana inicial Desarrollo de un programa inteligente de aprendizaje y evaluaci n aut noma y competitiva del juego de estrategia Go EZ Inicio E Jugar Crear Problema Borrar Problema Borrar Perfil Exportar Problema Importar Problema Salir Esta es la ventana inicial en la que podemos seleccionar las distintas funciones que nos ofrece e Jugar e Crear Problema e Borrar Problema e Borrar Perfil e Exportar Problema e Importar Problema e Salir II Juego Go Cuando le damos a jugar nos aparece el siguiente di logo que nos permite elegir un perfil de usuario o crear un perfil de usuario Archivo Problemas 10
29. as las instrucciones necesarias para interactuar con las tablas de problemas perfiles de usuario y jugadas tanto para lectura creaci n borrado o modificaci n de los registros que contiene Tambi n contiene todos los m todos necesarios para interactuar con l 46 Problemas Este paquete contiene todos los objetos necesarios para crear un problema con xito a continuaci n se se alaran los objetos m s importantes que contiene Jugada Este objeto contiene todo lo necesario para la definici n de una jugada perteneciente a un problema para ello almacena la informaci n de la jugada que se va a jugar Esta informaci n se compone de gt Y gt gt gt Identificador de la jugada Identificador del problema Secuencia de movimientos que representa la jugada Comentario de la jugada Un indicador de si la jugada es la correcta o no Adem s contiene todos los m todos necesarios para interactuar con l Problema Este objeto contiene todo lo necesario para la definici n de un problema para ello almacena la informaci n del problema que se va a jugar Esta informaci n se compone de gt Y Y YV V Y Y gt Identificador del problema T tulo Creador Nivel Jugada inicial del problema Comentario para el inicio del problema Color del jugador al comenzar el problema Una colecci n de las jugadas que componen el problema Adem s contiene todos los m todos necesarios pa
30. b sit 1 1 1 1 1 1 1 1 1 1 1 dl Este di logo me permite s lo con seleccionar un perfil y pulsar Aceptar exportar un problema a un fichero externo que se almacena en el directorio que contiene la aplicaci n La extensi n que tiene el fichero es urb Abrir Buscar en C8 Mis documentos x 5 E CI Anexos CI Mis carpetas para compartir C Blocs de notas de OneNote CI Mis im genes 3 Captured Files CI Mis videos A Coches CI My Games EI Mi m sica 3 My Pando Packages Ci Mis archivos recibidos CI PFC presentacion Nombre de archivo Archivos de tipo Todos los archivos po Este es el di logo que nos permite importar problemas con este di logo seleccionamos el problema que queremos importar y autom ticamente se almacena en la base de datos
31. blema 1 1 1 1 1 1 1 1 1 1 1 T tulo Come come basig 2 Come come basig Come come basic supervivencia bas Come come basig Regla del Suicidio Regla del Suicidio KO basico 1 doble atari basico Punto d bil basic Come come basic 9 por mer Este di logo me permite s lo con seleccionar un problema y pulsar Aceptar eliminar un problema de la base de datos Para ello realizamos una conexi n con la base de datos a trav s del objeto AccesoSq l y llamamos al m todo borrarProblema int pas ndole el identificador del problema 89 Borrar Perfil Nombre Pruebas Este di logo me permite s lo con seleccionar un perfil y pulsar Aceptar eliminar un perfil de la base de datos Para ello realizamos una conexi n con la base de datos a trav s del objeto AccesoSql y llamamos al m todo borrarPerfil int pas ndole el identificador del perfil 90 Exportar Problema T tulo Come come basig 2 Come come basig Come come basic supervivencia bas Come come basig Regla del Suicidio Regla del Suicidio KO basico 1 doble atari basico Punto d bil basic Come come basic 1 1 1 1 1 1 1 1 1 1 1 Al Este di logo me permite s lo con seleccionar un perfil y pulsar Aceptar exportar un problema a un fichero externo que se almacena en el directorio que contiene la aplicaci n Para ello realizamos necesitamos que la clase problema y jugadas sea serializable lo que simplific
32. ccionar un problema de juego respectivamente En la parte derecha de la imagen tenemos el t tulo del problema seleccionado como se encuentra la situaci n de la partida y los comentarios correspondientes del problema IV Para seleccionar un problema lo haremos a trav s del di logo que mostramos a continuaci n Listado Problemas Titulo Come come b sico 1 Come come basico 2 Come come basico 3 Come come basico 4 Come come basico 5 doble atari basico 1 KO basico 1 Punto debil basico 1 Regla del Suicidio basico 1 Regla del Suicidio basico 2 supervivencia basica 1 1 1 1 1 1 1 1 1 1 1 1 Una vez seleccionado el problema le damos al bot n aceptar a continuaci n la aplicaci n carga en la aplicaci n el problema en cuesti n Una vez cargado el problema mostramos el t tulo y comentarios en el entorno de juego Esta ventana es la inicial que se presenta cuando un usuario quiere crear un problema en ella el usuario debe introducir el t tulo del problema que va a crear el nombre del creador del problema y asignarle un nivel al problema por defecto el nivel asignado a un problema es 1 Crear Problema introduzca los siguientes datos del nuevo problema T tulo Creador VI Editor de problemas A continuaci n mostraremos la ventana principal en el editor de problemas Archivo Problemas Titulo Prueba Negras Blancas Piezas Capturadas 0 0 Movimient
33. de la informaci n que se manejar en el sistema y los componentes que se encargaran del funcionamiento y la relaci n entre uno y otro Por lo que con los casos de uso se establece una visi n externa del desarrollo del proyecto y con los diagramas de clase se define la funcionalidad de los objetos que compondr n la aplicaci n y sus relaciones El modelo que se va a seguir para la gesti n de la base de datos ser el modelo relacional En este modelo el lugar y la forma en que se almacenen los datos no tienen relevancia a diferencia de otros modelos como el jer rquico y el de red Esto tiene la considerable ventaja de que es m s f cil de entender y de utilizar para un usuario casual de la base de datos 14 La informaci n puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poder para administrar la informaci n Para ello utilizaremos una base de datos relacional es un conjunto de dos o m s tablas estructuradas en registros l neas y campos columnas que se vinculan entre s por un campo en com n en ambos casos posee las mismas caracter sticas como por ejemplo el nombre de campo tipo y longitud a este campo se le denomina ID identificador o clave 3 2 Identificaci n de necesidades En esta etapa se define el problema a resolver y se fijan las normas a seguir para la direcci n del proyecto para ello se recoge informaci n y a partir de ella se desar
34. e information can be recovered and stored with different queries Those queries provide flexibility to manage information The Java programming language 1s the one used in the project and the development environment used has been eclipse To store all the information of the problems and the user profiles MySQL database has been used The documentation and management of the project has been done with Microsoft Office 2007 II Contenido E TOOU CIO tada end dniona l 1 1 Breve introducci n hist rica del juego del GO occcccccccnnnoocnncnnnnonononnnnonnnnnnnnnononanos l 1 2 Caracteristicas Dasicas de Uan ea ONE 2 Slds seiste las basicas del GO a 2 1 4 Estrategias basicas del Goin ti E N 5 ARO a A EN 6 2 1 Estructura de la divisi n del trabajo EDD oooonnnnnnnncnnnnncncnnnnnnnnononocnnnnnnnnonononons 7 2 OSIM ZAC TO E 11 3 Diseno dela aplicaci n 13 SL Metodolog as MMIZA AS as Ad 13 32 Identificaci n de DECS AE idas 15 32 Objetivos de la aplicaci n sia 15 zz Alcance de la aphcacion eies a a 16 Si Analsisde TEQU SIOS dass idilio darias tensas 16 3 9 1 Reconocimiento del problemas 16 3 3 2 Creaci n de la lista de requisitos oooocccccncccnnnnononnnnnnnnnnnononanncnnnnnnnononaninenoss 17 230 aso de USO aa E E E 19 394 Modelo conceptual de dato A 30 34 Dise o del JUESO GO iaa 37 3 Dise o del editor de problemas e 45 30 Diseno dela COSO Aa 52 Dise o de la Dase das aid ada 62 4 Programacion AE PLOTDUDOS
35. e lo entienda el objeto tablero y se lo da para que lo represente public void comprobar int paraml int param2 Este m todo comprueba si el movimiento que ejecuta el usuario coincide con el movimiento de alguna jugada public void sigMovimiento Este m todo comprueba si la maquina puede ejecutar el siguiente movimiento de la jugada o tiene que llamar al m dulo de estrategia para ejecutar el siguiente movimiento public boolean ultimo Este m todo devuelve un valor booleano seg n sea el ltimo movimiento o no Devuelve true si es el ltimo movimiento y false en caso contrario 83 Estrategia Este objeto contiene los algoritmos necesarios para aplicar las estrategias b sicas del juego Los m todos m s importantes que tenemos para interactuar con esta clase son los siguientes public void movimiento Ejecuta una de las 21 reglas de producci n posibles estas reglas tienen en cuenta en primer lugar la situaci n de las piezas con las que juega la m quina y en segundo lugar la posici n de las piezas del contrario Como primer objetivo tiene su supervivencia y como segundo objetivo tiene el capturar las piezas rivales private void comprobarExistencia Point p Comprueba que no exista una pieza en el tablero en ese punto public void posible Point p Estudiando el posicionamiento del tablero comprueba que es posible colocar una pieza en el punto indicado public void buscarCadenaCercana Point p Bu
36. emos los objetos m s importantes que contienen este paquete Pieza Es el objeto b sico de juego contiene toda la informaci n necesaria para definir una pieza es decir el color de la pieza su ubicaci n y las libertades que posee Tambi n contiene todos los m todos necesarios para interactuar con ella Cadena Es un conjunto de piezas conectadas Una est conectada a otra cuando son del mismo color y las intersecciones en las que est n posicionadas est n conectadas por una l nea Por lo que una cadena solo puede ser de un color Para definir una cadena necesitamos una colecci n de piezas conectadas y que sean todas del mismo color y las libertades de la cadena Tambi n contiene todos los m todos necesarios para interactuar con ella Perfil Contiene toda la informaci n necesaria del perfil de usuario que est en el entorno de juego Es imprescindible para actualizar la informaci n en la base de datos en caso de resolver un problema con xito SQL Este paquete contiene todos los objetos necesarios para interactuar con la base de datos a continuaci n se se alaran los objetos m s importantes que contiene AccesoSql Este objeto contiene todas las instrucciones necesarias para interactuar con las tablas de problemas perfiles de usuario y jugadas tanto para lectura creaci n borrado o modificaci n de los registros que 38 contiene Tambi n contiene todos los m todos necesarios para interactuar
37. en nulos Nombre Es un varchar de 50 caracteres No se permiten nulos Es un entero de 11 No se permiten nulos Problemas Perfil Esta tabla almacena toda la informaci n necesaria para conocer qu problemas han sido solucionados satisfactoriamente por un perfil para ello necesitamos los siguientes elementos e Idperfil Identifica un vocamente al registro del perfil en cuesti n e Idproblema Identifica un vocamente el problema solucionado Idperfil Es un entero de 11 clave primaria No se permiten nulos Idproblema Es un entero de 11 clave primaria No se permiten nulos Esta tabla almacena toda la informaci n necesaria para definir un problema para ello necesitamos los siguientes elementos e Idproblema Identifica un vocamente al registro del problema en cuesti n Titulo Indica el nombre del problema Creador Indica el creador del problema Nivel Indica el nivel m nimo que debe tener un perfil de usuario para poder jugar el problema Jugada 1n1 Contiene la situaci n inicial del problema Inicio Indica el jugador que ser el usuario en la resoluci n del problema blanco o negro Comentarios Contiene el comentario inicial del problema Idproblema Es un entero de 11 clave primaria Es auto incremental No se permiten nulos Titulo Es un varchar de 100 caracteres Se permiten nulos Creador Es un varchar de 50 caracteres Se permiten nulos Es un entero de 11 No se permi
38. ende a jugar en la infancia Se juega al Go en las escuelas en los comedores de las empresas y en lugares especiales llamados Salones de Go Se juega por placer para estimular la mente o los jugadores profesionales por premios sustanciosos Aunque el juego del Go fue descrito por los viajeros europeos que fueron al Extremo Oriente durante el siglo XVII no se empez a jugar en Europa hasta 1880 Aun as el juego se ha ido extendiendo lentamente En 1958 se jug el primer campeonato de Europa Hoy en d a se juega al Go en todos los pa ses europeos si bien el nivel de juego est significativamente por debajo del de los profesionales orientales Los mejores jugadores europeos acuden a Jap n China y Corea a estudiar el juego convirti ndose algunos en profesionales Es posible que fuera introducido en Espa a por Sr Ambrosio Wang An po ciudadano chino afincado en Espa a quien public un tratado de 181 p ginas en castellano en 1970 titulado El Cercado del cual se han tomado algunos ejemplos Tras el Sr Wang An Po el Sr Mikami ha dedicado los ltimos 20 a os a la difusi n del Go por todo el pa s colaborando activamente en su promoci n y en las relaciones de los jugadores espa oles con los de otros pa ses de oriente especialmente Jap n 1 2 Caracter sticas b sicas del Go El Go se juega sobre un tablero que es una cuadr cula de 19 l neas verticales por 19 horizontales formando 361 intersecciones Los no
39. er programa inteligente de aprendizaje para el juego del Go La realizaci n del proyecto me ha permitido aplicar parte mi conocimiento adquirido durante la carrera de ingenier a inform tica Futuras mejoras 1 2 Permitir a los usuarios configurar el apartado gr fico 1 3 Introducir estrategias de juego m s complejas para la CPU 1 4 Aplicar distintas estrategias de juego de la CPU seg n el nivel del usuario 1 5 Soportar distintas resoluciones de pantalla 97 10 Bibliograf a BARRO1 Jes s Barranco de Areba Metodolog a del an lisis estructurado de sistemas Editorial Universidad Pontificia de Comillas WIKI07 http es wikipedia org La enciclopedia libre La informaci n de esta web se ha realizado por una comunidad de usuarios MARQ01 Mar a Mercedes Marqu s Andr s Modelo entidad relaci n http www3 u 1 es mmarques f47 apun node83 html FROU07 Agust n Froufe Tutorial de Java http www publispain com supertutoriales diseno java cursos 3 Intro tabla html ANRI04 Jose Antonio And jar Jovell y Juan Carlos del Rio El juego del Go http www si upc es jandujar go 98 Anexo A Manual de Instalaci n Manual de instalaci n Para la instalaci n de la aplicaci n hay que ejecutar el archivo install bat que se encuentra en la carpeta Aplicaci n Go del cd de instalaci n De esta manera se ejecutan de forma secuencial los distintos archivos ejecut
40. espec fico Normalmente en los casos de usos se evita el empleo de jergas t cnicas prefiriendo en su lugar un lenguaje m s cercano al usuario final Definiciones b sicas para los diagramas de casos de uso Actores Se puede definir un actor como el rol o funci n que asume una persona sistema o entidad que interact a con el sistema que estamos construyendo de la misma forma Tiene la propiedad de ser externo al sistema Hay que tener en cuenta que un usuario puede acceder al sistema como distintos actores Casos de uso Como se ha dicho antes un caso de uso es una secuencia de interacciones entre un sistema y alguien o algo que usa alguno de sus servicios Ese alguien o algo es el actor Tienen una representaci n gr fica de valos Como caracter sticas principales los casos de uso 1 Est n expresados desde el punto de vista del actor 2 Se documentan con texto informal describiendo la interacci n 3 Est n acotados al uso de una funcionalidad claramente definida del sistema o aplicaci n 19 Situaciones que pueden darse e Un actor se comunica con un caso de uso e Un caso de uso extiende otro caso de uso e Un caso de uso usa otro caso de uso Notaci n de un caso de uso OA asociacion de comunicacion Actor lt c lt eaxtends gt gt lt H extencion Ce an lt einclude gt inelusion Limite de un sistema generalizacion A continuaci n detallaremos los casos de uso existente
41. iliza en los labels que se encuentran en el interior del tablero Este fondo se utiliza en la esquina superior izquierda del tablero Este fondo se utiliza en la esquina superior derecha del tablero Este fondo se utiliza en la esquina inferior izquierda del tablero Este fondo se utiliza en la esquina inferior derecha del tablero Este fondo se utiliza en el margen izquierdo del tablero Este fondo se utiliza en el margen derecho del tablero Este fondo se utiliza en el margen superior del tablero 4 SPLrJao Este fondo se utiliza en el margen superior del tablero A continuaci n se muestra un ejemplo de c mo queda el label cuando se pincha sobre l e El fondo del label en el caso de ser un label del interior del tablero cambia a este fondo en el caso de que le toque mover al jugador negro El fondo del label en el caso de ser un label del interior del tablero cambia a este fondo en el caso de que le toque mover al jugador blanco Estos cambios de label se repiten en todos los fondos de labels existentes 69 4 2 Prototipo II FROU07 En este prototipo de aplicaci n se va a desarrollar el tablero de juego Se va a seguir el dise o realizado en la etapa anterior pero utilizaremos un t cnica para el desarrollo del interfaz denominada t cnica de doble buffering Doble buffering Al mostrar gr ficos con las t cnicas est ndar las im genes suelen aparecer a trozos o con parpadeo
42. io para que se muestre al comienzo del problema a continuaci n se pulsa el bot n Aceptar y guardamos en la aplicaci n el problema con la jugada inicial 85 Archivo Problemas Titulo Prueba Negras Blancas Piezas Capturadas 0 0 Movimientos 5G jA 10 K v 11 Comentarios 12 13 14 15 16 Correcta 8 Negras O Blancas 17 Editar Comentario Aceptar 18 19 Como vemos despu s de introducir la jugada inicial el checkbox ha cambiado ahora permite indicar si la jugada que vamos a introducir es correcta o no Una vez desarrollada una jugada le damos a aceptar y volveremos a la situaci n inicial del problema lo que nos permitir desarrollar m s jugadas y a adir los respectivos comentarios En el men superior tenemos la opci n problema y dentro de sta la opci n Guardar que permite guardar el problema junto con todas las jugadas creadas en la base de datos MySql 86 Crear Problema introduzca los siguientes datos del nuevo problema T tulo Creador Nivel al Esta ventana es la inicial que se presenta cuando un usuario quiere crear un problema en ella el usuario debe introducir el t tulo del problema que va a crear el nombre del creador del problema y asignarle un nivel al problema por defecto el nivel asignado a un problema es 1 87 A continuaci n explicaremos el funcionamiento de los objetos
43. ios para mostrar el tablero de juego Adem s contiene todos los m todos necesarios para interactuar con l Ventana Este objeto contiene los algoritmos necesarios para mostrar el interfaz donde se va a desarrollar el juego contiene a al objeto Go Adem s contiene todos los m todos necesarios para interactuar con l 41 Dise o de los elementos del interfaz de juego En este apartado mostraremos el dise o grafico que posteriormente programaremos para el entorno de juego gt Tablero o i H 009 O O O O O O O TST 009 O O O O O O OS O E 19 Este es el dise o que tendr el tablero de juego es un tablero de 19 x 19 donde el usuario al pinchar en las intersecciones podr colocar las piedras 42 gt Ventana Archivo Problemal Salir Seleccionar Problema Negras Blanca S Piezas Capturadas Movimientos Comentarios Esta ser la disposici n b sica de los elementos en la ventana en el hueco ir embebido el tablero de juego Como se observa tenemos en el men est la opci n salir que permitir volver al men inicial se tendr la opci n de seleccionar problema que conduce a otra ventana que se mostrar a continuaci n 43 gt Listado de problemas Listado de problemas ID Nivel T tulo Aceptar Cancela En esta ventana mostraremos un listado de los problemas seleccionable 44 3 5 Dise o del editor de problemas En este apartado defin
44. ipse e Se ha utilizado para almacenar toda la informaci n referente a los problemas y a los perfiles de usuario MySql e Para el desarrollo de la documentaci n se ha utilizado Microsoft Word 2007 e Para el desarrollo del presupuesto se ha utilizado Microsoft Excel 2007 93 6 Pruebas Las pruebas constituyen una actividad importante en el desarrollo del proyecto ya que gracias a ellas podremos descubrir los posibles errores cometidos durante el desarrollo del proyecto y as garantizar la calidad del proyecto desarrollado Las pruebas se han realizado durante todo el desarrollo de la parte de programaci n probando por separado los distintos m dulos que lo componen Con estas pruebas se ha buscado encontrar una fiabilidad aceptable al t rmino del proyecto y al poner todas las funcionalidades en conjunto Estas pruebas son imprescindibles ya que facilitan la puesta en conjunto de los distintos m dulos del proyecto Adem s al estar las pruebas acotadas los posibles errores son m s f ciles de detectar Una vez finalizada la aplicaci n se ha procedido a la creaci n de problemas y a la resoluci n de los mismos Tambi n se han probado el resto de funcionalidades por separado durante un periodo de una semana para garantizar el mayor grado de fiabilidad posible 94 7 Planificaci n Para la planificaci n se ha utilizado un diagrama de Gantt en el que se puede ver la duraci n de las distintas actividades q
45. iremos tanto el dise o del interfaz gr fico del editor de problemas como el dise o l gico del mismo gt Diagrama de paquetes Visual del editor 45 A continuaci n definiremos la funci n de los distintos paquetes l gicos que se van a utilizar para el desarrollo del juego Go estos paquetes en realidad son m dulos del juego Go Dominio del editor Este paquete contiene todo lo necesario para la definici n de los elementos b sicos del juego A continuaci n definiremos los objetos m s importantes que contienen este paquete Pieza Es el objeto b sico de juego contiene toda la informaci n necesaria para definir una pieza es decir el color de la pieza su ubicaci n y las libertades que posee Tambi n contiene todos los m todos necesarios para interactuar con ella Cadena Es un conjunto de piezas conectadas Una est conectada a otra cuando son del mismo color y las intersecciones en las que est n posicionadas est n conectadas por una l nea Por lo que una cadena solo puede ser de un color Para definir una cadena necesitamos una colecci n de piezas conectadas y que sean todas del mismo color y las libertades de la cadena Tambi n contiene todos los m todos necesarios para interactuar con ella SQL Este paquete contiene todos los objetos necesarios para interactuar con la base de datos a continuaci n se se alaran los objetos m s importantes que contiene AccesoSql Este objeto contiene tod
46. ista Este m todo me permite combinar distintas cadenas del mismo color 79 public void actualizarCadena Este m todo me permite actualizar las libertades de la cadena public int numPertenencia Pieza p Este m todo me permite calcular el n mero de pertenencia de una pieza a una cadena esto es til para calcular el n mero de libertades de la cadena y en consecuencia de la pieza AccesoSql Este objeto contiene todas las instrucciones necesarias para interactuar con las tablas de problemas perfiles de usuario y jugadas tanto para lectura creaci n borrado o modificaci n de los registros que contiene Los m todos m s importantes que tenemos para interactuar con esta clase son los siguientes public void conectar lt Este m todo realiza la conexi n con la base de datos public ResultSet listarProblemas Este m todo nos devuelve un resultset con el listado de problemas public ResultSet listarPerfiles lt Este m todo nos devuelve un resultset con el listado de perfiles public Problema obtenerProblema int id A este m todo se le pasa la id del problema que queremos conseguir y nos lo devuelve public Problema obtenerPerfil int id A este m todo se le pasa la 1d del perfil que queremos conseguir y nos lo devuelve public void insertarProblemaJugado int paraml int param2 Una vez que se ha completado un problema con xito llamamos a este m todo para reflejarlo en la base de dat
47. l Este di logo muestra una lista de perfiles seleccionable una vez seleccionado un perfil podremos borrarlo de la base de datos Adem s contiene todos los m todos necesarios para interactuar con l 56 Dise o de los elementos del interfaz de gesti n En este apartado mostraremos el dise o grafico que posteriormente programaremos para el entorno de gesti n gt Borrar problema Borrar problema ID Nivel T tulo Cancela En esta ventana se mostrar un listado seleccionable de los problemas una vez seleccionado el problema si le damos a aceptar borraremos el problema de la base de datos 57 gt Borrar perfil Borrar perfil ID Nivel Nombre En esta ventana se mostrar un listado seleccionable de los perfiles una vez seleccionado el perfil si le damos a aceptar borraremos el problema de la base de datos 58 gt Seleccionar perfil Selerccinnar nerfil ID Nivel Nombre Aceptar Cancelar En esta ventana se mostrar un listado seleccionable de los perfiles una vez seleccionado el perfil si le damos a aceptar comenzaremos a jugar con el perfil seleccionado gt Crear perfil Crear perfil Aceptar Cancela En esta ventana introduciremos la informaci n necesaria para la creaci n de perfiles actualizando la base de datos en el momento que aceptamos el nombre de perfil introducido 59 gt Exportar problema Exportar perfil ID Nivel
48. l desarrollo de la gesti n Dominio Este paquete contiene los elementos b sicos para la creaci n de un problema y los elementos para la gesti n de perfiles A continuaci n definiremos los objetos m s importantes que contienen este paquete Pieza Es el objeto b sico de juego contiene toda la informaci n necesaria para definir una pieza es decir el color de la pieza su ubicaci n y las libertades que posee Tambi n contiene todos los m todos necesarios para interactuar con ella Cadena Es un conjunto de piezas conectadas Una est conectada a otra cuando son del mismo color y las intersecciones en las que est n posicionadas est n conectadas por una l nea Por lo que una cadena solo puede ser de un color Para definir una cadena necesitamos una colecci n de piezas conectadas y que sean todas del mismo color y las libertades de la cadena Tambi n contiene todos los m todos necesarios para interactuar con ella Perfil Contiene toda la informaci n necesaria del perfil de usuario que est en el entorno de juego Es imprescindible para actualizar la informaci n en la base de datos en caso de resolver un problema con xito SQL Este paquete contiene todos los objetos necesarios para interactuar con la base de datos a continuaci n se se alaran los objetos m s importantes que contiene AccesoSql Este objeto contiene todas las instrucciones necesarias para interactuar con las tablas de problemas perfile
49. n aut noma y competitiva del juego de estrategia Go y es el encargado de garantizar la realizaci n del proyecto la calidad de sus contenidos y que se desarrolla de acuerdo con las presentes normas consultando con el Coordinador de Proyectos cuantas dudas le surjan gt Coordinador Miguel ngel Sanz Bobi es responsable de la evaluaci n del proyecto y de supervisar el trabajo del jefe del proyecto con el director del proyecto gt Jefe de proyecto Antonio Francisco Urbano Mu oz es el encargado de la supervisi n del analista y del programador y de las actividades de lanzamiento gesti n evaluaci n y cierre Tambi n tiene que gestionar de forma eficiente el proyecto y garantizar la calidad de ste 11 gt Analista Antonio Fco Urbano Mu oz es el encargado de realizar las actividades de an lisis y dise o gt Programador Antonio Fco Urbano Mu oz es el encargado de realizar las actividades de programaci n y pruebas Responsabilidades Jefe de Analista Programador Coordinador Director b Proyecto Lanzamiento Gesti n Ejecuta Informado Informado An lisis Dise o Gestiona Ejecuta Informado Programaci n Pruebas Gestiona Ejecuta Evaluaci n Cierre Informado Ejecuta 12 3 Dise o de la aplicaci n 3 1 Metodolog as utilizadas WIKI07 Se utilizar el modelo de desarrollo evolutivo algunas veces denominado como prototipado evolutivo construye una se
50. n de los requerimientos de informaci n del sistema Permite una mejor comunicaci n entre usuarios analistas y programadores durante todas las fases del dise o Proporcionar las bases para dise ar una base de datos del sistema correcta consistente compartible y flexible Beneficios Ayuda a valorar cu l es la tecnolog a ptima para desarrollar la base de datos del sistema Permite reconocer como van a afectar posibles cambios en el futuro Permite a los usuarios comprender cu les ser n sus datos en el sistema final sin tener este implementado Favorece una visi n del sistema y de cu les son las necesidades reales de informaci n El modelo de datos facilita la migraci n de una base de datos a otra 30 Para la representaci n grafica del modelo conceptual de datos utilizaremos el modelo entidad relaci n El modelo entidad relaci n es el modelo conceptual m s utilizado para el dise o conceptual de bases de datos El modelo entidad relaci n est formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gr ficas y ling sticas a gt atybuto B identificador O QS atributo compuesto jerarqu a de generalizaci n Elementos del modelo entidad relaci n Relaci n Es una correspondencia o asociaci n entre dos o m s entidades Cada relaci n tiene un nombre que describe su funci n Las relaciones se
51. n problema Idjugada Es el identificador de la jugada Idproblema Indica el problema al que pertenece la jugada Jugada Contiene la secuencia de movimientos que se debe seguir para realizar la jugada Comentario Almacena los comentarios que indican si la jugada es correcto o una explicaci n de porque no debe realizarse esta jugada los comentarios se muestran una vez finalizada la jugada 36 3 4 Dise o del juego Go En este apartado definiremos tanto el dise o del interfaz gr fico del juego Go como el dise o l gico del mismo Diagrama de paquetes Un diagrama de paquetes muestra como un sistema est dividido en agrupaciones l gicas mostrando las dependencias entre esas agrupaciones Dado que normalmente un paquete est pensado como un directorio los diagramas de paquetes suministran una descomposici n de la jerarqu a l gica de un sistema Los Paquetes est n normalmente organizados para maximizar la coherencia interna dentro de cada paquete y minimizar el acoplamiento externo entre los paquetes Con estas l neas maestras sobre la mesa los paquetes son buenos elementos de gesti n Dominio A continuaci n definiremos la funci n de los distintos paquetes l gicos que se van a utilizar para el desarrollo del juego Go estos paquetes en realidad son m dulos del juego Go Dominio Este paquete contiene todo lo necesario para la definici n de los elementos b sicos del juego A continuaci n definir
52. o de tener clave externa se indicar en este apartado gt Descripci n se describir la tabla y los elementos que la componen 62 Clave primaria Idjugada Clave extranjera Idproblema Esta tabla almacena toda la informaci n necesaria para definir una jugada para ello necesitamos los siguientes elementos e Idjugada Identifica un vocamente al registro de la jugada en cuesti n Idproblema Identifica el problema al que pertenece la jugada Jugada Almacena los movimientos necesarios para la realizaci n correcta de la jugada Comentario Contiene el texto que se mostrar cuando se realice la jugada xito Determina si la jugada es v lida para dar el problema al que pertenece por resuelto Idjugada Es un entero de 11 clave primaria Es auto incremental No se permiten nulos Idproblema Es un entero de 11 clave extranjera No se permiten nulos Jugada Es un varchar de 2000 caracteres EA Se permiten nulos Comentario Es un varchar de 200 caracteres Se permiten nulos xito Es un entero de 1 OS No se permiten nulos 63 CS Esta tabla almacena toda la informaci n necesaria para definir un perfil para ello necesitamos los siguientes elementos e Idperfil Identifica un vocamente al registro del perfil en cuesti n e Nombre Contiene el nombre del perfil asignado por el usuario e Lvl Almacena el nivel del usuario Idperfil Es un entero de 11 clave primaria Es auto incremental No se permit
53. os 10 11 pa Comentarios 12 13 14 15 16 _ Empiezan blancas Negras Blancas 17 Editar Comentario Aceptar 18 19 Esta ventana difiere en ventana de juegos en que en sta tenemos los botones de aceptar y de editar comentar el checkbox Empiezan blancas y los radiobuttons Negras y Blancas Comenzaremos introduciendo jugada inicial del problema en el tablero y a adiendo un comentario para que se muestre al comienzo del problema a continuaci n se pulsa el bot n Aceptar y guardamos en la aplicaci n el problema con la jugada inicial El checkbox Empiezan blancas si no se marcar por defecto empiezan las piezas negras en caso contrario empiezan las piezas blancas Los radiobuttons Negras y Blancas me permiten seleccionando uno u otro colocar una pieza de uno u otro color en el tablero VII Ejemplo de jugada inicial Archivo Problemas Titulo Prueba Negras Blancas Piezas Capturadas mia 4 HA A o ARA PE i MRE Le AH Movimientos F Fi na 15 es ces is 5G jA 10 v Y S f Je 3 y me y 2 la DOIVE u y 3 O ES PS el se Y Ti ie i A Deja Ro E 4 11 2 NA k e AAA f PA y hs 7 Leer E Y 4 y P i i i R A e e a E y f gA SA A ki z A RO A R 5 E a Pari VTA a a e L K Z 2E 7 MEL A ET AE A Comentarios AA e r y pe ag gi P E gt T
54. os public boolean actualizarL vlPerfil int 1d Mediante este m todo podemos actualizar el level de un perfil se subir de nivel cuando el mismo perfil resuelva con xito 15 problemas 80 Jugada Este objeto contiene todo lo necesario para la definici n de una jugada perteneciente a un problema para ello almacena la informaci n de la jugada que se va a jugar Esta informaci n se compone de gt Y Y YV Y Identificador de la jugada Identificador del problema Secuencia de movimientos que representa la jugada Comentario de la jugada Un indicador de si la jugada es la correcta o no Los m todos m s importantes que tenemos para interactuar con esta clase son los siguientes public int getId Devuelve el identificador de la jugada public int getIdproblema Devuelve el identificador del problema al que pertenece la jugada public String getJugada Devuelve la secuencia de movimientos de la jugada public String getComentarios Devuelve los comentarios de la jugada public int getExito Devuelve un indicador num rico para saber si la jugada resuelve el problema Devuelve un 1 si es una jugada correcta y un O en caso contrario 91 Problema Este objeto contiene todo lo necesario para la definici n de un problema para ello almacena la informaci n del problema que se va a jugar Esta informaci n se compone de gt Identificador del problema gt Jugada inicial del
55. os que debe contener Aplicar reglas de juego Aplicar estrategias de juego Aplicar reglas para la creaci n de problemas Gestionar los problemas Gestionar los perfiles de los usuarios Dise ar un interfaz de juego amigable intuitiva y atractiva para el usuario Dise ar un interfaz para la creaci n de problemas amigable intuitiva y atractiva para el usuario 16 3 3 2 Creaci n de la lista de requisitos La lista de requisitos consiste en una relaci n de requisitos establecidos por el cliente en las distintas entrevistas realizadas A continuaci n detallaremos los requisitos obtenidos Nombre del requisito Men inicial Descripci n Men inicial con las opciones para jugar crear problemas borrar problemas crear perfiles de usuario borrar perfiles de usuario exportar problemas importar problemas y salir de la aplicaci n Nombre del requisito Perfil de usuario Descripci n Cuando se opte por jugar el usuario podr escoger su perfil de usuario En el perfil de usuario se almacenara toda la informaci n referente a los problemas jugados por el usuario y el nivel de ste Tambi n se deben ofrecer la opci n de borrar un perfil de usuario ya creado Nombre del requisito Entorno de juego Descripci n El entorno de juego debe ser amigable intuitivo y atractivo para el usuario Adem s en el entorno de juego se debe indicar la situaci n de la partida para ello se indicar n los movimientos que
56. problemas y un problema es exportado por un perfil de usuario 34 Un perfil de usuario puede borrar ninguno o muchos perfiles y un perfil es borrado por un perfil de usuario Un perfil contiene ninguno o muchos problemas resueltos y un problema resuelto pertenece a ninguno o a muchos perfiles Un problema contiene una o muchas jugadas y una jugada pertenece a un problema 35 Descripci n de las entidades Perfil de usuario Contiene toda la informaci n necesaria referente al usuario que est interactuando con el sistema Idperfil Es el identificador del perfil Nombre Es el nombre que el usuario le ha dado al perfil Lvl Es el nivel que tiene el perfil de usuario Problema Contiene toda la informaci n necesaria para jugar un problema Idproblema Es el identificador asignado al problema T tulo Es el t tulo del problema Creador Almacena el nombre del creador del problema Nivel Indica el nivel a partir del cual se puede jugar el problema Jugada Inicial Indica la secuencia de movimientos que establecen la jugada inicial o de partida para el problema Inicio Indica que jugador debe iniciar los movimientos si las piedras negras O las blancas Comentario Contiene el comentario que ha introducido el creador del problema se utiliza para indicar al usuario que vaya a jugar cual es el objetivo del problema Jugada Contiene la informaci n necesaria para la consecuci n de forma correcta de u
57. ra interactuar con l 47 CrearProblema Este objeto contiene toda la l gica necesaria para la creaci n de un problema es el nexo entre los distintos m dulos de la aplicaci n Adem s contiene todos los m todos necesarios para interactuar con l Reglas de creaci n Este paquete contiene todos los objetos necesarios para aplicar las reglas del juego necesarias para la creaci n de un problema estas reglas difieren un poco de las reglas de juego a continuaci n se se alaran los objetos m s importantes que contiene SituacionPartida Este objeto contiene los algoritmos necesarios para conocer la situaci n de la partida Adem s contiene todos los m todos necesarios para interactuar con l Reglas Este objeto contiene los algoritmos necesarios para aplicar las reglas para la creaci n de problemas Adem s contiene todos los m todos necesarios para interactuar con l Visual del editor Este paquete contiene todos los objetos necesarios para mostrar el entorno en el que se va a desarrollar el juego a continuaci n se se alaran los objetos m s importantes que contiene Editor Este objeto contiene los algoritmos necesarios para mostrar el tablero de juego Adem s contiene todos los m todos necesarios para interactuar con l Ventana del Editor Este objeto contiene los algoritmos necesarios para mostrar el interfaz donde se va a desarrollar el juego contiene a al objeto Go Adem s contiene todos
58. ra que se quiere colocar no es un objeto en s sino que est integrado en el tablero Recorre las piedras de las cadenas de piedra comprobando que si se cumple alguna de las siguientes reglas 1 Cuando un jugador hace una jugada que priva de su ltima libertad a una piedra o formaci n del oponente debe sacar las piedras rodeadas del tablero y guardarlas separadamente hasta el final de la partida 2 No est permitido hacer una jugada ocupando la ltima libertad en el interior de una formaci n enemiga suicidio a no ser que esta jugada capture una o m s piedras enemigas 3 Si un jugador captura una piedra en situaci n de ko el otro jugador no puede recapturar inmediatamente Ha de hacer otra jugada antes de recapturar Consecuencias En el caso de que se d la opci n 1 se llamar al m todo actualizarCadenasyAlrededores en el que eliminaremos las cadenas que no tengan libertades y una vez eliminadas stas se actualizan las libertades de las cadenas de los alrededores Enel caso de que se d la opci n 2 no se permitir el movimiento Enel caso de que se d la opci n 3 no se permitir el movimiento 78 Pieza Es el objeto b sico de juego contiene toda la informaci n necesaria para definir una pieza es decir el color de la pieza su ubicaci n y las libertades que posee Tambi n contiene los siguientes m todos para interactuar con ella public int getX devuelve la posici n relativa al eje
59. re los distintos objetos para obtener las reglas y las estrategias b sicas del juego Como salida de esta actividad se obtendr n los diagramas de clase y el dise o del interfaz gr fico del juego gt Dise o del editor de problemas WP 03 01 En esta actividad se establecer la forma en la que interact a el usuario con el entorno dedicado a la creaci n de problemas para ello se utilizar n los casos de uso tambi n se establecer n los distintos objetos sus funcionalidades y sus relaciones teniendo en cuenta las reglas b sicas del juego necesarias para la edici n de problemas para ello crearemos diagramas de clase En esta actividad dise aremos tambi n el aspecto gr fico del entorno dedicado a la creaci n de problemas y los distintos men s que necesitaremos para la creaci n de problemas Como salida de esta actividad se obtendr n los diagramas de clase y el dise o del interfaz gr fico del editor de problemas gt Dise o de Gesti n WP 03 01 En esta actividad se establecer la forma en la que interact a el usuario con el entorno para la gesti n de perfiles de usuarios y de problemas para ello se utilizar n los casos de uso tambi n se establecer n los distintos objetos sus funcionalidades y sus relaciones que se usar n en la actividad de programaci n para ello crearemos diagramas de clase Y por ltimo se realizar un dise o l gico de la base de datos para la gesti n de problemas y perfiles
60. rie de grandes versiones sucesivas de un producto En el modelo evolutivo los requerimientos son cuidadosamente examinados y s lo esos que son bien comprendidos son seleccionados para el primer incremento Los desarrolladores construyen una implementaci n parcial del sistema que recibe s lo estos requerimientos El sistema es entonces desarrollado los usuarios lo usan y proveen retroalimentaci n a los desarrolladores Basada en esta retroalimentaci n la especificaci n de requerimientos es actualizada y una segunda versi n del producto es desarrollada y desplegada El proceso se repite indefinidamente El desarrollo evolutivo es 100 compatible con el modelo cascada El desarrollo evolutivo no demanda una forma espec fica de observar el desarrollo de alg n incremento As el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo 15 Las etapas del ciclo de vida a seguir son An lisis Construcci n Entrega y del del dise o prototipo prototipo Propuesta de Evaluaci n nuevos del requisitos prototipo Las t cnicas UML que se van a ser utilizadas son los casos de uso y diagramas de clase Los casos de uso describen lo que hace el sistema no como lo hace En el caso de uso se describe la interacci n de los usuarios con el sistema Los diagramas de clases son utilizados durante el proceso de an lisis y dise o de los sistemas inform ticos donde se crea el dise o conceptual
61. rolla el Documento de Conceptos del Sistema El cliente debe establecer sus objetivos y necesidades generales tambi n debe tener los conocimientos suficientes de la problem tica a analizar para que estos objetivos y necesidades queden correctamente definidos y as el sistema final se ajuste totalmente a sus necesidades El documento de conceptos del sistema que se va a desarrollar contiene Objetivos de la aplicaci n estos objetivos son desde un punto de vista empresarial nunca inform tico Alcance de la aplicaci n se trata de las funciones de negocio que se deben considerar dentro del alcance del proyecto 3 2 1 Objetivos de la aplicaci n Se pretende introducir la aplicaci n en el mercado de juegos de estrategia creando as un gran impacto en el sector debido a que no existen juegos del Go como el que se va a desarrollar 15 3 2 2 Alcance de la aplicaci n Para la consecuci n de los objetivos establecidos la aplicaci n debe ser atractiva para el usuario y debe incluir un editor de problema y la forma de compartirlos entre los usuarios 3 3 An lisis de requisitos BARRO1 A continuaci n se realizar n las siguientes actividades Reconocimiento del problema Creaci n de la lista de requisitos Casos de uso Estudio del modelo conceptual de datos 3 3 1 Reconocimiento del problema Para entender suficientemente la aplicaci n que se pretende desarrollar se va a establecer brevemente los element
62. s de usuario y jugadas tanto para lectura creaci n borrado o modificaci n de los registros que contiene Tambi n contiene todos los m todos necesarios para interactuar con l 53 Problemas Este paquete contiene todos los objetos necesarios para crear un problema con xito a continuaci n se se alaran los objetos m s importantes que contiene Jugada Este objeto contiene todo lo necesario para la definici n de una jugada perteneciente a un problema para ello almacena la informaci n de la jugada que se va a jugar Esta informaci n se compone de gt Identificador de la jugada gt Identificador del problema gt Secuencia de movimientos que representa la jugada gt Comentario de la jugada gt Un indicador de si la jugada es la correcta o no Adem s contiene todos los m todos necesarios para interactuar con l Problema Este objeto contiene todo lo necesario para la definici n de un problema para ello almacena la informaci n del problema que se va a jugar Esta informaci n se compone de gt Identificador del problema gt T tulo gt Creador gt Nivel gt Jugada inicial del problema gt Comentario para el inicio del problema gt Color del jugador al comenzar el problema gt Una colecci n de las jugadas que componen el problema Adem s contiene todos los m todos necesarios para interactuar con l 54 Di logos Este paquete contiene todos los di logos necesarios para la
63. s para la aplicaci n 1 Jugar problema Crear perfil de usuario Borrar perfil de usuario Importar problemas Exportar problemas Crear problemas Seleccionar problema a jugar A AA A e A Borrar problema 20 Diagrama de casos de uso del usuario Jugar problema Crear perfil de usuario Borrar perfil de usuario Importar problemas Exportar problemas Usuario Borrar problema Crear problemas Seleccionar problema a 21 Descripci n detallada de casos de usos A continuaci n se describen los elementos que se van a utilizar para detallar los casos de uso Nombre nombre del caso de uso Actor primario aqu l cuyo objetivo da nombre al caso de uso normalmente ser tambi n el que lo inicie pero esto no es siempre as Suele participar en el caso de uso intercambiando informaci n con el sistema Siempre existe un actor primario en todo caso de uso Actores secundarios pueden no existir se tratan de cualquier otro actor que intervenga en el caso de uso y ayude al sistema a conseguir el objetivo del actor primario Precondiciones condiciones que han de darse en el sistema para que pueda iniciarse el caso de uso Puesto que se han de cumplir antes no se vuelven a comprobar una vez iniciado el caso de uso Trigger es el evento que inicia el caso de uso Escenario primario pasos que se producen en el sistema para conseguir el objetivo del actor primario
64. salir y seleccionar un problema de juego respectivamente En la parte derecha de la imagen tenemos el t tulo del problema seleccionado como se encuentra la situaci n de la partida y los comentarios correspondientes del problema 76 Para seleccionar un problema lo haremos a trav s del di logo que mostramos a continuaci n Listado Problemas Titulo Come come b sico 1 Come come basico 2 Come come basico 3 Come come basico 4 Come come basico 5 doble atari basico 1 KO basico 1 Punto debil basico 1 Regla del Suicidio basico 1 Regla del Suicidio basico 2 supervivencia basica 1 1 1 1 1 1 1 1 1 1 1 1 Una vez seleccionado el problema le damos al bot n aceptar a continuaci n la aplicaci n accede a la base de datos y carga en la aplicaci n el problema en cuesti n Una vez cargado el problema mostramos en los labels de t tulo y comentarios la informaci n correspondiente del problema A continuaci n recorremos los movimientos de la jugada inicial del problema se env a movimiento por movimiento al m dulo de reglas que verifica que se cumplen las reglas del juego y los convertimos a las coordenadas relativas que puede representar el tablero 77 A continuaci n explicaremos el funcionamiento de los objetos m s importantes para la aplicaci n de la l gica en este prototipo Reglas A este m dulo le pasamos la cadena de piedras que componen las piedras representadas en el tablero y la pied
65. sca todas las cadenas cercanas al punto en el que se quiere colar la pieza public void buscarCadenaOtroColor Point p Busca las cadenas cercanas del adversario al punto indicado public void supervivencia Cadena cad Este m todo busca la mejor forma de colocar una pieza para la supervivencia de la cadena indicada public void comer Cadena cad Este m todo busca un punto viable en el que colocar una pieza y capturar una cadena del adversario o en su defecto para reducir el n mero de libertades de la cadena del adversario 84 4 4 Prototipo IV En este prototipo implementar el objeto tablero que se realiz en el prototipo II integr ndolo en una ventana basada en el dise o de la actividad anterior para obtener as el editor de problemas deseado Adem s implementaremos los objetos necesarios para la edici n de problemas A continuaci n mostraremos la ventana principal en el editor de problemas Archivo Problemas Titulo Prueba Negras Blancas Piezas Capturadas 0 0 Movimientos v Comentarios _ Empiezan blancas Negras Blancas Editar Comentario Aceptar Esta ventana difiere en ventana de juegos en que en sta tenemos los botones de aceptar y de editar comentar el checkbox Empiezan blancas y los radiobuttons Negras y Blancas Comenzaremos introduciendo jugada inicial del problema en el tablero y a adiendo un comentar
66. se vayan realizando durante la partida y las piedras capturadas por cada jugador Nombre del requisito Entorno para la creaci n de problemas Descripci n El entorno para la creaci n de problemas debe ser amigable intuitivo y atractivo para el usuario Adem s en el entorno de creaci n de problemas se tendr que habilitar todas las herramientas necesarias para la creaci n de problemas 17 Nombre del requisito Selecci n de problemas Descripci n Se procurar un men en el que se permitir al usuario elegir el problema que desea resolver En el interfaz de juego debe tener un rea que te muestre los comentarios referentes al problema seleccionado Nombre del requisito Tablero Descripci n El tablero del entorno de juego debe tener un tama o de 19x19 Nombre del requisito Piedras Descripci n El color est ndar de las piedras son el blanco y el negro Nombre del requisito Base de datos Descripci n La informaci n referente a los problemas y a los perfiles de usuario se almacenar en una base de datos 18 3 3 3 Casos de uso WIKIO07 A partir de la lista de requisitos y del conocimiento del problema se crean los casos de uso es una t cnica para la captura de requisitos potenciales de un nuevo sistema o una actualizaci n software Cada caso de uso proporciona uno o m s escenarios que indican c mo deber a interactuar el sistema con el usuario o con otro sistema para conseguir un objetivo
67. ten nulos Jugada 1n1 Es un varchar de 5000 caracteres OS No se permiten nulos Inicio Es un entero de 1 No se permiten nulos Comentario Es un varchar de 2000 caracteres Se permiten nulos 65 Diagrama de la base de datos Problemas Idproblema T tulo Creador Nivel Jugada ini Inicio Comentario Jugadas Idjugada Idproblema Jugada Comentario Perfil Exito Idperfil Nombre Lvl Problemas perfil Idperfil Idproblema En este diagrama se muestran las relaciones existentes entre las distintas tablas pertenecientes a la base de datos 66 4 Programaci n de prototipos Para la programaci n como se ha comentado se va a usar Java en concreto la 32sdk 1_4 2 14 para Windows XP Java es un lenguaje de programaci n orientado a objetos Las aplicaciones Java est n t picamente compiladas en un bytecode aunque la compilaci n en c digo m quina nativo tambi n es posible En el tiempo de ejecuci n el bytecode es normalmente interpretado o compilado a c digo nativo para la ejecuci n aunque la ejecuci n directa por hardware del bytecode por un procesador Java tambi n es posible El lenguaje Java se cre con cinco objetivos principales 1 Usar la metodolog a de la programaci n orientada a objetos 2 Permitir la ejecuci n de un mismo programa en m ltiples sistemas Operativos 3 Incluir por defecto soporte para trabajo en red
68. tilizaran en la creaci n y representaci n de la piedra en el tablero 74 4 3 Prototipo III En este prototipo evolucionar el objeto tablero que se realizo en el prototipo II integr ndolo en una ventana basada en el dise o de la actividad anterior para obtener as el entorno de juego deseado Adem s implementaremos las estrategias b sicas de juego y la aplicaci n de problemas de juego Antes de empezar a jugar necesitamos seleccionar o crear el perfil con el que vamos a jugar Listado Perfiles Nombre Pruebas En este di logo seleccionaremos el perfil con el que se va a jugar o crearemos el perfil con el que se quiera jugar 79 Crear Perfil introduzca el nombre del perfil IS Con este di logo crearemos el nuevo perfil con el que se quiere jugar Archivo Problemas 10 11 12 13 14 15 16 17 18 19 Titulo q TIRA doble atari basico 1 a de foa s E f ee E aa aal 7 PE Ser 45 77 AE az zA 2 Negras Blancas q Fa Piezas Capturadas 0 0 Movimientos 3D A JE S 2D 3F 4E 4F 5F 5G 6F 6G 4C 7G TE 7F 6D 4H Comentarios Comienzan Blancas En esta situaci n hay un defecto en la posici n de las piedras negras averigualo y captura alguna piedra negra en dos movimientos Este es el entorno de juego como podemos observar tenemos dos men s en la parte superior izquierda de la imagen que nos permiten
69. ue componen el proyecto En el eje vertical est n representadas las actividades y en el eje horizontal est representada la escala de tiempos Lanzamiento Gesti n An lisis lisis Dise o Programaci n A ocre Noviembre ocemoe Enero Fewero mazs Ai mao sumo Estas actividades se han descrito a lo largo del presente documento 95 8 Presupuesto Actividades Lanza miento Gesti n Identificaci n de necesidades An lisis de requisitos Dise o Programaci n Pruebas Cierre Direcci n del proyecto Coordinaci n del proyecto 13290 Perfiles del proyecto Jefe de proyecto Antonio Francisco Urbano Mu oz Coste 40 euros hora e Actividades que realiza o Lanzamiento o Gesti n o Cierre Analista Antonio Francisco Urbano Mu oz Coste 33 euros hora e Actividades que realiza o Identificaci n de necesidades o An lisis de requisitos o Dise o Programador Antonio Francisco Urbano Mu oz Coste 30 euros hora e Actividades que realiza o Programaci n o Pruebas Director del proyecto Jos Mar a Rodr guez Fern ndez Coste 43 euros hora Realiza la actividad de direcci n de proyecto Coordinador de proyecto Miguel ngel Sanz Bobi Coste 50 euros hora Realiza la actividad de coordinaci n del proyecto 96 9 Conclusiones Este proyecto causar un impacto en los juegos de estrategia introduciendo en este mercado el prim
70. uy su ojo En vez de eso deben jugar en otro lugar Las Negras eligen no rellenar su ojo para defenderlo Consumido su turno de espera las Blancas pueden ya capturar la piedra negra La posici n final es una nueva situaci n de ko gt En lugar de poner una piedra un jugador puede pasar perder un turno Cuando los dos jugadores pasan consecutivamente se acaba la partida gt Una vez finalizada la partida se llenan todos los puntos neutrales Despu s se retiran todas las piedras muertas y se a aden a las capturadas durante la partida Ahora cada jugador recibe un punto por cada intersecci n vac a dentro de su propio territorio A esto hay que a adir el n mero de prisioneros El ganador es el que consigue el mayor n mero de puntos Si los dos jugadores tienen el mismo n mero de puntos gana el Blanco como compensaci n por no jugar primero 1 4 Estrategias b sicas del Go Aspectos b sicos a tener en cuenta son Conexi n tratar de mantener las piedras propias conectadas as son m s f ciles de defender Corte tratar de cortar las piedras del rival as ste necesitar concentrarse en la defensa de m s grupos Vida es la capacidad de las piedras para evitar ser eliminadas del tablero Normalmente requiere la creaci n de grupos de piedras con al menos dos OJOS Muerte ausencia de vida tiene como resultado la eliminaci n de las piedras del tablero 2 Objetivos del proyecto
71. vatos suelen jugar en tableros m s peque os de 13x13 o de 9x9 sin otros cambios en las reglas de juego Sobre las intersecciones se colocan alternativamente las piedras que son negras o blancas 1 3 Las seis reglas b sicas del Go Para las im genes de ejemplo utilizaremos un tablero de 9x9 y 13x13 gt Al inicio de la partida el tablero est vac o Las Negras juegan primero Despu s ambos jugadores juegan alternadamente Una jugada consiste en poner una piedra en una intersecci n vac a gt Cuando un jugador hace una jugada que priva de su ltima libertad a una piedra o formaci n del oponente debe sacar las piedras rodeadas del tablero y guardarlas separadamente hasta el final de la partida Negro est en atari Blanco captura las piedras negras No est permitido hacer una jugada ocupando la ltima libertad en el interior de una formaci n enemiga suicidio a no ser que esta jugada capture una o m s piedras enemigas S 3D S0953 Blanco no puede mover Blanco puede mover a Blanco captura las a a b o e pues a b o e pues ha piedras enemigas ser a suicidio rodeado completamente al enemigo gt Si un jugador captura una piedra en situaci n de ko el otro jugador no puede recapturar inmediatamente Ha de hacer otra jugada antes de recapturar Situaci n de ko Las Blancas no pueden capturar en este turno a la piedra negra que destr
Download Pdf Manuals
Related Search
Related Contents
ELIIXA UC8/UC4 Camera User Manual Tips & Tricks 14 Copyright © All rights reserved.
Failed to retrieve file