scieee AI-readable full text Open interactive document viewer

Banjooli Xeet

Molina Beas, Víctor

Abstract

Banjooli Xeet PC correspon a una versió d'ordinador del joc de taula Banjooli Xeet ( http://boardgamegeek.com/boardgame/99459/banjooli - xeet ) . El projecte complirà els seus objectius si aconsegueix simular amb un alt grau l'experiència de joc que es pot tenir amb el joc de taula . Adicionalment Banjooli Xeet PC ha d'oferir un ventall d'inteligències artificials a les que enfrontar - se en mode " Un jug ador " així com la possibilitat de jugar al joc en mode " Multijugador ".

Full text

Projecte Final de Carrera. Banjooli Xeet. 1 Banjooli Xeet Títol: Banjooli Xeet Autor: Víctor Molina Beas Data: 06/06/2013 Director: Miquel Barceló Garcia Departament del Director: ESSI Titulació: Enginyeria en Informàtica Centre: Facultat d'Informàtica de Barcelona (FIB) Universitat: Universitat Politècnica de Catalunya (UPC) Projecte Final de Carrera. Banjooli Xeet. 2 Agraïments, Volia donar les gràcies a tota la gent que ha estat al meu costat durant la realització d'aquest projecte sense els quals no imagino haver arribat a la fi. Gràcies Miquel Barceló, per obrir les portes del teu despatx sempre que he necessitat fer una consulta, i per les teves paraules d'empenta que m'han animat en cada reunió. Gràcies Maria Pia, per fer-me costat cada dia i creure en mi. Gràcies a la meva familia, per deixar-me escollir una facultat com la FIB encara que em portés lluny de casa. Gràcies Diego Ibáñez, per haver-me deixat disfrutar tantes hores de Banjooli Xeet. Projecte Final de Carrera. Banjooli Xeet. 3 Índex Anàlisi de requeriments ................................................................................................................ 7 Requeriments de client ............................................................................................................. 7 Requeriments funcionals .......................................................................................................... 8 Requeriments no-funcionals ................................................................................................... 10 Especificació ................................................................................................................................ 12 Actors ...................................................................................................................................... 12 Jugador ................................................................................................................................ 13 IA "Aleatori" ........................................................................................................................ 14 IA "Predicció"....................................................................................................................... 14 IA "Dau Negre" .................................................................................................................... 15 Casos d'ús ................................................................................................................................ 16 MENÚ D'OPCIONS ............................................................................................................... 16 CU-OPC-01: Veure menú d'opcions .................................................................................... 17 CU-OPC-02: Tancar menú d'opcions ................................................................................... 17 CU-OPC-03: Ajustar so ......................................................................................................... 18 CU-OPC-04: Ajustar efectes ................................................................................................. 19 CU-OPC-05: Veure instruccions ........................................................................................... 20 CU-OPC-06: Tancar instruccions.......................................................................................... 20 CU-OPC-07: Veure informació del joc ................................................................................. 21 CU-OPC-08: Tancar informació del joc ................................................................................ 21 CONFIGURAR PARTIDA ........................................................................................................ 22 CU-CON-01: Canviar nom .................................................................................................... 22 CU-CON-02: Canviar tipus de jugador ................................................................................. 23 CU-CON-03: Canviar taulell de joc....................................................................................... 24 CU-CON-04: Canviar mode de joc ....................................................................................... 25 INICIAR JOC .......................................................................................................................... 27 CU-INI-01: Iniciar joc "Un jugador" ..................................................................................... 27 CU-INI-02: Unir-se a partida multijugador .......................................................................... 28 CU-INI-03: Crear joc "Multijugador (Servidor)" ................................................................... 29 CU-INI-04: Iniciar joc "Multijugador (Servidor)" ................................................................. 30 SORTIR DEL JOC ................................................................................................................... 31 CU-SOR-01: Sortir del joc .................................................................................................... 31 TORN DE JOC ....................................................................................................................... 32 Projecte Final de Carrera. Banjooli Xeet. 4 CU-TOR-01: Llençar daus ..................................................................................................... 33 CU-TOR-02: Rellençar dau ................................................................................................... 34 CU-TOR-03: Escollir estruç .................................................................................................. 35 CU-TOR-04: Espantar/Animar estruç .................................................................................. 36 CU-TOR-05: Moure estruç ................................................................................................... 37 CU-TOR-06: Passar torn ....................................................................................................... 38 CU-TOR-07: Desfer jugada................................................................................................... 39 Diagrames de seqüència ......................................................................................................... 40 CU-OPC-01: Veure menú d'opcions .................................................................................... 40 CU-OPC-02: Tancar menú d'opcions ................................................................................... 40 CU-OPC-03: Ajustar so ......................................................................................................... 41 CU-OPC-04: Ajustar efectes ................................................................................................. 41 CU-OPC-05: Veure instruccions ........................................................................................... 42 CU-OPC-06: Tancar instruccions.......................................................................................... 42 CU-OPC-07: Veure informació del joc ................................................................................. 42 CU-OPC-08: Tancar informació del joc ................................................................................ 43 CU-CON-01: Canviar nom .................................................................................................... 43 CU-CON-02: Canviar tipus de jugador ................................................................................. 43 CU-CON-03: Canviar taulell de joc....................................................................................... 44 CU-CON-04: Canviar mode de joc ....................................................................................... 44 CU-INI-01: Iniciar joc "Un jugador" ..................................................................................... 45 CU-INI-02: Unir-se a partida multijugador .......................................................................... 46 CU-INI-03: Crear joc "Multijugador (Servidor)" ................................................................... 47 CU-INI-04: Iniciar joc "Multijugador (Servidor)" ................................................................. 47 CU-SOR-01: Sortir del joc .................................................................................................... 47 CU-TOR-01: Llençar daus ..................................................................................................... 48 CUTOR -02: Rellençar dau ................................................................................................. 49 CUTOR -03: Escollir estruç ................................................................................................. 50 CUTOR -04: Espantar/Animar estruç................................................................................. 51 CUTOR -05: Moure estruç ................................................................................................. 52 CUTOR -06: Passar torn ..................................................................................................... 53 CUTOR -07: Desfer jugada ................................................................................................. 54 Disseny ........................................................................................................................................ 55 Arquitectura ............................................................................................................................ 55 Projecte Final de Carrera. Banjooli Xeet. 5 Interfície .................................................................................................................................. 56 Inici ...................................................................................................................................... 56 Menú d'opcions ................................................................................................................... 57 Selecció de jugador ............................................................................................................. 58 Selecció de taulell ................................................................................................................ 59 Selecció de mode de joc ...................................................................................................... 60 Pantalla de joc ..................................................................................................................... 61 Menú d'opcions ................................................................................................................... 62 Predicció .............................................................................................................................. 63 Torn del jugador actual ....................................................................................................... 64 Llençador de daus ............................................................................................................... 64 Tirada de daus ..................................................................................................................... 65 Accions: "Deshacer", "Pasar", "Salir" .................................................................................. 65 Taulell de joc ....................................................................................................................... 66 Estruços ............................................................................................................................... 67 Moviments .......................................................................................................................... 67 Model de classes ..................................................................................................................... 68 Visió global .......................................................................................................................... 68 Vista ..................................................................................................................................... 69 Control·lador ....................................................................................................................... 70 Model .................................................................................................................................. 71 Comunicacions ........................................................................................................................ 72 Breu descripció .................................................................................................................... 72 Protocol de comunicació ..................................................................................................... 72 IA ............................................................................................................................................. 74 Breu descripció .................................................................................................................... 74 IA "Aleatori" ........................................................................................................................ 74 IA "Predicció"....................................................................................................................... 75 IA "Dau negre" ..................................................................................................................... 76 Model de dades ....................................................................................................................... 77 Breu descripció .................................................................................................................... 77 Board ................................................................................................................................... 77 BoardMap ............................................................................................................................ 78 BoardCounter ...................................................................................................................... 79 Projecte Final de Carrera. Banjooli Xeet. 6 Podium ................................................................................................................................ 79 Player ................................................................................................................................... 80 Prediction ............................................................................................................................ 80 DiceThrow ........................................................................................................................... 81 Conclusions ................................................................................................................................. 82 Planificació .............................................................................................................................. 82 Diagrama de Gantt .............................................................................................................. 82 Comentaris .......................................................................................................................... 82 Estudi entre IAs ....................................................................................................................... 83 IA "Aleatori" ........................................................................................................................ 83 IA "Predicció"....................................................................................................................... 87 IA "Dau Negre" .................................................................................................................... 91 Comentaris .......................................................................................................................... 95 Estudi econòmic ...................................................................................................................... 96 Millores a realitzar .................................................................................................................. 97 Manual d'usuari........................................................................................................................... 98 Introducció .............................................................................................................................. 98 Objectiu de joc ........................................................................................................................ 98 Components ............................................................................................................................ 98 Inici del joc ............................................................................................................................... 98 Torn de joc ............................................................................................................................... 99 Fi del joc i puntuació ............................................................................................................. 100 Projecte Final de Carrera. Banjooli Xeet. 7 Anàlisi de requeriments Requeriments de client ON ES FARÀ SERVIR? L'objectiu del projecte és implementar una aplicació capaç d'executar-se en qualsevol ordinador personal. A partir d'ara l'anomenarem Banjooli Xeet PC. COM ACOMPLIRÀ EL SISTEMA ELS SEUS OBJECTIUS? Banjooli Xeet PC correspon a una versió d'ordinador del joc de taula Banjooli Xeet (http://boardgamegeek.com/boardgame/99459/banjooli-xeet). El projecte complirà els seus objectius si aconsegueix simular amb un alt grau l'experiència de joc que es pot tenir amb el joc de taula. Adicionalment Banjooli Xeet PC ha d'oferir un ventall d'inteligències artificials a les que enfrontar-se en mode "Un jugador" així com la possibilitat de jugar al joc en mode "Multijugador". Per a veure amb més detall les regles del joc veure l'apartat Manual d'usuari. QUINS SERAN ELS ENTORNS D'UTILITZACIÓ? L'aplicació s'executarà sobre una JVM. COM D'EFECTIU HA DE SER EL SISTEMA EN LA REALITZACIÓ DE LA SEVA MISSIÓ? Banjooli Xeet PC ha de permetre jugar una partida al joc Banjooli Xeet desde l'ordinador de casa. Les inteligències artificials implementades han de conèixer les regles de joc i han d'oferir al jugador una experiència similar a la que tindria jugant contra jugadors reals. El mode "Multijugador" ha de permetre jugar una partida online. DURANT QUANT TEMPS EL SISTEMA SERÀ FET SERVIR PER L'USUARI? Banjooli Xeet PC pot utilitzar-se durant tota una tarda. Projecte Final de Carrera. Banjooli Xeet. 8 Requeriments funcionals IMPLEMENTACIÓ D'INTELIGÈNCIES ARTIFICIALS L'objectiu principal de realitzar una versió per a PC del joc Banjooli Xeet és permetre a l'usuari apendre a jugar al joc. Per assolir aquesta funcionalitat es demana implementar diverses IA que simulen diferents tipus de jugadors. A Banjooli Xeet PC s'implementen tres estils diferents de joc, classificats com a fàcil, normal i difícil, que facilitaran al jugador a apendre de manera progressiva a jugar-hi. Fig 1. Detall dels tipus d'IA de Banjooli Xeet PC. DIFERENTS TAULELLS DE JOC Un dels atractius del joc de taula és la possibilitat de poder configurar el circuit de la cursa. Es demana, com a mínim, poder jugar en diferents configuracions del taulell. A Banjooli Xeet PC s'implementen tres circuits diferents que es diferencien entre ells amb el nombre de corves i peces, cosa que permet al jugador escollir en certa manera la durada de la partida. Fig 2. Detall dels tipus de taulell de Banjooli Xeet PC. Projecte Final de Carrera. Banjooli Xeet. 9 JUGAR PER INTERNET També es demana poder jugar a Banjooli Xeet PC a través d'internet, configurant una de les instàncies de joc com a servidor i gestionant les connexions dels jugadors que es connectin, fins a un màxim de cinc jugadors simultanis. A Banjooli Xeet PC s'implementen dues opcions per tal de jugar a través d'internet. L'opció Servidor serà l'encarregat de gestionar la partida per internet mentres que l'opció Client es connectarà al Servidor i podrà visualitzar l'estat de la partida així com jugar en el seu torn. Fig 3. Detall dels tipus de jugador en el mode "Multijugador" de Banjooli Xeet PC. Projecte Final de Carrera. Banjooli Xeet. 16 Casos d'ús MENÚ D'OPCIONS Fig 13. Casos d'ús del menú d'opcions. Jugador Veure menú d'opcions Ajustar so Ajustar efectes Veure instruccions Tancar instruccions Veure informació del joc Tancar informació del joc Tancar menú d'opcions Projecte Final de Carrera. Banjooli Xeet. 17 CU-OPC-01: Veure menú d'opcions Fig. 14. Icona del joc que representa el menú d'opcions. Cas d'ús CU-OPC-01 Actors Jugador Tipus Primari Referències N/A Precondicions El menú d'opcions es troba sense desplegar. Postcondicions El menú d'opcions es mostra desplegat. Propòsit Visualitzar desplegat el menú d'opcions. Resum Mentres que l'aplicació s'està executant el Jugador pot decidir visualitzar el menú d'opcions. Per realitzar aquesta acció ha de clicar a sobre de la icona del menú. Curs normal (bàsic) 1 Jugador: Clica sobre el menú d'opcions. 2 Sistema: Es mostra el menú d'opcions. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta CU-OPC-02: Tancar menú d'opcions Cas d'ús CU-OPC-02 Actors Jugador Tipus Primari Referències CU-OPC-01 Precondicions El menú d'opcions es mostra desplegat. Postcondicions El menú d'opcions es troba sense desplegar. Propòsit Visualitzar sense desplegar el menú d'opcions. Resum Mentres que l'aplicació s'està executant el Jugador pot decidir amagar el menú d'opcions. Per realitzar aquesta acció ha de clicar a sobre de la icona del menú. Curs normal (bàsic) 1 Jugador: Clica sobre el menú d'opcions. 2 Sistema: S'amaga el menú d'opcions. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 18 CU-OPC-03: Ajustar so Fig. 15. Icona del joc que representa la música de fons. Cas d'ús CU-OPC-03 Actors Jugador Tipus Primari Referències CU-OPC-01 Precondicions El menú d'opcions es mostra desplegat. Postcondicions Si s'estava reproduïnt la música de fons del joc aquesta s'atura. En cas de que no s'estigui reproduïnt comença a reproduïr-se. Propòsit Habilitar o deshabilitar la música de fons del joc. Resum Mentres que l'aplicació s'està executant el Jugador pot habilitar o deshabilitar la música de fons de Banjooli Xeet PC. Per a realitzar aquesta acció haurà de desplegar el menú d'opcions i clicar sobre l'icona de so. Curs normal (bàsic) 1 Jugador: Clica sobre l'icona de so. 2 Sistema: Si la música de fons s'estava reproduïnt deixa de fer-ho. En cas de que la música de fons estigués parada aquesta es torna a reproduïr. 3 Sistema: Si la música de fons està habilitada mostra l'icona de so colorejada. En cas contrari mostra l'icona de so en blanc i negre Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 19 CU-OPC-04: Ajustar efectes Fig. 16. Icona del joc que representa els efectes de so. Cas d'ús CU-OPC-04 Actors Jugador Tipus Primari Referències CU-OPC-01 Precondicions El menú d'opcions es mostra desplegat. Postcondicions Si estaven habilitats els efectes de so queden deshabilitats. En cas de que ja estiguin deshabilitats es tornen a habilitar. Propòsit Habilitar o deshabilitar els efectes de so del joc. Resum Mentres que l'aplicació s'està executant el Jugador pot habilitar o deshabilitar els efectes de so de Banjooli Xeet PC. Per a realitzar aquesta acció haurà de desplegar el menú d'opcions i clicar sobre l'icona d'efectes de so. Curs normal (bàsic) 1 Jugador: Clica sobre l'icona d'efectes de so. 2 Sistema: Si els efectes de so estaven habilitats passen a estar deshabilitats. En cas de que estiguéssin deshabilitats passen a estar habilitats. 3 Sistema: Si els efectes de so estan habilitats mostra l'icona d'efectes de so colorejada. En cas contrari mostra l'icona en blanc i negre. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 20 CU-OPC-05: Veure instruccions Fig. 17. Icona del joc que representa les instruccions. Cas d'ús CU-OPC-05 Actors Jugador Tipus Primari Referències CU-OPC-01 Precondicions El menú d'opcions es mostra desplegat. Postcondicions Es mostren les instruccions de joc. Propòsit Consultar les instruccions del joc. Resum Mentres que l'aplicació s'està executant el Jugador pot decidir consultar les instruccions del Banjooli Xeet PC. Curs normal (bàsic) 1 Jugador: Clica sobre l'icona d'instruccions del joc. 2 Sistema: S'obre una finestra emergent amb les instruccions. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta CU-OPC-06: Tancar instruccions Cas d'ús CU-OPC-06 Actors Jugador Tipus Primari Referències CU-OPC-05 Precondicions Es mostra la finestra emergent amb les instruccions de joc. Postcondicions Es tanca la finestra. Propòsit Tancar la finestra amb les instruccions de joc. Resum El Jugador tanca la finestra emergent amb les instruccions de joc. Curs normal (bàsic) 1 Jugador: Clica sobre l'icona de tancar finestra. 2 Sistema: Es tanca la finestra emergent amb les instruccions. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 21 CU-OPC-07: Veure informació del joc Fig. 18. Icona del joc que representa la informació general del joc. Cas d'ús CU-OPC-07 Actors Jugador Tipus Primari Referències CU-OPC-01 Precondicions El menú d'opcions es mostra desplegat. Postcondicions Es mostra la informació del joc. Propòsit Consultar la informació del joc. Resum Mentres que l'aplicació s'està executant el Jugador pot decidir consultar la informació del joc Banjooli Xeet PC. Curs normal (bàsic) 1 Jugador: Clica sobre l'icona d'informació del joc. 2 Sistema: S'obre una finestra emergent amb la informació del joc (disenyador, artista, editorial, programador). Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta CU-OPC-08: Tancar informació del joc Cas d'ús CU-OPC-08 Actors Jugador Tipus Primari Referències CU-OPC-07 Precondicions Es mostra la finestra emergent amb la informació del joc. Postcondicions Es tanca la finestra. Propòsit Tancar la finestra amb la informació del joc. Resum El Jugador tanca la finestra emergent amb la informació general del joc. Curs normal (bàsic) 1 Jugador: Clica sobre l'icona de tancar finestra. 2 Sistema: Es tanca la finestra emergent amb la informació del joc. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 22 CONFIGURAR PARTIDA Fig. 19. Casos d'ús de configuració de partida. CU-CON-01: Canviar nom Fig. 20. Icona del joc que representa la informació del jugador. Cas d'ús CU-CON-01 Actors Jugador Tipus Primari Referències N/A Precondicions El Jugador es troba a la pantalla de configuració del joc i el tipus de joc es "Un jugador". Postcondicions Un jugador canvia de nom. Propòsit Canviar el nom d'un jugador. Resum A la pantalla de configuració del joc, mentres estigui sel·leccionat el mode de joc "Un jugador", podem canviar el nom dels jugadors. Curs normal (bàsic) 1 Jugador: Canvia el nom d'un jugador. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Jugador Canviar tipus de jugador Canviar nom Canviar taulell de joc Canviar mode de joc Projecte Final de Carrera. Banjooli Xeet. 23 CU-CON-02: Canviar tipus de jugador Fig. 21. Detall dels diferents tipus de jugador. Cas d'ús CU-CON-02 Actors Jugador Tipus Primari Referències N/A Precondicions El Jugador es troba a la pantalla de configuració del joc i el tipus de joc es "Un jugador". Postcondicions Un jugador canvia el seu tipus. Propòsit Canviar el tipus d'un jugador. Resum A la pantalla de configuració del joc, mentres estigui sel·leccionat el mode de joc "Un jugador", podem canviar el tipus dels jugadors. Curs normal (bàsic) 1 Jugador: Canvia el tipus d'un jugador. 2 Sistema: El sistema registra els canvis. Altres dades Freqüència Moderada Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 24 CU-CON-03: Canviar taulell de joc Fig. 22. Detall dels diferents taulells de joc. Cas d'ús CU-CON-03 Actors Jugador Tipus Primari Referències N/A Precondicions El Jugador es troba a la pantalla de configuració del joc i el tipus de joc es "Un jugador" o "Multijugador (Servidor)". Postcondicions Un jugador canvia el tipus de taulell de joc. Propòsit Canviar el tipus de taulell de joc. Resum A la pantalla de configuració del joc, mentres estigui sel·leccionat el mode de joc "Un jugador" o "Multijugador (Servidor)", podem canviar el tipus de taulell de joc. Curs normal (mode "Un jugador") 1 Jugador: El jugador prem sobre l'icona del taulell per canviar el taulell de joc. 2 Sistema: El sistema registra els canvis. Curs alternatiu I (mode "Multijugador (Servidor)") 2 Sistema: El sistema envia a tots els jugadors connectats el nou taulell escollit. 3 Sistema: El sistema registra els canvis. Curs alternatiu II (mode "Multijugador (Client)") 1 Sistema: El sistema rep un missatge multijugador de canvi de taulell. 2 Sistema: El sistema registra els canvis 3 Sistema: El sistema actualitza a la vista el taulell de joc. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 25 CU-CON-04: Canviar mode de joc Fig. 23. Detall dels diferents modes de joc. Cas d'ús CU-CON-04 Actors Jugador Tipus Primari Referències N/A Precondicions El Jugador es troba a la pantalla de configuració del joc i vol canviar el mode de joc. Postcondicions Un jugador canvia el mode de joc. Propòsit Canviar el tipus de mode de joc. Resum A la pantalla de configuració del joc podem canviar el mode de joc. Curs normal (mode "Un jugador") 1 Jugador: El jugador canvia el mode de joc. 2 Sistema: El sistema s'actualitza per a jugar en mode "Multijugador (Servidor)". 3 El sistema actualitza a la vista el mode de joc. Curs alternatiu I (mode "Multijugador (Servidor)") 2 Sistema: El sistema tanca totes les connexions establertes i para el servei en cas de que estigués executant-se. 3 Sistema: El sistema s'actualitza per a jugar en mode "Multijugador (Client)". 4 Sistema: El sistema registra els canvis. Projecte Final de Carrera. Banjooli Xeet. 32 TORN DE JOC Fig.31. Casos d'ús de torn de joc Jugador Llençar daus Rellençar dau Escollir estruç Espantar estruç Moure estruç Passar torn Desfer moviment Projecte Final de Carrera. Banjooli Xeet. 33 CU-TOR-01: Llençar daus Fig. 32. Detall de la icona per llençar els daus. Cas d'ús CU-TOR-01 Actors Jugador, IA "Aleatori", IA "Predicció", IA "Dau Negre" Tipus Primari Referències N/A Precondicions És el torn del jugador i encara no ha llençat els daus. Postcondicions Es llencen els daus. Propòsit Llençar els daus per conèixer el moviment a realitzar. Resum A la pantalla de partida es llencen els daus per tal de conèixer el moviment a realitzar. Curs normal (mode "Un jugador") 1 Jugador: Prem la icona de llençar els daus. 2 Sistema: El sistema calcula la tirada. 3 Sistema: El sistema mostra la tirada a l'usuari. Curs alternatiu I (modes multijugador) 3 Sistema: El sistema envia la tirada al servidor. 4 Sistema Servidor: Rep la tirada, la registra i la envia als clients connectats. 5 Sistema: El sistema rep la nova tirada. 6 Sistema: El sistema mostra la tirada a l'usuari. Altres dades Freqüència Alta Urgència Alta Importància Alta Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 34 CU-TOR-02: Rellençar dau Fig. 33. Detall de la icona del dau de moviment(vermell) i d'espantar (negre). Cas d'ús CU-TOR-02 Actors Jugador, IA "Aleatori", IA "Predicció", IA "Dau Negre" Tipus Primari Referències CU-TOR-01 Precondicions És el torn del jugador i el dau escollit encara no s'ha rellençat. Postcondicions El dau escollit es rellença i es mostra d'un altre color per poder diferenciar d'un dau no rellençat (taronja si vermell o blau si negre). Propòsit Rellençar un dau. Resum A la pantalla de partida es rellença un dau. Només es pot rellençar un cop cada dau. Curs normal (mode "Un jugador") 1 Jugador: Prem la icona del dau que vol rellençar. 2 Sistema: Calcula la tirada del dau. 3 Sistema: El sistema mostra la tirada a l'usuari, canviant de color el dau per tal de diferenciar-lo d'un dau no rellençat. Curs alternatiu I (modes multijugador) 3 Sistema: El sistema envia el resultat al servidor. 4 Sistema Servidor: Rep el nou resultat, el registra i l'envia als clients connectats. 5 Sistema: El sistema rep el resultat. 6 Sistema: El sistema mostra la tirada a l'usuari Curs alternatiu II (dau ja rellençat) 2 Sistema: No fa res. Altres dades Freqüència Alta Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 35 CU-TOR-03: Escollir estruç Fig. 34. Detall de les icones que representen l'estruç número 1 corrent i espantada. Cas d'ús CU-TOR-03 Actors Jugador, IA "Aleatori", IA "Predicció", IA "Dau Negre" Tipus Primari Referències CU-TOR-01 Precondicions És el torn del jugador i s'han llençat els daus. Postcondicions Es mostren les caselles a les que pot moure l'estruç sel·leccionat així com la casella en la que es troba l'estruç en cas de que pugui espantar-se. Propòsit Conèixer les possibles accions que es poden realitzar amb l'estruç sel·leccionat. Resum El jugador, un cop a llençat els daus, pot escollir un estruç per conèixer les possibles accions a realitzar. Curs normal (mode "Un jugador") 1 Jugador: Prem sobre la icona de l'estruç. 2 Sistema: Calcula les possibles accions per l'estruç sel·leccionat. 3 Sistema: El sistema mostra les accions trobades. Curs alternatiu I (modes multijugador) 2 Sistema: El sistema envia l'estruç sel·leccionat al servidor. 3 Sistema Servidor: Rep l'estruç sel·leccionat i l'envia als clients connectats. 4 Sistema: El sistema rep el resultat i calcula les possibles accions a realitzar. 5 Sistema: El sistema mostra les accions a l'usuari. Altres dades Freqüència Alta Urgència Alta Importància Alta Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 36 CU-TOR-04: Espantar/Animar estruç Fig. 35. Detall de la icona que representa "espantar" o "animar" un estruç. Cas d'ús CU-TOR-04 Actors Jugador, IA "Aleatori", IA "Predicció", IA "Dau Negre" Tipus Primari Referències CU-TOR-03 Precondicions És el torn del jugador i apareix la icona per "espantar" o "animar" un estruç. Postcondicions L'estruç s'espanta si estava normal o es reanima si estava espantada i es passa el torn al següent jugador. Propòsit Espantar o animar un estruç. Resum El jugador, un cop mostrades les accions a realitzar, escull la d'espantar o animar un estruç prement sobre l'icona. Curs normal (mode "Un jugador") 1 Jugador: Prem sobre la icona d'espantar o animar. 2 Sistema: Registra l'acció sobre l'estruç. 3 Sistema: Passa el torn al següent jugador (CU-TOR-06). Curs alternatiu I (modes multijugador) 2 Sistema: El sistema envia l'acció seleccionada al servidor. 3 Sistema Servidor: Rep l'acció sel·leccionada i l'envia als clients connectats. 4 Sistema: El sistema rep l'acció sel·leccionada i la registra. 5 Sistema: Passa el torn al següent jugador (CU-TOR-06). Altres dades Freqüència Alta Urgència Alta Importància Alta Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 37 CU-TOR-05: Moure estruç Fig. 36. Detall de les icones de "moviment possible" (blanc) i "moure" (vermell) un estruç. Cas d'ús CU-TOR-05 Actors Jugador, IA "Aleatori", IA "Predicció", IA "Dau Negre" Tipus Primari Referències CU-TOR-03 Precondicions És el torn del jugador i apareix la icona de "moviment possible". Postcondicions L'estruç es mou a la casella sel·leccionada i passa el torn al següent jugador. Propòsit Moure un estruç. Resum El jugador, un cop mostrades les accions a realitzar, escull una casella de "moviment possible". L'estruç es mou a la casella sel·leccionada i es passa el torn al següent jugador. Curs normal (mode "Un jugador") 1 Jugador: Prem sobre la icona de moure. 2 Sistema: El sistema registra el moviment de l'estruç. 3 Sistema: Passa el torn al següent jugador (CU-TOR-06). Curs alternatiu I (modes multijugador) 2 Sistema: El sistema envia l'acció de moviment al servidor. 3 Sistema Servidor: Rep l'acció de moviment i l'envia als clients connectats. 4 Sistema: El sistema rep l'acció de moviment i la registra. 5 Sistema: Passa el torn al següent jugador (CU-TOR-06). Altres dades Freqüència Alta Urgència Alta Importància Alta Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 38 CU-TOR-06: Passar torn Fig. 37. Detall del botó "Pasar". Cas d'ús CU-TOR-06 Actors Jugador, IA "Aleatori", IA "Predicció", IA "Dau Negre" Tipus Primari Referències N/A Precondicions És el torn del jugador. Postcondicions El torn passa al següent jugador. Propòsit Passar el torn. Resum El jugador actiu passa el torn al següent jugador. Curs normal (mode "Un jugador") 1 Jugador: Prem sobre el botó "Pasar". 2 Sistema: El sistema marca com a jugador actiu el següent jugador. 3 Sistema: Mostra la finestra de joc amb la informació actualitzada. Curs alternatiu I (modes multijugador) 2 Sistema: El sistema envia l'acció de passar el torn. 3 Sistema Servidor: Rep l'acció de passar el torn i l'envia als clients connectats. 4 Sistema: El sistema rep l'acció de passar el torn i marca com a jugador actiu el següent jugador. 5 Sistema: Mostra la finestra de joc amb la informació actualitzada. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 39 CU-TOR-07: Desfer jugada Fig. 38. Detall del botó "Deshacer". Cas d'ús CU-TOR-07 Actors Jugador Tipus Primari Referències N/A Precondicions És el torn del jugador i s'està jugant en mode "Un jugador". Postcondicions Es torna a l'estat del torn anterior del jugador actual. Propòsit Desfer un moviment. Resum El jugador actiu desfà la jugada. Curs normal (bàsic) 1 Jugador: Prem sobre el botó "Deshacer". 2 Sistema: El sistema recupera la jugada anterior del jugador de la memòria. 3 Sistema: Mostra la finestra de joc amb la informació actualitzada. Altres dades Freqüència Baixa Urgència Alta Importància Moderada Estabilitat Alta Projecte Final de Carrera. Banjooli Xeet. 40 Diagrames de seqüència CU-OPC-01: Veure menú d'opcions CU-OPC-02: Tancar menú d'opcions v : Vistau : Jugador 1 : clicMenuOpcions() v : Vistau : Jugador 1 : clicMenuOpcions() Projecte Final de Carrera. Banjooli Xeet. 41 CU-OPC-03: Ajustar so CU-OPC-04: Ajustar efectes v : Vistau : Jugador c : Control·lador 1 : clicOpcioSo() 2 : ajustarSo() 3 : canviarImatgeSo() v : Vistau : Jugador c : Control·lador 1 : clicOpcioEfectes() 2 : ajustarEfectes() 3 : canviarImatgeEfectes() Projecte Final de Carrera. Banjooli Xeet. 48 CU-TOR-01: Llençar daus Projecte Final de Carrera. Banjooli Xeet. 49 CUTOR -02: Rellençar dau Projecte Final de Carrera. Banjooli Xeet. 50 CUTOR -03: Escollir estruç Projecte Final de Carrera. Banjooli Xeet. 51 CUTOR -04: Espantar/Animar estruç Projecte Final de Carrera. Banjooli Xeet. 52 CUTOR -05: Moure estruç Projecte Final de Carrera. Banjooli Xeet. 53 CUTOR -06: Passar torn Projecte Final de Carrera. Banjooli Xeet. 54 CUTOR -07: Desfer jugada v : Vistau : Jugador c : Control·lador m : Model Desencuem l'estat de la partida del torn anterior i l'assignem al model. La finestra mostra l'estat de la partida actual. 1 : clicDesferJugada() 2 : desferJugada() 3 : setPartida(p:Partida) 4 : pintarFinestraPartida() Projecte Final de Carrera. Banjooli Xeet. 55 Disseny Arquitectura El projecte s'implementarà utilitzant el patró Model-Vista-Controlador, dividint d'aquesta forma l'aplicació en tres capes:  Vista: Mostra tota la informacio del joc a l’usuari, i en rep la interacció.  Control·lador: Control·la la lògica del joc, i té una representació interna de l’estat de tots els elements de la partida.  Model: S’encarrega de l’emmagatzematge persistent de les dades del joc. Fig. 39. Detall del patró MVC. Aquest patró garanteix un baix acoplament entre els diferents nivells, facilitant la mantenibilitat del software. En la majoria de casos d’ús, l’usuari iniciarà una interacció amb el joc que serà tractada per la capa de presentació (Vista). Aquesta, després de realitzar les accions pròpies que siguin necessàries, comunicarà la informacio de la interacció a la capa de domini (Control·lador), la qual actualitzarà l’estat del joc comunicant-se amb la capa de dades (Model). Projecte Final de Carrera. Banjooli Xeet. 56 Interfície Inici Fig. 40. Detall de la pantalla de configuració de la partida. Al iniciar l'aplicació veurem directament la pantalla de configuració de la partida. En aquesta trobarem els següents components:  Menú d'opcions  Selecció de jugador  Selecció de taulell  Selecció de mode de joc  Botó "Jugar"  Botó "Salir" Projecte Final de Carrera. Banjooli Xeet. 57 Menú d'opcions Fig. 41. Detall del contingut del menú d'opcions. Al prèmer sobre el botó del menú d'opcions es desplegarà el contingut d'aquest. Podrem observar un llistat d'icones amb les quals podrem realitzar les següents accions:  Activar/Desactivar música de fons  Activar/Desactivar efectes de so  Veure les instruccions del joc  Veure la informació del joc Projecte Final de Carrera. Banjooli Xeet. 64 Torn del jugador actual Fig. 48. Detall del component que indica el torn del jugador actual. A la part dreta de la pantalla de joc podem observar el component que indica el jugador actual. Durant la partida únicament podrà interactuar amb els components de joc el jugador que disposi del seu torn de joc (a excepció del botó "Salir"). Llençador de daus Fig. 49. Detall del component "Llençador de daus". A la part dreta de la pantalla de joc, al iniciar el torn, apareix el component "Llençador de daus". El jugador haurà de prèmer sobre aquest per conèixer el resultat de la seva tirada. Projecte Final de Carrera. Banjooli Xeet. 65 Tirada de daus Fig. 50. Detall del component per visualitzar i rellençar els daus. A la part dreta de la pantalla de joc es pot observar el component que mostra la tirada dels daus. En vermell i daurat apareixen els daus que corresponen al moviment dels estruços, mentres que el dau negre (o blau si es rellença) correspon a l'acció d'espantar/animar un estruç. Accions: "Deshacer", "Pasar", "Salir" Fig. 51. Detall dels botons d'acció. A la part inferior dreta apareixen les possibles accions a realitzar per part del jugador:  Botó "Deshacer": Durant el seu torn podrà desfer les jugades fetes anteriorment fins arribar a l'estat inicial de la partida.  Botó "Pasar": En el torn del jugador podrà passar torn.  Botó "Salir": En qualsevol moment el jugador podrà sortir de la partida. Projecte Final de Carrera. Banjooli Xeet. 66 Taulell de joc Fig. 52. Detall del taulell de joc d'una partida de Banjooli Xeet. A la part esquerra apareix el taulell de joc. En ell podrem observar les peces del circuit, els obstacles, els estruços i els moviments possibles a realitzar per al jugador actual a partir de la seva tirada. Peces del circuit Obstacles Estruços Moviments Projecte Final de Carrera. Banjooli Xeet. 67 Estruços Fig. 53. Detall de les fitxes d'estruç. Les fitxes d'estruç aparèixen sobre les peces del circuit. Per moure una fitxa haurem de clicar a sobre d'ella i apareixeran dibuixades les possibles accions que podem realitzar amb aquesta. Moviments Fig. 54. Detall de les icones de moviment. Les icones de moviment (blanc) apareixen al taulell de joc un cop seleccionem l'estruç que volem moure. Si cliquem sobre una icona de moviment (vermell) l'estruç sel·leccionada es mourà fins la possició escollida. A vegades apareixeran moviments marcats en color negre a sobre dels estruços. Aquest tipus d'acció simbolitza el fet d'espantar o animar un estruç. Projecte Final de Carrera. Banjooli Xeet. 68 Model de classes Visió global Projecte Final de Carrera. Banjooli Xeet. 69 Vista org.pia.banjoolixeet.gui BanjooliXeetWindow org.pia.banjoolixeet.gui.widgets PlayerTypeSelectorPanel TribeSelectorPanel GameTypeSelectorPanel PlayAction CreateMultiplayerGameAction JoinMultiplayerGameAction ExitGameAction SoundButton FXButton RulesButton InfoButton ExitAppButton MenuButton PredictionPanel CurrentPlayerPanel DicePanel BoardPanel AITimerBar UndoAction SkipAction ExitAction 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Projecte Final de Carrera. Banjooli Xeet. 70 Control·lador org.pia.banjoolixeet.controlador org.pia.banjoolixeet.controlador.utils org.pia.banjoolixeet.controlador.ai GameController SoundManager AIManager org.pia.banjoolixeet.controlador.net MultiplayerServerManager MultiplayerClientManager 1 1 1 1 0..1 0..1 AIRandomTask AIPredictionBoostTask AIScareOpponentOstrichsTask 1 0..1 0..1 0..1 Projecte Final de Carrera. Banjooli Xeet. 71 Model org.pia.banjoolixeet.model Player Board Podium Prediction DiceThrow 1 1 1 1 BoardMap 1*BoardCounter1* Projecte Final de Carrera. Banjooli Xeet. 72 Comunicacions Breu descripció Banjooli Xeet PC implementa una gestió de les comunicacions molt senzilla basada en els events que produeix el jugador. El jugador que crea la partida multijugador crea un Socket que inicia l'escolta de les peticions entrants pel port 12345. Quan arriba una petició el servidor llença un Thread que s'encarregarà de la comunicació amb el client. El servidor és capaç de gestionar fins a sis fils de comunicació (5 pels jugadors i 1 per rebutjar les connexions entrants). Durant la partida, el jugador que disposa el torn, serà l'únic que es comunicarà amb el servidor de joc indicant l'acció realitzada. Un cop el servidor rep l'acció l'enviarà a tots els clients connectats. En el cas de la pantalla de configuració de partida es considera que el jugador amfitrió és qui té el torn. Protocol de comunicació Per a realitzar la comunicació s'ha creat un llenguatge propi: Missatge Paràmetres Descripció CON_ACCEPTED S'ha acceptat la connexió al joc. CON_REJECTED S'ha rebutjat la connexió al joc. JOIN_PLAYER {1}: Nom del jugador El jugador {1} vol unir-se al joc. LEFT_PLAYER {1}: Nom del jugador El jugador {1} abandona el joc. GET_CONFIG Demana la configuració del joc. SET_PLAYERS {1}: Id del jugador 1 {2}: Tipus del jugador 1 {3}: Nom del jugador 1 {4}: Id del jugador 2 {5}: Tipus del jugador 2 {6}: Nom del jugador 2 {7}: Id del jugador 3 {8}: Tipus del jugador 3 {9}: Nom del jugador 3 {10}: Id del jugador 4 {11}: Tipus del jugador 4 {12}: Nom del jugador 4 {13}: Id del jugador 5 {14}: Tipus del jugador 5 {15}: Nom del jugador 5 Rep informació dels jugadors de la partida. Projecte Final de Carrera. Banjooli Xeet. 73 SET_TRIBE {1}: Tipus de taulell Rep informació del tipus de taulell de joc. ROLL {1}: Dau vermell 1 {2}: Dau vermell 2 {3}: Dau vermell 3 {4}: Dau vermell 4 {5}: Dau vermell 5 {6}: Dau vermell 6 {7}: Dau negre Rep informació de la tirada realitzada. REROLL {1}: Dau {2}: Resultat Rep informació del dau rellençat. CLICK_COUNTER {1}: Estruç {2}: Taulell X {3}: Taulell Y {4}: Cel·la X {5}: Cel·la Y Rep informació de l'estruç sel·leccionat per visualitzar els possibles moviments. CLICK_MOVEMENT {1}: Estruç {2}: Anterior Taulell X {3}: Anterior Taulell Y {4}: Anterior Cel·la X {5}: Anterior Cel·la Y {6}: Nou Taulell X {7}: Nou Taulell Y {8}: Nou Cel·la X {9}: Nou Cel·la Y Rep informació del moviment sel·leccionat. SKIP_TURN {1}: Nom del jugador Indica el jugador que passa el torn. START_GAME {1}: Predicció 1 Jugador 1 {2}: Predicció 2 Jugador 1 {3}: Predicció 3 Jugador 1 {4}: Predicció 4 Jugador 1 {5}: Predicció 1 Jugador 2 {6}: Predicció 2 Jugador 2 {7}: Predicció 3 Jugador 2 {8}: Predicció 4 Jugador 2 {9}: Predicció 1 Jugador 3 {10}: Predicció 2 Jugador 3 {11}: Predicció 3 Jugador 3 {12}: Predicció 4 Jugador 3 {13}: Predicció 1 Jugador 4 {14}: Predicció 2 Jugador 4 {15}: Predicció 3 Jugador 4 {16}: Predicció 4 Jugador 4 {17}: Predicció 1 Jugador 5 {18}: Predicció 2 Jugador 5 {19}: Predicció 3 Jugador 5 {20}: Predicció 4 Jugador 5 Rep l'acció d'inici de la partida amb les prediccions dels jugadors. END_GAME {1}: Nom del jugador Indica que el jugador {1} abandona la partida. ERROR {1}: Codi d'error Indica que ha hagut un error. Projecte Final de Carrera. Banjooli Xeet. 80 Player Un Player conté tota la informació del jugador:  Id: Identificador del jugador.  Name: Nom del jugador.  Type: Tipus de jugador (Cap, Persona, IA "Aleatori", IA "Predicció", IA "Dau Negre")  Prediction: Predicció associada al jugador.  Score: Puntuació del jugador al finalitzar el joc.  DiceThrow: Resultat del llençament de daus. Prediction Un objecte Prediction está associat sempre a un Player i indica la predicció que se li ha assignat al jugador. Fig. 59. Detall de la representació gràfica de la predicció d'un jugador. Projecte Final de Carrera. Banjooli Xeet. 81 DiceThrow Un objecte DiceThrow emmagatzema la informació del llençament de daus del jugador. Modela els sis daus de moviment i el dau negre i recull si han estat rellençats o no. Fig. 60. Detall de la representació gràfica del DiceThrow d'un jugador. Projecte Final de Carrera. Banjooli Xeet. 82 Conclusions Planificació Diagrama de Gantt Comentaris Encara que el projecte no ha estat realitzat invertint jornades de treball de 8 hores, ni s'ha realitzat de una forma regular degut a la càrrega laboral, s'han agrupat les hores de feina realitzades en dies de treball complets per tal de planificar la càrrega temporal del projecte. En aquest supòsit, la planificació inicial s'ha ajustat sorprenentment a la càrrega final del projecte. Encara que és cert que inicialment s'havien planificat les tasques amb cert marge de reacció que al final s'ha esgotat al complet per a cadascuna de les tasques que divideixen el projecte. El resultat ha estat un projecte de 75 jornades de treball. Projecte Final de Carrera. Banjooli Xeet. 83 Estudi entre IAs IA "Aleatori" 1 IA "Aleatori" vs 1 IA "Predicció" Núm. Partida IA "Aleatori" IA "Predicció" Núm. Torns Guanya? 1 2 9 10 NO 2 4 9 10 NO 3 4 8 9 NO 4 7 7 11 Empat 5 8 12 10 NO 6 2 12 11 NO 7 4 4 11 Empat 8 4 9 12 NO 9 4 7 9 NO 10 5 7 11 NO 11 4 4 11 Empat 12 7 9 10 NO 13 2 4 12 NO 14 2 9 11 NO 15 2 12 11 NO 16 2 12 11 NO 17 2 12 9 NO 18 7 12 11 NO 19 2 9 13 NO 20 3 12 10 NO 21 4 6 7 NO 22 4 12 10 NO 23 4 4 12 Empat 24 4 7 12 NO 25 4 12 11 NO Guanyats 0 Empatats 4 Perduts 21 Projecte Final de Carrera. Banjooli Xeet. 84 1 IA "Aleatori" vs 4 IA "Predicció" Núm. Partida IA "Aleatori" IA 1 "Predicció" IA 2 "Predicció" IA 3 "Predicció" IA 4 "Predicció" Núm. Torns Guanya? 1 2 8 7 2 5 5 NO 2 4 9 4 9 7 5 NO 3 4 2 2 7 9 4 NO 4 2 4 4 4 5 5 NO 5 7 2 7 6 5 4 Empat 6 5 9 4 12 4 4 NO 7 4 7 2 12 2 4 NO 8 2 5 5 4 8 6 NO 9 2 2 4 5 4 6 NO 10 2 6 4 8 4 5 NO 11 5 9 7 5 8 5 NO 12 6 4 12 4 4 5 NO 13 9 7 7 7 8 6 SI 14 6 4 4 2 6 5 Empat 15 6 5 8 2 7 6 NO 16 2 7 6 7 2 4 NO 17 5 9 6 7 4 6 NO 18 7 4 12 5 6 5 NO 19 4 7 4 4 7 5 NO 20 2 4 2 2 7 5 NO 21 2 9 4 12 4 5 NO 22 4 9 4 4 7 5 NO 23 4 9 4 4 4 5 NO 24 4 4 12 7 4 5 NO 25 7 9 8 9 2 5 NO Guanyats 1 Empatats 2 Perduts 22 Projecte Final de Carrera. Banjooli Xeet. 85 1 IA "Aleatori" vs 1 IA "Dau Negre" Núm. Partida IA "Aleatori" IA "Dau Negre" Núm. Torns Guanya? 1 14 24 9 NO 2 18 12 15 SI 3 2 9 9 NO 4 4 12 11 NO 5 24 18 15 SI 6 6 18 15 NO 7 7 24 14 NO 8 4 12 11 NO 9 5 18 10 NO 10 2 24 11 NO 11 12 16 10 NO 12 6 9 11 NO 13 7 24 12 NO 14 2 24 20 NO 15 3 7 10 NO 16 4 12 11 NO 17 4 24 19 NO 18 4 14 10 NO 19 7 24 8 NO 20 4 7 19 NO 21 3 9 12 NO 22 4 14 10 NO 23 4 9 9 NO 24 8 9 12 NO 25 4 7 8 NO Guanyats 2 Empatats 0 Perduts 23 Projecte Final de Carrera. Banjooli Xeet. 86 1 IA "Aleatori" vs 4 IA "Dau Negre" Núm. Partida IA "Aleatori" IA 1 "Dau Negre" IA 2 " Dau Negre " IA 3 " Dau Negre " IA 4 " Dau Negre " Núm. Torns Guanya? 1 18 8 7 9 4 13 SI 2 7 9 8 7 4 8 NO 3 14 8 7 6 4 8 SI 4 7 6 5 8 24 8 NO 5 5 12 8 18 9 4 NO 6 8 6 8 6 7 10 Empat 7 2 16 5 8 9 8 NO 8 8 2 4 9 4 15 NO 9 18 24 5 3 14 12 NO 10 8 2 4 9 8 9 NO 11 4 5 4 4 4 9 NO 12 14 2 24 4 7 8 NO 13 7 6 7 12 8 7 NO 14 4 16 7 8 18 5 NO 15 7 2 24 4 4 26 NO 16 7 8 7 5 12 6 NO 17 4 2 4 6 9 6 NO 18 3 6 7 7 3 8 NO 19 7 14 2 4 18 11 NO 20 2 7 8 4 2 11 NO 21 8 12 12 2 24 5 NO 22 9 9 7 6 14 9 NO 23 8 4 2 14 24 8 NO 24 4 5 6 12 5 9 NO 25 5 7 12 18 5 8 NO Guanyats 2 Empatats 1 Perduts 22 Projecte Final de Carrera. Banjooli Xeet. 87 IA "Predicció" 1 IA "Predicció" vs 1 IA "Aleatori" Núm. Partida IA "Predicció" IA "Aleatori" Núm. Torns Guanya? 1 12 5 11 SI 2 12 3 10 SI 3 9 6 11 SI 4 7 5 10 SI 5 9 4 9 SI 6 12 6 9 SI 7 12 4 10 SI 8 7 4 11 SI 9 8 4 10 SI 10 9 9 13 Empat 11 12 6 11 SI 12 7 2 9 SI 13 6 4 9 SI 14 4 2 8 SI 15 9 5 11 SI 16 5 4 12 SI 17 7 4 12 SI 18 4 4 11 Empat 19 7 4 11 SI 20 12 2 12 SI 21 12 2 11 SI 22 9 8 12 SI 23 9 2 9 SI 24 9 4 13 SI 25 12 2 12 SI Guanyats 23 Empatats 2 Perduts 0 Projecte Final de Carrera. Banjooli Xeet. 88 1 IA "Predicció" vs 4 IA "Aleatori" Núm. Partida IA "Predicció" IA 1 "Aleatori" IA 2 " Aleatori " IA 3 " Aleatori " IA 4 " Aleatori " Núm. Torns Guanya? 1 5 5 4 2 5 3 Empat 2 9 4 6 5 5 5 SI 3 9 4 6 4 5 6 SI 4 4 6 6 4 4 5 NO 5 4 5 4 2 4 5 NO 6 4 8 6 4 2 5 NO 7 4 4 2 6 4 5 NO 8 5 4 4 7 2 5 NO 9 4 4 2 7 2 5 NO 10 5 4 4 5 7 4 NO 11 7 4 2 4 6 5 SI 12 2 4 4 2 7 4 NO 13 1 4 4 7 7 5 NO 14 2 2 9 3 2 5 NO 15 9 2 2 8 2 5 SI 16 4 7 5 7 4 4 NO 17 2 4 2 4 7 6 NO 18 4 4 4 4 12 4 NO 19 5 2 2 6 4 5 NO 20 7 2 2 7 5 4 Empat 21 4 4 4 4 6 4 NO 22 12 4 2 4 12 4 Empat 23 9 5 2 6 4 5 SI 24 4 2 2 2 7 4 NO 25 12 2 2 12 2 4 Empat Guanyats 5 Empatats 4 Perduts 16 Projecte Final de Carrera. Banjooli Xeet. 89 1 IA "Predicció" vs 1 IA "Dau Negre" Núm. Partida IA "Predicció" IA "Dau Negre" Núm. Torns Guanya? 1 9 24 13 NO 2 4 12 10 NO 3 4 7 9 NO 4 9 4 12 SI 5 5 6 19 NO 6 7 16 12 NO 7 4 18 12 NO 8 4 24 11 NO 9 5 6 23 NO 10 2 7 21 NO 11 16 7 11 SI 12 8 18 15 NO 13 5 14 13 NO 14 2 18 12 NO 15 14 4 10 SI 16 8 7 20 SI 17 18 8 11 SI 18 7 5 12 SI 19 7 9 10 NO 20 8 9 13 NO 21 5 14 18 NO 22 7 4 10 SI 23 2 24 19 NO 24 12 16 19 NO 25 14 24 17 NO Guanyats 7 Empatats 0 Perduts 18 Projecte Final de Carrera. Banjooli Xeet. 96 Estudi econòmic Per a realitzar un estudi econòmic del projecte tindrem en compte la planificació realitzada. Utilitzarem els següents perfils:  Cap de projecte: Intervindrà en les reunions amb el client i serà l'encarregat de realitzar el primer document d'anàlisi de requeriments.  Analista: Realitzará l'anàlisi funcional i tècnic del projecte.  Programador: Implementarà l'aplicació.  Dissenyador: Serà l'encarregat de dissenyar el grafisme de l'aplicació. Cadascún d'ells el podem associar a una etapa del projecte:  Requeriments: Cap de projecte  Especificació: Cap de projecte  Disseny: Analista i Dissenyador gràfic  Implementació: Programador  Documentació: Analista La facturació que podriem generar a partir d'aquest projecte seria de 27,700 euros: Perfil Facturació jornada Jornades totals Import Cap de projecte 370 2 + 6 2960 Analista 320 16 + 21 11840 Programador 270 45 12150 Dissenyador 150 5 750 TOTAL 27700 El cost real que tindria en una empresa pot suposar 14,000 euros: Perfil Cost jornada Jornades totals Import Cap de projecte 195 2 + 6 1560 Analista 170 16 + 21 6290 Programador 130 45 5850 Dissenyador 60 5 300 TOTAL 14000 Obtenim uns beneficis de gairebé el 100%! Projecte Final de Carrera. Banjooli Xeet. 97 Millores a realitzar Un cop finalitzada la primera versió de Banjooli Xeet PC ens podem imaginar moltes millores per afegir a l'aplicació:  Més IA contra les que enfrontar-se. o IA "En ordre": Mou l'estruç que li tocaria arribar al podium segons la seva predicció. o IA "Espanta-últim": Intenta que estigui sempre espantat l'estruç que apareix com a últim en la seva predicció. o IA "Recorregut": L'heurístic per moure un estruç es basa en el recorregut que falta als estruços per arribar a la linia de fi.  Taulells de joc configurables o més tipus de taulells de joc.  Incloure IAs en el mode multijugador.  Incloure les fitxes de "baya", així com altres funcionalitats de la nova versió del joc de taulell Banjooli Xeet.  Afegir més tipus de músiques de fons i l'opció de canviar-les desde el menú.  Crear una web amb registre d'usuaris i gestionar els servidors actius en temps real.  Crear un mòdul de gestió d'actualitzacions de l'aplicació.  Afegir la funcionalitat multi-idioma.  Afegir la funcionalitat de visualització per diferents resolucions. Projecte Final de Carrera. Banjooli Xeet. 98 Manual d'usuari Introducció Els jugadors personifiquen els aspirants a bruixot en pugna per convertir-se en el nou bruixot de la tribu Noamomi. Per a aconseguir aquest objectiu hauran de complir amb les seves prediccions en la mil·lenària cursa d'estruços. Objectiu de joc L'objectiu de joc es convertir-se en el nou bruixot de la tribu. El guanyador serà el jugador que millor compleixi amb la seva predicció i, en conseqüència, rebi més punts de victòria. Components - Fins a 9 peces modulars de taulell: 1 peça de sortida, 1 peça d'arribada, 10 peces comuns (4 rectes i 6 curves). - 5 fitxes d'estruç "corrent". - 5 fitxes d'estruç "espantada". - 5 daus vermells/grocs i 1 dau negre/blau - Predicció aleatòria. Inici del joc Es visualitza el taulell de joc escollit i es col·loquen fitxes d'obstacle. Per a partides de 20 minuts es recomana escollir el taulell de la tribu Teda (3 rectes i 1 curva) o el taulell de la tribu Nuba (1 recta i 3 curves). Els torns del jugadors es succeïran segons l'ordre indicat a l'inici de la partida. Projecte Final de Carrera. Banjooli Xeet. 99 Torn de joc El jugador llençarà els daus. Si no està satisfet amb el resultat d'algún o tots els daus que ha llençat, podrà tornar a tirar els daus que desitgi un cop més. Un cop finalitzada la fase de llençament de daus pot escollir una de les opcions següents: - Moure un estruç: tenint només en compte els resultats dels daus vermells (o grocs si s'han rellançat) i com a regla general, el jugador haurà de moure un estruç tantes caselles com es repeteixi un resultat. Però, no podrà moure un estruç qualsevol, sino que només podrà moure un dels estruços numerats que coincideixi amb els resultats obtinguts. Existeix una peculiaritat a afegir respecte a la regla general encara que el jugador pot optar per no emplear-la: cada resultat de "6" en els daus vermells (o grocs si s'han rellançat) es pot utilitzar com a comodín per augmentar el moviment de l'estruç una casella per cada "6" obtingut. Regles de moviment: l'estruç ha de moure sempre cap endavant, en linea recta o diagonal, mai lateralment o cap enrera. A més: a) Les caselles de roca son infranquejables. No es pot finalitzar el moviment en una casella ja ocupada per un altre estruç. b) Gastant un punt de moviment un estruç pot saltar per sobre d'un altre estruç que es trobi en una casella adjacent, inclòs encara que estigui embruixat, tant en linia recta com en diagonal. Aquest salt es pot fer varies vegades per torn. c) Un estruç que es trobi en una casella de curva no podrà avançar diagonalment. - Embruixar: implica que l'estruç escollit no podrà moure en torns posteriors fins que sigui desembruixat. Es possa immediatament la fitxa d'estruç "embruixat" (la silueta de l'estruç amb el cap sota terra). Un estruç ja embruixat no pot tornar a embruixar-se. El resultat de "6" en el dau negre (o blau si s'ha rellançat) s'utilitza com a comodí i, per tant, el jugador pot embruixar a cualsevol estruç. - Desembruixar: implica la situació inversa al cas anterior, és a dir, un estruç que ja es trobi embruixat passa a estar desembruixat i, per tant, estarà disponible per a moure's en torns posteriors. La fitxa d'estruç es torna a possar "corrent". Com en el cas anterior, un resultat de "6" es considera comodí poguent desembruixar a qualsevol estruç. Projecte Final de Carrera. Banjooli Xeet. 100 Fi del joc i puntuació Una partida de Banjooli Xeet finalitza quan els tres primers estruços creuen la linia d'arribada. Quan es dona aquesta circumstància, immediatament es realitza el recompte de punts per a determinar el guanyador. Per a això, s'utilitzen les prediccions dels jugadors. Aquestes concedeixen punts de victòria segons la posició en la que han finalitzat els estruços. Projecte Final de Carrera. Banjooli Xeet. 101