Home
Implementación de juegos de estrategia en tablero
Contents
1. action pay game id 54b250b6c7dde99f06296541 player id 54a0511d4bf5c722d13d7404 amount 50 Jugar carta de influencia El par metro especial es la carta a ser jugada 1 action playInfluenceCard game id 54b250b6c7dde99f06296541 player id 54a0511d4bf 5c722d13d7404 idcard mininglup J Jugar carta de objetivo El par metro especial es la carta a ser jugada 1 action playObjectiveCard game id 54b250b6c7dde99f06296541 player id 54a0511d4bf5c722d13d7404 idcard mst450 Iniciar compra o venta de t tulos de acci n El par metro especial es el t tulo de acci n y la cantidad 1 action buy game id 54b250b6c7dde99f06296541 player id 54a05b11d4bf5c722d13d7404 amount 5 share mining J Todos los mensajes pueden recibir dos mensajes de respuesta del servidor Acci n correcta Si la acci n es correcta le pide al cliente web que re fresque el juego 1 action update game id 54b250b6c7dde99f06296541 44 CAP TULO 4 DISE O E IMPLEMENTACI N a Error Si la acci n es erronea devuelve error y el c digo del mismo action error game id 54b250b6c7dde99f06296541 error code Not owner of the card Pruebas Durante cualquier desarrollo de programaci n tiene que estar presente la fase de Testing en este caso no iba a ser diferente Se han realizado dos tipos de test
2. Descripci n Cualquier usuario puede registrarse como jugador en el sis tema Esto le dar derecho a poder usar el juego Los datos introducidos ser n validados Par metros de entrada email nombre contrase a Salida El usuario obtiene las credenciales para poder loguearse en el sistema 20 CAP TULO 3 AN LISIS Y ESPECIFICACI N Cambiar idioma Descripci n Cualquier usuario puede seleccionar el idioma mediante un selector Par metros de entrada Idioma que se desea mostrar Castellano ca tal n o ingl s Salida La interfaz visual del juego se cambia sin refrescar la p gina mos trando todos los textos en el idioma seleccionado Loguear Descripci n Cualquier usuario puede identificarse como jugador dentro del sistema Par metros de entrada email contrase a Salida Si las credenciales son correctas el jugador obtendr su lista de juegos en caso contrario se le volver n a pedir las credenciales Ver perfil Descripci n Cualquier usuario logueado en el sistema puede acceder a su perfil Par metros de entrada Usuario logueado a Salida El usuario podr ver su im gen de Gravatar 4 nombre email y cual fue su fecha de registro Modificar perfil Descripci n Cualquier usuario logueado puede cambiar sus datos de perfil Par metros de entrada nuevo nombre email a Salida El jugador ha cambiado el nombre o email registrado en el sistema Cambiar contras
3. no dividend is paid at all C 1 15 Bankruptcy A player who cannot meet his debts in full is out of the game The cards he holds must be returned to the appropriate packs C 2 Manual traducido al castellano C 2 1 El objetivo del juego Este es un juego basado en las caracter sticas de las operaciones con acciones y participaciones Al igual que en la realidad las estrategias de los inversores influyen decisivamente las tendencias del mercado Speculate no proporciona una situaci n en la que los jugadores ganan o pierden millones irreales simula la posici n del peque o inversor tratando de aumentar el valor de sus participaciones por las cantidades modestas pero vitales que conoce en la vida real que puede esperar Ahora sin embargo est en competencia con los dem s cada uno de los cuales tratar n de convertir la situaci n del mercado en su propio favor Habr momentos en los que los jugadores tendr n la emoci n de ver que con sus planes pueden ganar beneficios substanciales pero si el mercado no sigue su camino estar n igualmente en una situaci n emocionante y desafiante en su lucha para mantener sus carteras y evitar la quiebra C 2 MANUAL TRADUCIDO AL CASTELLANO 67 C 2 2 Estrategia Los jugadores deben ser conscientes de que ellos mismos pueden afectar ra dicalmente al mercado produciendo condiciones a favor o adversas Inevitable mente habr per odos de depresi n del mercado as como ocasiones en la
4. Tambi n hace que los clientes co nectados mediante la web refresquen el contenido ya que les env a la petici n de actualizaci n via websockets e localize Ayuda a completar todos los ficheros de internacionalizaci n del juego Esto nos hace que ning n texto quede sin traducir 4 2 6 Backend Mongoose 8 es una librer a para mapear objetos a modelos de mongodb en Node js Mongoose provee una interfaz casi directa usando esquemas para modelar todos los datos de tu aplicaci n Tambi n incluye gesti n de tipos de datos transformaciones validaciones l gica de consulta y todo ello sin tener que desarrollar m dulos espec ficos para ello Toda la comunicaci n con MongoDB se ha hecho a trav s de esta librer a 40 CAP TULO 4 DISE O E IMPLEMENTACI N 4 3 Estados de un juego Para familiarizar al lector sobre la estructura se ha creado un gr fico au toexplicativo de las posibles transacciones y cambios de estado que se realizan durante la duraci n de un juego Si se desean m s detalles al respecto se pue de consultar el manual de usuario que se ha traducido especialmente para la redacci n de esta memoria Inicia una venta de acciones Juega primera Los Juega segunda carta de jugadores carta de influencia responden influencia Inicia una Juega carta de objetivo Empieza su turno Paga 50 al banco compra de acciones Responde a una venta de acciones Finaliza el juego Se
5. que es el modelo en Angular Adem s de todo lo descrito podemos modularizar la aplicaci n en lo que denominaremos M dulos Se ha hecho un uso extensivo de los m dulos en la programaci n de frontend Eso nos proporciona el poder de aislar cada uno de los componentes 4 2 2 Servidor En la capa de servidor se ha escogido Node js Node js es un entorno de programaci n en la capa del servidor basado en el lenguaje de programaci n ECMAScript as ncrono con I O de datos en una arquitectura orientada a even tos y basado en el motor V8 de Google En su creaci n se tuvo en cuenta el enfoque de crear infraestructuras altamente escalables node bindings socket http etc Figura 4 13 Arquitectura de Node js Una de las ventajas de escojer Node js es que utlizaremos la tecnolog a Javascript tanto en el servidor como en el cliente cosa que nos facilitar el desarrollo y nos permitir hacer entregas de c digo m s r pidamente no tene mos que utilizar diferentes lenguajes de programaci n 4 2 3 Capa de datos Para la persistencia de datos se han valorado diferentes alternativas MongoDB es una base de datos NoSQL orientada a documentos Dos de sus grandes ventajas es que es schemaless no hay esquema fijo de los datos y 4 2 ENTORNO Y PLATAFORMA 39 la otra es que el formato para interactuar se parece mucho a JSON MongoDB lo llama BSON y eso nos facilita el intercambio de datos entre la capa de servid
6. resign Abandonar un juego DELETE api games ID Borrar el juego identificado por ID Con la implementaci n de un cliente para estas rutas HTTP y con la co municaci n en tiempo real explicada en este cap tulo cualquier desarrollador podr a un nuevo interfaz sin tener que implementar de nuevo todo el backend del juego Incluso esto podr a ser un futuro proyecto de final de carrera 42 CAP TULO 4 DISE O E IMPLEMENTACI N 4 6 Autenticaci n de los clientes Para aseguarse de que las peticiones son hechas por un usuario autenticado se ha hecho uso de la tecnolog a JSON Web Token 9 La implementaci n consta en dos fases En la primera fase cuando el usuario decide loguearse en el sistema se calcula un token que se le devuelve al usuario y a su vez se guarda en base de datos La segunda fase comprende todas las comunicaciones entre el cliente y el servidor En esa fase cualquier petici n HTTP que se realice desde el cliente incluye una cabecera HTTP del tipo Donde TOKEN es el token generado por el sistema Authorization Bearer TOKEN Una vez recibida la petici n del cliente el servidor de backend comprueba si el token es un token v lido y as consigue saber de qu usuario es la petici n que ha recibido 4 7 Implementaci n de la comunicaci n en tiem po real Uno de los objetivos identificados en el proyecto era ponerse al d a en lo que a desarrollo web se refiere Hoy en d a y cada vez m s la comunic
7. 2 Reguisitos no funcionales Los reguisitos no funcionales son aguellos gue no afectan directamente al comportamiento del sistema pero pueden provocar modificaciones o restriccio nes en el dise o o la implementaci n 1 Usabilidad La implementaci n ha de ser usable por personas no t cnicas Cualquier persona con un conocimiento m nimo sobre la web deber a ser capaz de poder jugar a la versi n implementada 2 Escalabilidad La escalabilidad de un sistema se define a trav s de la facilidad del mismo para soportar grandes cantidades de carga de trabajo Como ya se ha comentado anteriormente el hecho de que el p blico obje tivo sea una masa de jugadores tan grande hace que a la hora de dise ar el sistema se tenga muy en cuenta la escalabilidad 3 Extensibilidad La extensibilidad de un sistema se define como la faci lidad para agregar nuevos componentes al mismo El proyecto se ha de desarrollar siguiendo estandards y metodolog as comunmente aceptadas 4 Distribuci n y portabilidad Este requisito es una petici n del director del proyecto Miquel Barcel El juego ha de poderse jugar sin que para ello necesitemos ejecutar complejos pasos para poder instalarlo 5 Multiidioma El juego ha de estar traducido a como m nimo 3 idiomas Castellano catal n y Ingl s 3 2 Modelo de casos de uso Una vez listados los requisitos funcionales del sistema se puede elaborar una lista de casos de uso que se ha plasmado en el sig
8. 97h Testing 80h 79h Redacci n de la memoria 75h 80h Total 681h 731h Desviaci n de la planificaci n inicial Como podemos observar durante del desarrollo se ha invertido m s tiempo del gue estaba planificado en las tareas excepto en la tarea de Frontend A pesar de sto no se han llegado a cumplir todos los objetivos que se hab an previsto siendo el m s importante el soporte para multijugador Ahora con m s conocimiento sobre las herramientas utilizadas puedo decir que la adaptaci n del juego para poder aceptar a varios jugadores por partida llevar a 3 semanas Uno de los principales motivos de la desviaci n en la planificaci n ha si do la propia planificaci n es decir al no tener suficientes conocimientos sobre la arquitectura y el desarrollo en Node js los tiempos no est n correctamente estimados Se ha arreglado reduciendo el conjunto de funcionalidades que se entregan en este proyecto cosa que en un entorno profesional no deber a pasar 2 An lisis econ mico Para realizar un an lisis econ mico se han tenido en cuenta dos factores 6 2 AN LISIS ECON MICO 51 Horas invertidas Dando un total de 32635 Coste equipamiento Dando un total de 3185 El coste total del proyecto asciende a 35820 6 2 1 Horas invertidas Una vez plasmada la planificaci n real podemos separar las etapas en fun ci n del nivel laboral que stas requieren Separemos las horas en funci n de si la persona qu
9. declara un ganador Paga 100 si no ha pagado antes 50 Espera mientras otros jugadores juegan su turno Responde a una compra de acciones Figura 4 14 Diagrama de secuencia y estados 4 4 Implementaci n de la IA Uno de los requisitos del juego era poder jugar contra un jugador ficticio Para ellos se han implementado en la capa de servidor 4 tipos de jugadores ficticios cada uno con una personalidad diferente a Dummy Este tipo de IA es muy simple b sicamente lo nico que hace es jugar una carta aleatoria de influencia y no compra o vende acciones durante la duraci n de la partida Eso hace que en la mayor a de casos pierda las partidas Aleatorio Este tipo de IA realiza acciones aleatorias Reliza alguna com pra y venta de un tipo aleatorio de acciones No tiene en cuenta los obje tivos a cumplir Objetivo Este tipo de IA intenta cumplir los objetivos definidos en la carta de objetivo La principal diferencia con el jugador aleatorio es que las compras o ventas de acciones que realiza intentan seguir los objetivos 4 5 IMPLEMENTACI N REST DE BACKEND 41 4 5 marcados en su carta de objetivo eso hace que aparte de los beneficios de esas actuaciones vaya consiguiendo dinero a trav s de los objetivos cumplidos Agresivo Este tipo de IA intenta maximizar los beneficios cuando realiza acciones No tiene en cuenta las cartas de objetivo pero realiza las compras o ventas teniendo en cuenta
10. el beneficio que puede obtener B sicamente intenta plasmar el comportamiento que he observado en la mayor a de jugadores contra los que me he enfrentado Implementaci n REST de backend Para poder satisfacer el objetivo de la extensibilidad se ha implementado el backend siguiendo el est ndard REST que nos proporciona los siguientes beneficios Protocolo cliente servidor sin estado Esto hace que todos los mensajes contengan toda la informaci n necesaria y evita que tanto el cliente como el servidor tengan que almacenar el estado de las peticiones Conjunto de operaciones definidas Se utilizan los verbos de HTTP GET POST DELETE PUT Es un idioma universal que cualquier aplicaci n ya sea nativa o web puede utilizar De esta manera nos aseguramos que futuros desarrollos puedan utilizar la tecnolog a de backend que se ha implementado De esta manera se han programado las siguientes rutas dentro del servidor para poder manejar las peticiones iniciadas por el cliente web PUT login Enviar informaci n de login Se devuelve el token a incluir en el resto de peticiones a partir de ahora PUT logout Borrar el token de usuario GET me Recibir informaci n de usuario GET api users Obtener la lista de usuarios GET api users ID Obtener el usuario identificado por ID GET api games Obtener la lista de juegos GET api games ID Obtener el juego identificado por ID POST api games Crear un juego nuevo POST api games ID
11. en unas determinadas acciones y no poseer ning n t tulo de otros tipos de acciones sto hace que haya un componente especial de diversi n ya que esos objetivos son ocultos y los jugadores deciden si quieren conseguirlos o no A su vez el hecho de que haya jugadores que quieran cumplir sus objetivos hace que haya cierta actividad en el juego Im genes extraidas de 1 BoardGeekGame 1 1 SPECULATE EL JUEGO ORIGINAL 13 Figura 1 2 Cartas de objetivo A parte de los objetivos los jugadores reciben una serie de cartas de in fluencia con las cuales pueden cambiar el comportamiento del mercado Las cartas de influencia pueden subir o bajar el precio de las acciones o repartir dividendos entre todos los accionistas Al jugar una carta de objetivo se podr indirectamente beneficiar o perjudicar al resto de ju gadores Dichas cartas junto con la carta de objetivo son ocultas Crest resiricmens Restrictions de CIG Creda resr cilona Rantrictens de cab All Shares Rates Actions Gown baisse B A B Per sharo Actions Par action Find market price in Col A Take related figura in Col B Figura 1 3 Cartas de influencia Tambi n se pueden realizar compra y venta de t tulos Las posibles accio nes a realizar se pueden efectuar contra el resto de jugadores o contra el Banco Cabe decir que las acciones en las que el Banco es la contrapar te tienen cierta penalizaci n sobre el precio de la operaci
12. n Es decir si quiero vender unos t tulos de acciones que poseo y el banco es qui n me los compra lo har a un precio m s bajo que el precio de mercado 14 CAP TULO 1 INTRODUCCI N Figura 1 4 T tulos de acciones 1 2 Speculate implementaci n online C mo se ha descrito anteriormente en este cap tulo este proyecto presenta una implementaci n moderna del juego usando tecnolog as actuales Se ha im plementado una versi n del juego capaz de ser jugada online habilitando as el poder usarse en cualquier dispositivo actual como pueden ser ordenadores tablets o smartphones Se ha hecho especial nfasis sobre la escalabilidad del mismo y en la optimizaci n para poder utilizarse sobre redes m viles Se hace un an lisis m s detallado sobre el dise o del juego en el Cap tulo 4 Motivaci n y objetivos 2 1 Contexto En el 2013 se han reportado unos 2 8 billones de usuarios de internet en todo el mundo seg n 2 Internet World Stats ste ha sido uno de los motivos fundamentales para seleccionar la tecnolog a para implementar el juego b sica mente porque la escalabilidad es un factor muy a tener en cuenta Si cualquier aplicaci n de hoy en d a tiene xito seguramente se enfrentar a problemas de rendimiento debido a la cantidad de posibles usuarios Desarrollar aplicaciones escalables se ha convertido en uno de los retos co munes hoy en d a en cualquier desarrollo En la implementaci n de Speculate se han
13. seleccionado tecnolog as que se puedan escalar horizontalmente ya sea en diferentes servidores o incluso en diferentes Datacenters Sin olvidar comentar que la industria de los videojuegos es una gran industria que seguir creciendo hasta alcanzar los 100 000 millones de d lares en 2017 seg n 3 DigitalCapital 2 2 Motivaci n Los datos descritos en el apartado anterior ya son de por si una gran mo tivaci n para realizar este proyecto Pero uno de los principales factores que me ha hecho decidirme para implementar el juego de manera online ha sido por una parte la tem tica del juego y por otra la posibilidad de realizar una implementaci n moderna usando tecnolog as actuales Tem tica El mundo burs til siempre ha sido un tema que me ha apasio nado El poder programar un juego basado en esa tem tica es un evento que no era viable desperdiciar Nuevas tecnolog as La idea de poder recrear un juego de hace m s de 30 a os en un entorno moderno siempre es un reto apasionante Se pueden adaptar nuevas tecnolog as en este caso un entorno web y comunicaci n con websockets para poder intentar plasmar un juego de mesa en un entorno totalmente virtual 15 16 2 3 CAP TULO 2 MOTIVACI N Y OBJETIVOS Por otro lado gracias a esta implementaci n se puede disfrutar del juego sin necesidad de esperar a que otros jugadores quieran participar Se han implementado diversos algoritmos para dotar de inteligencia artifi
14. sometimes happen that a player is unable to obtain alt the shares he wants C 1 10 Selling If the player whose turn it is wishes to sell a certain kind s of share s he proceeds as follows 1 He offers a number of shares at the ruling market price The number and kind of shares must be stated e g Sell 7 Property or Sell 25 Transport etc 2 The player on his left has the first option to accept the offer If this player buys some but not all the shares offered the next player has the option to buy the balance and so on 3 If the offer is not taken up or only partly taken up by any or all of the players the seller has the right to sell the balance of the shares to the Bank at a price of 1 per share below the ruling market price and provided the Bank has sufficient cash The Bank can only buy that number of shares for which it has sufficient cash 4 It will sometimes happen that a player is unable to sell all the shares he wishes to During his turn a player may deal in as many types of shares as he wishes and as often as he wishes The only exceptions to this rule are in the first and last rounds C 1 11 First and last rounds In these two rounds only two types of shares may be dealt in during each player s turn C 1 12 End of the round At the end of each round i e when each player has had one turn all the Market Influence cards from the pile and the discard must be shuffled together again Cards h
15. 0 6 2 1 Horas invertidas 51 6 2 2 Coste de equipamiento 51 7 Conclusiones 53 Ap ndices 55 A Glosario 57 B Bibliograf a 59 C Manual del juego original 61 G l Manual original ii sais to ao es cd hhh e dur TA 61 C 1 1 The aim of the game 61 A 3 ase A AB 61 CU Equipment oeeie eod mes A sk aa na 62 C 1 4 Preparation 62 C 1 5 Duration of the game 63 C 1 6 Winning the game 63 Gills OBJECHIVES ee her Lire ES Gears 63 GLS Phe urn aa a a a a DR te aa nets 64 ET eo Buying Hits Len RME SR SM HIS 64 1 T0 Selling 332 3 aas N EBA Gb la ets 65 C 1 11 First and last rounds lt lt 65 C 1 12 End of the round 65 C 1 13 Share prices 66 C 1 14 Dividend payments 66 Cl beBankruptey s ada dus dut DRE a da E lande dit 66 C 2 Manual traducido al castellano 66 C 2 1 El objetivo del juego 66 02 2 Estrategia oe aes to N ABI 67 E2 32 EQUIPO sii or oe a a we 67 C 2 4 Preparaci n 67 C 2 5 Duraci n del juego 68 C 2 6 Ganar el juego 68 CDA OD JOLIVOS sane bag o a O A e eus 68 C328 EL TUTO a a a zd Eee ia Se ad 69 2 92 Compra Skoky ld NAMED SS EE Ge A 70 GZ V
16. A player Random 250 8 ns 8 ms 28 Bank 600 FA na 4 ma 24 Share prices Influence cards Objective property mining va stores 4 1 v 2 1 A a s a A Actions Select one influence card to play property va Play card Figura 4 11 Vista de juego Acci n jugar carta de influencia 4 2 ENTORNO Y PLATAFORMA 37 Detalle de compra y venta de acciones Actions Buy Sell Buy shares 1 Select Shares type 2 Choose quantity you want to buy 3 Click on Buy button Buy I don t want to buy or sell now Figura 4 12 Detalle de compra y venta de acciones 4 2 Entorno y plataforma Como ya se ha comentado uno de los problemas que hay que tener en cuenta en cualquier implementaci n web usando tecnolog as actuales es la escalabilidad Para este problema hay una gran variedad de soluciones en mi implementa ci n he optado por un m delo de 3 capas la capa de cliente con cierta l gica un servidor sin estado que contiene la mayor a de la l gica de aplicaci n y la capa de persistencia de datos En el desarrollo de todas ellas se han seleccionado tecnolog as que permitan escalar horizontalmente sin problemas 4 2 1 Cliente web Para el desarrollo del cliente web se ha optado por utilizar una SPA Sin gle Page Application Para ello se ha hecho uso de AngularJS un framework publicado por Google que ha recibido una gran aceptaci n por parte de la co munidad Es un proyecto de c digo abie
17. Implementaci n de juegos de estrategia en tablero SPECULATE Memoria del proyecto Javier Segura 13 de enero de 2015 Datos del proyecto T tulo del proyecto Implementaci n de juegos de estrategia en tablero SPECULATE Nombre del estudiante Javier Segura Mart nez Titulaci n Ingenier a Inform tica 2003 Cr ditos 37 5 Director Ponente Miguel Barcel Garcia Departamento Ingenier a de Servicios y Sistemas de Informaci n ESSI Miembros del tribunal Presidente Xavier Burgu s Illa Vocal Klaus Gerhard Langohr Secretario Miquel Barcel Garcia Calificaci n Calificaci n num rica Calificaci n descriptiva Fecha 21 de Enero de 2015 Agradecimientos Me gustar a dedicar esta memoria a mi padres A mi padre Juan por su tenacidad perseverancia y paciencia A mi madre Ana por su cari o y comprensi n Sin ellos no podr a haber llegado a ser lo que soy hoy en d a Dedicado a vosotros Indice general Introducci n 1 1 Speculate el juego original 1 2 Speculate implementaci n online Motivaci n y objetivos 2 COMGERO 15 Le a A Hire d 4 2 21 Motivaci n x i 25 V b A ok de db 23 OBJEL VOS je S dara z yb de ge 6 k Gre bb dn An lisis y especificaci n S 1 ReEGUISI OS s 4 1 40 dc ne a el b hn A def on 3 1 1 Requisitos funcionales 3 1 2 Requisitos no funcional
18. Lista de juegos Speculate Join a game You can join a game created by other players Owner Players Status 1 Lance Gutin Open 2 Elliott Mu oz Playing 3 Kevin Vigneault Open 4 Todd Moy Open 5 Jackson Fox Playing Javier Segura DISE O E IMPLEMENTACI N Login Register Create a game You can create a new game and wait for other players Create a game Speculate Based on the board game Speculate created by Graeme Levin and released by Waddingtons Games Code licensed under MIT License Figura 4 3 Wireframe 3 4 1 WIREFRAMING Y PROTOTIPO 29 Vista de un juego Speculate Javier Segura Your opponents Round 20 A Javier Segura 2500 15 ceceo 10 A Javier Segura 500 eeeo 5 L r a You A Javier Segura 500 ceceo Influence card Action specific Bank money 2000 ceceo Javier Segura Speculate Based on the board game Speculate created by Graeme Levin and released by Waddingtons Games Code licensed under MIT License Figura 4 4 Wireframe 4 4 1 1 Resultado final Para ilustrar el cambio sufrido por el wireframing a trav s de todas las iteraciones desarrolladas adjunto las im genes sacadas del dise o final del juego Pantalla de login 30 CAP TULO 4 DISE O E IMPLEMENTACI N Speculate Games English Please sign in Login Figura 4 5 Pantalla de login 4 1 WIREFRAMING Y PROTOTIPO 31 Pantalla principal Speculate This is the online implement
19. ac6f460e980e248436 2 days ago Aggressive 1 20 c Delete Resign 54b25ef5c779b55c1389cc4a 2 days ago Dummy 1 20 playing Delete Resign 54b263657cb84ecc13ba4a3a 2 days ago Random 1 20 cao Delete Resign 54b2645d06f13c0f14f8323d 2 days ago Dummy 1 20 zca Delete Resign 54b26511d47b581814e0ae94 2 days ago Dummy 1 20 playing Delete Resign 54b276c39840947a2547994d 2 days ago Dummy 1 20 playing Delete Resign 54b277d79840947a25479950 2 days ago Dummy 1 20 cm Delete Resign 54b26649b6548b341432fe3d 2 days ago Dummy 1 20 playing Delete Resign 54b266806aa2a33614309685 2 days ago Dummy 1 20 playing Delete Resign 54b26e535c18098b2191dba4 2 days ago Dummy 1 20 Ea Delete Resign Create a game You can create a new game and play against the computer Create a game Figura 4 9 Lista de juegos 4 1 WIREFRAMING Y PROTOTIPO 35 Vista de juego Acci n pagar Games Z Progress of the game 1 20 m Me 250 se AB Share prices Influence cards Objective as 8 28 IA player Random 250 se as 1 va v2 8 m8 10 as Bank 600 X a a mining property stores 4 na a4 Es ms Actions You can choose to pay 50 now to the bank or pay 100 at the end of your turn Pay 50now Pay100later Figura 4 10 Vista de juego Acci n pagar 36 CAP TULO 4 DISE O E IMPLEMENTACI N Vista de juego Acci n jugar carta de influencia l Games Progress of the game 1 20 Me 200 F8 ns 8 8 me I
20. aci n en tiempo real es un factor clave que puede llegar a decidir el xito de cualquier aplicaci n Se ha seguido esta filosof a dentro de la implementaci n de Speculate me diante el uso de la tecnolog a Websockets Tal y como lo define la Wikipedia WebSocket es una tecnolog a que proporciona un canal de comunicaci n bidirec cional y full duplex sobre un nico socket TCP Los Websockets es una tecnolog a bastante moderna que est implementada en todos los navegadores modernos 4 7 1 Uso dentro de Speculate En la implementaci n del juego se han usado los Websockets para realizar toda la comunicaci n que hay dentro de un juego El enfoque que se ha se guido ha sido bastante pr ctico he usado mensajes JSON 10 un formato de intercambio de datos bastante ligero para enviar las posibles acciones que se realizan mientras el usuario interactua con una partida Eso hace que todos los usuarios que tengan una partida abierta estar n recibiendo esos mensajes y por tanto mantengan actualizado el estado del juego A continuaci n se listan los ejemplos de mensajes que se han utilizado para la comunicaci n corresponden a todos los casos de uso posibles dentro de la partida Todos ellos tienen ciertos campos comunes necesarios para identificar el contexto de la acci n que se realiza Pagar al banco El nico par metro especial es la cantidad que se paga al banco 4 7 IMPLEMENTACI N DE LA COMUNICACI N EN TIEMPO REAL 43
21. ame details should deal cards money and shares to the players Inf luenceCards has the defined cards has the defined price cards has the defined dividend cards ObjectiveCards has the defined cards Users retrieve a user by email it s possible to list users Register register a new user should fail when registering a duplicate email should populate the creation data should not find a non existing user should update the total users count should encrypt the password Login should remove the token when a user logout 29 passing 613ms Lo que se ha intentado hacer con estos tests ha sido verificar las llamadas que tienen los modulos entre s 5 2 Tests manuales Una de las partes importantes del juego por no decir la que mayor impor tancia tiene es la inteligencia artificial de los jugadores Debido a problemas con la ejecuci n del c digo no he podido realizar tests entre jugadores controlados por el ordenador Pese a ello se han realizado par tidas contra la m quina en cada uno de los niveles En concreto se han seleccionado dos jugadores A un jugador con experiencia en el juego de mesa Speculate y B sin experiencia ninguna dando lugar a los siguientes resultados mostrados en la tabla Se han realizado un total de 40 partidas 5 por cada jugador y tipo de in teligencia El porcentaje mostrado es el ratio entre las partidas ganadas y las 5 2 TESTS MANUALES 47 partidas ju
22. an tomado a la hora de desarrollar 4 1 Wireframing y prototipo Para empezar con el dise o se han realizado unos wireframes esbozos de c mo podr a ser la interfaz visual del juego para as identificar los elementos que habr a que programar Se realizaron los siguientes wireframes 25 CAP TULO 4 DISE O E IMPLEMENTACI N Pantalla principal Speculate Login Register Speculate This is the online implementation of the board game Speculate Speculate is stock market share trading game created by Graeme Levin You influence the share price through a choice of event cards and buy or sell accordingly It was released in 1972 by Waddingtons Games Nullam quis risus eget urna mollis ornare vel eu leo Cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus mus Nullam Id dolor id nibh ultricies vehicula Cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus mus Image of speculate Javier Segura Speculate Based on the board game Speculate created by Graeme Levin and released by Waddingtons Games Code licensed under MIT License Figura 4 1 Wireframe 1 4 1 WIREFRAMING Y PROTOTIPO Login Speculate Login Register Login email ext inpl password Text inpu Javier Segura Speculate Based on the board game Speculate created by Graeme Levin and released by Waddingtons Games Code licensed under MIT License Figura 4 2 Wireframe 2 28 CAP TULO 4
23. and sell shares if he wishes as explained under the headings Buying and Selling below 4 Having concluded his transactions he ends his turn by playing one more Market Influence card As usual he immediately replenishes his hand and the Price Index is again adjusted The turn now passes to the next player C 1 9 Buying If the player whose turn it is wishes to buy a certain kind s of share s he proceeds as follows 1 He bids for a number of shares at the ruling market price The number and kind of shares must be stated e g Buy 9 Mining or Buy 2 Transport etc 2 The player to his left has the first option to accept the bid for the stated number of shares or for a smaller number If this player does not satisfy the buyer s bid in full the next player to the left has the next option to sell to the buyer the balance of the shares he wants and so on If a player does not wish to sell to the buyer he simply says No e g C 1 MANUAL ORIGINAL 65 a Bid by player Buy 9 Mining First Player Sell 5 a Second Player No a Third Player Sell 4 and so the buyer gets the 9 he wants 3 If the bid is not fully satisfied by any or all of the players the buyer has the right to purchase the balance of the shares from the Bank if they are available at a price of 1 per share above the ruling market price In this event he pays the money to the Bank 4 It will
24. ation of the board game Speculate Speculate is stock market share trading game created by Graeme Levin You influence the share price through a choice of event cards and buy or sell accordingly lt was released in 1972 by Waddingtons Games Join a game Create a game You can join a already created game You can create a new game and play against the computer List of games Create a game 2014 Javier Segura Speculate Based on the board game Speculate created by Graeme Levin and released by Waddingtons Games Code licensed under MIT License Flag icons by IconDrawer Figura 4 6 Pantalla principal 32 CAP TULO 4 DISE O E IMPLEMENTACI N Registro Register yourself Username lomain com Repeat email address r domain com Password Create an account 2014 Javier Segura Speculate Based on the board game Speculate created by Graeme Levin and released by Waddingtons Games Code licensed under MIT License Flag icons by IconDrawer Figura 4 7 Registro 4 1 WIREFRAMING Y PROTOTIPO 33 Perfil test2 Edit Profile Name test2 Email test2 test com Member since Jan 13 2015 O played games CD Change password Figura 4 8 Perfil 34 CAP TULO 4 DISE O E IMPLEMENTACI N Lista de juegos ld Created at IA type Round Status 54b250b6c7dde99f06296540 2 days ago Random 1 20 playing Delete Resign 54b251ac1c8eda730af48f5d 2 days ago Objective 1 20 playing Delete Resign 54b257
25. bjetivo coloca su tarjeta de Objetivo en la parte inferior del paquete correspondiente A continuaci n toma la carta superior del siguiente mont n de cartas de objetivo por ejemplo si permite alcanzar un objetivo de 450 coloca su carta de Objetivo en la parte inferior del mont n 450 y luego toma la carta superior del paquete de 500 El juego contin a como antes con los jugadores labran su camino hacia arri ba de objetivos de 450 hacia los de 650 aunque no alcanzar n necesariamente ese punto antes de la final de la partida Cuando se alcanza un objetivo 650 el jugador devuelve su carta de 650 a la parte inferior del mont n y luego toma otra de 650 desde la parte superior El logro de un objetivo es simplemente un acto de en una ronda que no termina dicha ronda C 2 8 El Turno Cada turno siempre consta de los siguientes pasos estrictamente en el orden indicado 1 El jugador paga 50 al Banco esto representa sus costes de negociaci n Si un jugador no puede pagar el 50 al comienzo de su turno debe pagar 100 al Banco durante el curso de su turno y antes de que juegue su ltima carta de influencia 2 Usa cualquiera de sus tarjetas de influencia en el mercado coloc ndola boca arriba en la pila de descartes De inmediato se repone la mano para que tres cartas influencia de mercado se mantengan Los marcadores de ndice de precios ahora deben ajustarse de acuerdo con las instrucciones de la carta expuesta por ejemp
26. cciones de cada uno de los 5 tipos Certificados en unidades de 1 2 y 3 Miner a Tiendas Propiedad Transporte e Ingenier a 5 ndice de Precios de Mercado en la tapa de la caja 6 5 marcadores para la tabla de Precios La caja del juego se utiliza en una forma que representa el mercado de valores general Debe ser considerado como algo m s que simplemente un Banco pero Banco es una palabra f cil de usar por lo que se utiliza en estas instrucciones C 2 4 Preparaci n 1 Nombrar a un banquero para controlar las relaciones con el Banco y otro jugador para controlar el ndice de precios 2 Vac e la bandeja de todo su contenido Separe las dos secciones de las calculadoras y doble sobre los extremos superiores de las tiras de selecci n Estas bandas se deslizan a trav s de las columnas de cifras 68 AP NDICE C MANUAL DEL JUEGO ORIGINAL 3 Coloque los cinco marcadores en el tablero ndice del mercado para mostrar un precio de 10 para cada clase de acciones 4 D a cada jugador 250 en efectivo y 8 acciones de cada tipo es decir 40 acciones en total 5 Vuelva al Banco a 300 en efectivo multiplicado por el n mero de jugadores b 2 acciones de cada tipo multiplicado por el n mero de jugadores Por ejemplo si tres est n jugando el Banco tendr 6 acciones de cada tipo y 900 en efectivo Todas las dem s acciones y billetes se deben poner a un lado no se utilizan en el juego Si 5 est n
27. cial a jugadores ficticios La implementaci n de este juego me ha servido como excusa para iniciarme en un campo de la inform tica sobre el que no tengo ninguna experiencia profesional Entornos web con Javascript tanto en el cliente como en el servidor bases de datos NOSQL comunicaci n en tiempo real mediante Websockets Todo ello usando la filosof a de c digo abierto devolviendo as a la comu nidad el conocimiento adquirido mediante el desarrollo del juego Objetivos Una vez claros los motivos que me han llevado a la ejecuci n de este proyecto ya podemos identificar los objetivos que se quieren conseguir con la ejecuci n del mismo 1 3 4 Dise ar e implementar el juego desde el dise o inicial hasta la puesta en marcha en producci n Plasmar la esencia del juego de mesa en la versi n online implementada Poder jugar contra el ordenador en la versi n online implementada Publicar el juego mediante una licencia de c digo abierto Por otro lado agu hay una lista de objetivos secundarios aungue no menos importantes del proyecto 1 2 Adquirir conocimiento de las nuevas vertientes en desarrollo web Poder ejecutar el juego en otros dispositivos diferentes al ordenador per sonal Dise ar una arquitectura escalable que pueda aguantar un crecimiento masivo de usuarios Implementar el juego en varios idiomas An lisis y especificaci n La especificaci n de un proyecto consiste en definir con cla
28. de una partida Jugador que lo crea Banco Aqu se incluye el dinero y las acciones poseidas por el banco Jugador IA Aqu se incluye el dinero y las acciones poseidas por el sistema Precio de las acciones Estado del juego los posibles valores son Abierto acabado abando nado jugando Ronda actual N mero de rondas Ganador en caso de que ya se haya acabado Mont n de cartas de influencia sin jugar Mont n de cartas de objetivo sin jugar Carta de objetivo La carta de objetivo ha de modelar los posibles ob jetivos a cumplir durante el desarrollo del juego Se ha plasmado fielmente el formato de la carta original Tipo de objetivo Son los puntos que tiene asignados la carta Los posibles valores son 450 500 550 600 y 650 Parejas de accion y dinero Est s parejas simbolizan cuanto dinero has de poseer de determinadas acciones para poder cumplir el obje tivo Carta de influencia Las cartas de influencia como las cartas de objeti vo han sido fielmente un reflejo de las cartas reales del juego Hay de dos tipos Cartas de precio de mercado son las cartas que hacen que la cotiza ci n de una acci n pueda modificarse o Acci n sobre la que realizar una modificaci n de precio o Tipo de modificaci n Subir o bajar o Cantidad a modificar Un valor de 1 a 4 Cartas de dividendo son las cartas que proporcionan ciertos benefi cios a los poseedores de t tulos de acci n Sus atributos son o Tipo de la acc
29. desea Durante su turno un jugador puede hacer frente en tantos tipos de acciones a su antojo y tantas veces como lo desee Las nicas excepciones a esta regla est n en las primeras y ltimas rondas C 2 11 Rondas primera y la ltima En estas dos rondas s lo dos tipos de acciones podr n ser negociados durante el turno de cada jugador C 2 12 Fin de la ronda Al final de cada ronda es decir cuando todos los jugadores hayan jugado su turno todas las tarjetas de influencia de mercado del mont n y el descarte debe ser barajado juntos de nuevo Las cartas poder de los jugadores son mantenidas C 2 13 Precios de las acciones Los precios no pueden subir m s de 30 o inferior a 0 La nica excepci n es cuando el precio se sit a en el 30 y se compran acciones del Banco a 31 como de costumbre 1 por encima del precio de mercado dominante Si las acciones est n de pie en 0 el Banco les regalar sin pago Si se juega una carta de Influencia de mercado que mover a el ndice m s all de los l mites de 0 y 30 la tarjeta se puede jugar pero no va a tener su efecto completo como los precios de las acciones se detienen en 0 y 30 C 2 14 El pago de dividendos Hay cinco cartas de dividendos en el mont n de cartas de influencia de mercado Estas cartas se pueden jugar en lugar de tarjetas de influencia en el mercado se consideran como las cartas de influencia de mercado Los dividen dos que los jugadores reciben depender n del
30. e a Descripci n Cualquier usuario logueado puede cambiar su contrase a Par metros de entrada contrase a antigua y actual a Salida El usuario puede loguearse usuando la nueva contrase a Listar juegos Descripci n Cualquier usuario logueado puede ver la lista de juegos del sistema Par metros de entrada Salida Lista de juegos gue est n siendo juegados en el sistema 3 2 MODELO DE CASOS DE USO 21 Borrar juego Descripci n Cualquier usuario logueado puede borrar uno de los juegos creados por l Par metros de entrada Juego a borrar Salida En el sistema ya no existe el juego borrado Abandonar juego Descripci n Cualquier usuario logueado puede abandonar uno de los juegos creados por l que no est acabado Par metros de entrada Juego a abandonar Salida El sistema reporta el juego como abandonado Ver juego Descripci n Cualquier usuario logueado puede ver el estado de un juego Par metros de entrada Juego a visualizar Salida El sistema muestra los datos del juego seleccionado stos inclu yen precio actual de las acciones cantidad de acciones poseidas por los juegadores dinero poseido por los jugadores cartas de influencia y obje tivo del jugador Jugar turno Descripci n Cualquier jugador puede realizar acciones en un juego Par metros de entrada Acci n a realizar descritas en los siguientes casos de uso Salida Si la acci n ha sido correc
31. e proyectos de otros profesores Despu s de varios a os teniendo el proyecto de final de carrera pendiente las ofertas propuestas por Miquel son uno de los factores que me ha llevado a realizarlo Gracias Miquel 53 54 CAP TULO 7 CONCLUSIONES Ap ndices 55 Glosario datacenter Centros de procesamiento de datos 13 git Control de versiones Git 70 NoSQL Bases de datoos no relacionales 14 REST Transferencia de Estado Representacional 39 SPA Single Page Application 35 Websockets Comunicaciones en tiempo real y en ambos sentidos mediante un solo canal TCP 14 40 97 58 Glosario DD IN B 11 12 13 14 15 16 17 18 Bibliograf a Speculate in boardgeekgame http boardgamegeek com boardgame 2104 speculate Febrero 2014 Internet usage statistics http www internetworldstats com stats htm Enero 2015 D Capital La industria del videojuego valdr m s de 100 000 millones de d lares en 2017 http goo gl 1PFUbK Enero 2014 Gravatar a global recognized avatar https en gravatar com 2014 Lo Dash http lodash com Enero 2015 Bootstrap http getbootstrap com Enero 2015 Grunt The javascript task runner http gruntjs com Enero 2015 Mongoose library http mongoosejs com Enero 2015 Json web token http jwt io 2014 Json http json org 2014 J Cravens and T Q Brady B
32. e ha de realizar el trabajo es un Analista un Programador o un Jefe de proyecto Para poder calcular los costes se han definido los siguientes precios por hora de cada uno de los cargos Cargo Precio por hora Jefe de proyecto 61 Analista 45 Programador 35 C lculo del coste total de los roles involucrados Cargo Horas Total Jefe de proyecto 175h 10675 Analista 250h 11250 Programador 306h 10710 Coste total 32635 El coste total en personal en el proyecto es de 32635 6 2 2 Coste de equipamiento En la siguiente tabla se puede ver un desglose de todos las herramientas o servicios externos que se han necesitado para la ejecuci n del proyecto Concepto Precio mensual Meses Precio Servidor Mongodb 12 6 72 Servidor Nodejs 28 6 168 Cuenta privada GitHub repositorio c digo 6 6 36 Subscripci n egghead io tutorial angularjs 14 6 84 Alquiler oficina en espacio compartido 250 6 1500 Ordenador personal 1200 1200 Material oficina 15 6 90 Juego de mesa original 35 35 Total 3185 92 CAP TULO 6 PLANIFICACI N Y ESTUDIO ECON MICO Conclusiones El objetivo del proyecto era crear un juego multijugador bas ndose en un juego de mesa publicado en el a o 1970 Aunque el objetivo no se ha cumplido debido a como se ha hecho la comunicaci n de los jugadores con el servidor adaptarlo a multijugador se
33. eld by the players are retained by them 66 AP NDICE C MANUAL DEL JUEGO ORIGINAL C 1 13 Share prices Prices cannot go higher than 30 or lower than 0 The only exception is when the price stands at 30 and shares are bought from the Bank at 31 as usual 1 above the ruling market price If shares are standing at 0 the Bank will give them away without payment If a Market Influence card is played that would move the Index beyond the limits of 0 and 30 the card can be played but it will not have its full effect as the share prices stop at 0 and 30 C 1 14 Dividend payments There are five Dividend cards in the Market Influence pack These cards can be played instead of Market Influence cards for the purposes of the rules they are regarded as Market Influence cards The dividends the players receive will depend on the current market price of the shares When a Dividend card is played all the players who hold shares of that particular type are eligible for payment They all disclose their holdings and receive payment from the Bank as follows number of shares held X the appropriate dividend as given on the Dividend card For example a Mining dividend is declared the market price is 14 and a player holds 6 shares The dividend card shows that the holder of shares whose market price is 13 20 receives 3 for each share so he receives 6 x3 18 If the Bank has insufficient cash to pay the dividend to all the players holding shares
34. enta 2 6 388 ad ARA A 70 C 2 11 Rondas primera y la ltima 71 C 2 12 Fin de la r nda 24 2222 4 ke ee ale a a o i 71 C 2 13 Precios de las acciones 71 C 2 14 El pago de dividendos 71 2 15 Bancarrota ti A LME NA A 72 D C digo abierto 73 I SSE PTE ATO F x44 Be SE OGG Dee ha fan A a ia a a ede ee ER 3 73 D 2 Codigo fiente z saira od ae eee de house we we A 73 D 2 1 C mo obtener y ejecutar el c digo 74 10 Introducci n Este proyecto de final de carrera presenta el an lisis el dise o y la implemen taci n de Speculate un juego de mesa por turnos creado en 1972 por Graeme Levin usando tecnolog as actuales A continuaci n describir en detalle el juego original y su implementaci n online 1 1 Speculate el juego original Speculate es un juego sobre el mercado de valores El objetivo principal es conseguir ser el jugador m s rico al final de todos los turnos de la partida Para sto se suman tanto el valor de las acciones en posesi n como la cantidad de dinero en efectivo que posean los jugadores 11 12 CAP TULO 1 INTRODUCCI N Figura 1 1 Juego original Hay determinados factores que caracterizan al juego Aqu presento una lista de elementos del juego con sus respectivas im genes Al principio del juego cada jugador obtiene un objetivo oculto dicho ob jetivo consiste en poseer cierta cantidad de dinero
35. es 3 2 Modelo de casos de uso 3 2 1 Listado de casos de uso 3 3 Mapa conceptual de los datos Dise o e implementaci n 4 1 Wireframing y prototipo 4 1 1 Resultado final 4 2 Entorno y plataforma 42 1 Cliente webs 42 4 zar ba ea ele ee 4 3 A22 ASELVIdOT sad lo budek RS 42 3 Capa de dal08 Liria a lt td a 4 2 4 Librer as utilizadas lt lt 42 5 Frotitend 3 A Fok E ERE AE DO ut 4026 Backend osteg 4 msn t Ghee 2 a Bee wea pts 4 3 Estados de un juego 4 4 Implementaci n de la1A 4 5 Implementaci n REST de backend lt 4 6 Autenticaci n de los clientes 11 11 14 15 15 15 16 17 17 17 18 18 19 22 4 7 Implementaci n de la comunicaci n en tiempo real 42 4 7 1 Uso dentro de Speculate 42 5 Pruebas 45 Dili Pests unitarios a gn 2 4 a a U be BR pop kov o ge 45 D25 Tests manuales 2 wage AD Da 46 6 Planificaci n y estudio econ mico 49 6 1 Planificaci n cri Ae mu menus ee ke dun melon 49 6 11 Estimaci n lt ke db ada dy 49 6 1 2 Realid d 2 452 aa sa bod DERA 50 6 1 3 Desviaci n de la planificaci n inicial 50 6 2 An lisis econ mico 5
36. fort T day T 1mo T 2mo T 3mo T 4mo 1 Estudio juego Speculate 2w GED Javier Segura 2 Analisis general 2d Javier Segura requisitos 3 Evaluaci n tecnolog as 1w 1d 2h oe Javier Segura e 4 Preparaci n entorno de 3d 6h Javier Segura trabajo 5 Prototipo wireframing lw GD Javier Segura 6 Backend 2w 1d 2h a Javier Segura e 7 Frontend 3w 3d 6h Javier Segura 8 Ul 1w 3d 6h Cm Javier Segura 9 Testing 2w UD Javier Segura 10 Redacci n memoria 1w 4d 3h gt Javier Segura Figura 6 1 Planificaci n El desglose de las horas planificadas por tareas es el siguiente 49 50 CAP TULO 6 PLANIFICACI N Y ESTUDIO ECON MICO Tarea Horas planificadas Estudio del juego SPECULATE 80h An lisis general de reguisitos 16h Evaluaci n de tecnolog as 50h Preparaci n del entorno de trabajo 30h Prototipo amp wireframing 40h Backend 90h Frontend 150h UI 70h Testing 80h Redacci n de la memoria 75h Total 681h 6 1 2 Realidad Despu s de haber acabado el desarrollo del proyecto he descubierto que la es timaci n y la realidad no concuerdan Aqu se muestra la diferencia entre ambas 6 1 3 6 Tarea Horas planificadas Horas invertidas Estudio del juego SPECULATE 80h 45h An lisis general de reguisitos 16h 16h Evaluaci n de tecnolog as 50h 61h Preparaci n del entorno de trabajo 30h 35h Prototipo amp wireframing 40h 74h Backend 90h 112h Frontend 150h 132h UI 70h
37. ftware sin restricci n incluyendo sin limitaci n los derechos de usar copiar modificar fusionar publicar distribuir sublicenciar y o vender co pias de este Software y para permitir a las personas a las que se les proporcione el Software a hacer lo mismo sujeto a las siguientes condiciones El aviso de copyright anterior y este aviso de permiso se incluir n en todas las copias o partes sustanciales del Software EL SOFTWARE SE PROPORCIONA TAL CUAL SIN GA RANT A DE NING N TIPO EXPRESA O IMPL CITA INCLU YENDO PERO NO LIMITADO A GARANT AS DE COMERCIA LIZACI N IDONEIDAD PARA UN PROP SITO PARTICULAR Y NO INFRACCI N EN NING N CASO LOS AUTORES O TITULARES DEL COPYRIGHT SER N RESPONSABLES DE NINGUNA RECLAMACI N DA OS U OTRAS RESPONSABL LIDADES YA SEA EN UN LITIGIO AGRAVIO O DE OTRO MODO QUE SURJA DE O EN CONEXI N CON EL SOFTWA RE O EL USO U OTRO TIPO DE ACCIONES EN EL SOFTWA RE D 2 C digo fuente El c digo fuente puede ser consultado por cualquiera gracias a la licencia antes mencionada Est disponible en la plataforma 15 Github y podr ser 73 74 AP NDICE D C DIGO ABIERTO descargado y ejecutado sin tener que avisar al autor una vez presentado ante el tribunal de la Universidad D 2 1 C mo obtener y ejecutar el c digo Para obtener el c digo hay que usar Git Para poder ejecutar el software tenemos que tener los siguientes paquetes instalados en el sistema 1 Mongo 17 ejecut
38. gadas Dummy Aleatorio Agresivo Objetivo A 80 80 60 40 B 100 100 80 80 De los datos se pueden extraer las siguientes conclusiones 1 La dificultad del juego cuando ya se est familiarizado con l es baja Se tendr a que mejorar sobre ese punto 2 El que un jugador no haga nada o realice acciones aleatorias no difiere demasiado En ambos casos el jugador est muy por encima de l 3 Una posible IA ser a una mezcla entre la consecuci n de objetivos y la consecuci n de beneficios inmediatos Ya que est visto que si se olvida cualquier de los dos factores no se consigue un rendimiento ptimo 48 CAP TULO 5 PRUEBAS Planificaci n y estudio econ mico En este cap tulo se har un an lisis de la planificaci n temporal del proyec to Se analizaran las diferentes etapas principales del desarrollo del proyecto haciendo una comparativa entre el tiempo estimado y el tiempo real dedicado para la ejecuci n de la implementaci n Tambi n se analizar el coste econ mico del proyecto tanto en recursos humanos como en herramientas utilizadas 6 1 Planificaci n 6 1 1 Estimaci n Aqu presento una planificaci n temporal de la realizaci n de este proyecto Se ha desglosado en varias etapas todas consecutivas ya que la realizaci n s lo ha contando con una persona aunque haya ejercido diversos roles dentro del proyecto Se estima que la duraci n del proyecto es de 681h E Title Ef
39. hieved his objective places his Objective card at the bottom of the relevant pack He then takes the top card from the next higher pack of Objective cards e g if he achieves a 450 objective he places his old Objective card at the bottom of the 450 pack and then takes the top card from the 500 pack The game continues as before with players working their way upwards from 450 objectives towards the 650 objectives though they will not necessa rily reach that point before the end of the game When a 650 objective is achieved the player returns his first 650 card to the bottom of the pack and then takes another 650 from the top The achieving of an objective is simply one incident in a round it does not end a round C 1 8 The turn Each turn always consists of the following steps strictly in the order given 1 The player pays 50 to the Bank this represents his trading costs If a player is unable to pay 50 at the start of his turn he must pay 100 to the Bank during the course of his turn and before he plays his last Market influence card 2 He plays any one of his Market Influence cards by placing it face up on the discard pile He immediately replenishes his hand so that three Market Influence cards are held The price Index markers must now be adjusted according to the instruc tions on the exposed card e g if the card says Stores up 2 the Stores column marker must be moved two lines up 3 He may now buy
40. i n sobre la cual se repartir n dividendos Turno Contiene todas las posibles acciones a realizar durante un turno En la etapa de dise o se mostrar un diagrama de la transici n de estados de un turno Sus atributos principales son 24 CAP TULO 3 AN LISIS Y ESPECIFICACI N o Cantidad pagada al banco o Cartas de influencia usadas por el jugador o Carta de objetivo si se ha usado una o rdenes de compra con sus respuestas o rdenes de venta con sus respuestas A falta de a adir los atributos espec ficos de la implementaci n una posible representaci n de los modelos ser a la siguiente Game Turn owner paid created_at influenceCards status objectiveCards player buyOrders bank sellOrders iaPlayer sharePrices rounds current round turns InfluenceCard ObjectiveCard type requisites share amount Figura 3 2 Mapa de modelos conceptuales Cabe destacar que se ha usado la tecnologia NoSQL y por tanto no se han establecido las relaciones entre los modelos EL diseno final de la implemen taci n no es exactamente el mostrado en el diagrama pero a pesar de ello se ha mostrado una conceptualizaci n b sica para ayudar al lector a plasmar mentalmente lo que se ha querido implementar Dise o e implementaci n En este cap tulo se har especial nfasis en el dise o y la implementaci n del juego en su versi n online Se dar especial importancia a todas las decisiones que se h
41. if three are playing the Bank will have 6 shares of each type and 900 in cash All other Shares and banknotes must be put on one side they are not used in the game If 5 are playing all the Shares and banknotes will of course be used C 1 MANUAL ORIGINAL 63 6 Separate the Objective cards into the five different values Shuffle each set and place them face down in ascending order in the tray Deal one 450 Objective card to each player 7 Shuffle the Market Influence cards Deal three to each player and place the remainder face down in the tray Players must not be able to see one another s cards The player to the left of the dealer begins C 1 5 Duration of the game The game is played in a series of rounds A round is completed when each player has had one turn turns can be quite lengthy To complete a game with 2 players play 20 rounds with 3 16 and with 4 12 Keep a note of the number of rounds played C 1 6 Winning the game At the end of the last round after the last Market Influence card has been played the player with the highest total of assets in cash and in shares at the final market prices is the winner C 1 7 Objectives Each player begins with a 450 Objective card The figures given on the card represent the minimum value for each type of share that the player must hold to achieve his objective Only three types of shares are given and the player must not hold any shares of the o
42. jugando por supuesto se utilizar n todas las acciones y billetes 6 Separar las tarjetas objetivo de los cinco valores diferentes Baraje cada set y col quelas boca abajo en orden ascendente en la bandeja Otorgue una tarjeta de 450 Objetivo a cada jugador 7 Baraje las cartas de influencia de mercado Otorgue tres a cada jugador y coloque el resto hacia abajo en la bandeja Los jugadores no deben ser capaces de ver una tarjeta de otra persona El jugador a la izquierda del repartidor comienza C 2 5 Duraci n del juego El juego se desarrolla en una serie de rondas Se completa una ronda cuando cada jugador ha tenido un turno los turnos pueden ser bastante largo Para completar un juego con 2 jugadores jugar 20 rondas con 3 16 y con 4 12 Tome nota del n mero de rondas jugadas C 2 6 Ganar el juego Al final de la ltima ronda despu s de la tarjeta de Influencia de mercado se ha jugado El jugador con el mayor total de activos en efectivo y en acciones al final del juego es el ganador C 2 7 Objetivos Cada jugador comienza con una tarjeta de Objetivo de 450 Las cifras que figuran en la tarjeta representan el valor m nimo para cada tipo de acci n que el jugador tiene que tener para lograr su objetivo S lo se dan tres tipos de acciones y el jugador no debe contener las acciones de los otros dos tipos para lograr el objetivo Esto no significa por supuesto que el jugador no pueda comprar cualquier
43. l 9 que quiere Si la oferta no est completa con cualquiera o todos los jugadores el comprador tiene el derecho de comprar el resto de las acciones del Banco si est n disponibles a un precio de 1 por acci n por encima del precio de mercado dominante En este caso se paga el dinero al Banco A veces sucede que un jugador no puede obtener todas las acciones que quiere C 2 10 Venta Si el jugador que tiene el turno desea vender un tipo determinado s de accion es se procede de la siguiente manera 1 El ofrece una serie de acciones al precio de mercado El n mero y tipo de acciones deben indicarse por ejemplo Vender 7 Propiedad o vender 25 Transporte etc El jugador a su izquierda tiene la primera opci n de aceptar la oferta Si este jugador compra algunas pero no todas las acciones ofrecidas el siguiente jugador tiene la opci n de comprar el equilibrio y as sucesiva mente C 2 MANUAL TRADUCIDO AL CASTELLANO 71 3 Si la oferta no es aceptada o s lo en parte ocupado por cualquiera o todos los jugadores el vendedor tiene el derecho de vender el resto de las acciones al Banco a un precio de 1 por acci n por debajo del precio de mercado dominante y siempre que el Banco cuente con suficiente dinero en efectivo El Banco s lo puede comprar ese n mero de acciones para las que tenga suficiente dinero en efectivo 4 A veces sucede que un jugador no puede vender todas las acciones que l
44. ll be times when players will have the excitement of seeing their plans bring substantial gains but if the market does not run their way they will find an equally exciting and challenging situation as they struggle to hold their portfolios together and avoid the slide into bankruptcy C 1 2 Strategy Players should be aware that they themselves can radically affect the market producing bull or bear conditions There will inevitably be periods of market depression as well as times when it is bouyant Some players are tempted after they have completed their trading always to depress the market if they can in order to lower the value of their opponents holdings This is at times a perfectly proper strategy to adopt but it is never wise to make an absolute habit of it Some players may be tempted to wait until shares have fallen to very low levels before making their bids in the hope of buying cheaply They should be aware that in this situation other players will be unwilling to sell and the market is likely to become increasingly stagnant 61 62 AP NDICE C MANUAL DEL JUEGO ORIGINAL During the game players are given objectives of portfolios of certain shares to achieve When they succeed in reaching their objectives players gain a useful cash bonus However players should not concentrate on achieving their objectives to such an extent that they fail to take advantage of the many trading opportunities that will present themsel
45. lo si la tarjeta dice Tiendas suben 2 el marcador de columna de Tiendas debe mover dos l neas arriba 3 Ahora puede comprar y vender acciones si lo desea como se explica en los cap tulos Compraz Venta 70 AP NDICE C MANUAL DEL JUEGO ORIGINAL 4 Tras concluir sus operaciones se debe jugar una carta influencia de mer cado Como de costumbre inmediatamente vuelve a llenar su mano y el ndice de precios se ajustar de nuevo El turno ahora pasa al siguiente jugador C 2 9 Compra Si el jugador que tiene el turno desea comprar un determinado tipo de accion es se procede de la siguiente manera 1 Pide un n mero de acciones a precio de mercado dominante El n mero y tipo de acciones deben indicarse por ejemplo Comprar 9 Miner a o Comprar 2 Transporte etc El jugador a su izquierda tiene la primera opci n de aceptar la compra por el n mero indicado de acciones o por un n mero m s peque o Si este jugador no satisface la oferta del comprador en su totalidad el siguiente jugador a la izquierda tiene la siguiente opci n de vender al comprador el balance de las acciones que quiere y as sucesivamente Si un jugador no desea vender al comprador que simplemente dice No por ejemplo Haga una oferta por el jugador Comprar 9 Miner a Primer jugador Vender 5 Segundo Jugador No Tercer Jugador Vender 4 Por lo que el comprador recibe e
46. ndose en localhost 2 Node js 18 instalado en el sistema 3 Grunt 7 instalado en el sistema Se puede obtener y ejecutar siguiendo el siguiente proceso en cualquier ter minal Unix git clone git github com jsegura speculate git cd speculate npm install scripts repopulate db grunt serve lt P BEL Siguiendo los pasos tendremos disponible en http localhost 3000 un servi dor de speculate corriendo y listo para funcionar con usuarios ya cargados
47. or y la capa web Al final la elecci n se ha decantado por MongoDB por los siguientes factores Escalabilidad Rapidez Robustez Facilidad de uso 4 2 4 Librer as utilizadas Aqu listo las librer as m s importantes que se han utilizado para poder llevar a cabo la implemtaci n de Speculate 4 2 5 Frontend Lo dash 5 es una librer a que proporciona una gran cantidad de funciones para trabajar con programaci n funcional las cuales son compatibles con todos los int rpretes de Javascript navegadores y Nodejs La elecci n de sta frente a Underscore ha sido debida a que su tama o es mucho menor y requiere menos dependencias Se ha utilizado tanto en backend como en frontend ya que como se ha mencionado anteriormente ambas partes se han desarrollado con Javascript Bootstrap 6 es un framework de frontend que proporciona una base de hojas de estilo CSS para proyectos web Tambi n provee componentes ya dise ados que ayudan a mejorar el estilo La elecci n ha sido debida a la falta de conocimientos en dise o y a su f cil aprendizaje Grunt 7 es un gestor de tareas en Javascript parecido a la herramienta make de GNU Ha sido utilizada para la compilaci n y ejecuci n de los ficheros servidos por backend Se han configurado las siguientes tareas e serve Lanza el servidor de backend en modo desarrollo Dicho modo relanza el servidor ante cualquier cambio en los ficheros cosa que nos facilita y agilita el desarrollo
48. precio actual de las acciones del mercado Cuando se juega una carta de dividendos todos los jugadores que po sean acciones de ese tipo particular son elegibles para el pago Todos ellos dan a conocer sus tenencias y reciben el pago por parte del Banco de la siguiente manera N mero de acciones X dividendo apropiado especificado en la tarjeta de dividendos Por ejemplo si se juega una carta de dividendo de Miner a y el precio de mercado es de 14 y un jugador tiene 6 acciones La tarjeta de dividendo acredita que el titular de las acciones cuyo mercado precio es 13 a 20 recibe 3 por cada acci n por lo que recibe 6 x 3 18 Si el Banco no tiene efectivo suficiente para pagar el dividendo a todos los jugadores que posean acciones no se paga ning n dividendo 72 AP NDICE C MANUAL DEL JUEGO ORIGINAL C 2 15 Bancarrota Un jugador que no puede cumplir con sus deudas en su totalidad est fuera del juego Las cartas que posee se deben devolver a los montones apropiados C digo abierto D 1 Licencia El proyecto se ha llevado a cabo siguiendo la licencia 14 MIT Es una licen cia de software libre permisiva y ha sido empleada por el Instituto Tecnol gico de Massachusetts a lo largo de su historia Copyright c 2014 Javier Segura Se concede permiso por la presente de forma gratuita a cualquier persona que obtenga una copia de este software y de los archivos de documentaci n asociados el Software para utilizar el So
49. r a un trabajo f cilmente realizable en 3 semanas Los motivos que han hecho que no se cumpla han sido Falta de conocimiento de las aplicaci n Single Page y el aprendizaje del framework utilizado Falta de conocimiento en la gesti n de bases de datos en Mongodb Poca experiencia en el dise o de p ginas web adaptables a varios navega dores Esto puede ser una base para futuros proyectos y me gustar a hacer algunas sugerencias sobre cosas que mi implementaci n de Speculate puede mejorar Mejor feedback al jugador Actualmente el feedback retornado al jugador no es todo lo preciso que cabe esperar de un juego online Historial del juego para poder recrear las partidas Se puede crear un histo rial de acciones realizadas las cuales puedan ser ejecutadas peri dicamente para que un usuario pueda visualizar partidas antiguas sto junto a un buen feedback gr fico podr a usarse como herramienta de aprendizaje para posibles nuevos jugadores Aprendizaje autom tico en la IA Actualmente las IA programadas no tienen aprendizaje sobre las acciones gue realizan Una posible mejora del proyecto ser a a adir un motor de aprendizaje para poder jugar contra jugadores controlados por la m quina que cada vez sean m s dif ciles Infraestructura replicada geogr ficamente Tambi n me gustar a felicitar a Miquel Barcel por sus propuestas de pro yectos son temas bastante m s atrayentes que la mayor a de propuestas d
50. r compra venta Descripci n Cualquier jugador puede responder a una compra o venta iniciada por otro jugador Par metros de entrada Cantidad de acciones a comprar o vender a Salida El jugador ver una modificaci n en su cantidad de acciones y dinero Crear juego seleccionar IA Descripci n Cualquier usuario logueado puede crear un juego El sis tema le mostrar los tipos de IA disponibles junto a su dificultad y una breve descripci n Par metros de entrada Tipo de IA contra la que se quiere enfrentar a Salida Un nuevo juego aparece en la lista de juegos 3 3 Mapa conceptual de los datos Para poder modelizar lo datos de un juego primero hay que identificar cuales son los elementos involucrados en el mismo Para ello a continucaci n hay una lista de los elementos mencionados junto una breve explicaci n de cuales son sus funciones dentro del sistema Jugador El jugador es cualquier usuario que se registre en la p gina web Para poder modelizar este elemento necesitar los siguientes atributos e Nombre e Email 3 3 MAPA CONCEPTUAL DE LOS DATOS 23 Contrase a Estad sticas del jugador Cabe destacar que para la imagen de perfil se ha usado el servicio externo Gravatar 4 y por tanto no se necesita ning n atributo ya que con el email del usuario se puede obtener su foto de perfil Juego El juego es el elemento con m s importancia dentro de la imple mentaci n Contiene toda la informaci n
51. ridad cuales son las partes esenciales que se van a desarrollar y sobre todo qu funcionalidad van a ofrecer Para cumplir este prop sito he divido la especificaci n en 3 bloques fundamen tales 1 An lisis de requisitos 2 Casos de uso 3 Modelo conceptual de los datos 3 1 Requisitos Los requisitos en el mbito del desarrollo de software se pueden dividir en dos grandes bloques funcionales y no funcionales A continuaci n vamos a listar todos los requisitos con una breve explicaci n de la importancia de los mismos 3 1 1 Requisitos funcionales Los requisitos funcionales son aquellos que tratan sobre el comportamiento del sistema evaluando qu comportamiento se espera salida a partir de una interacci n del actor entrada A partir de estos requisitos se definir n los casos de uso del sistema 1 Los jugadores han de poder registrarse en el juego 2 Los jugadores han de poder loguearse en el sistema 3 Los jugadores han de poder crear partidas seleccionando entre diferentes tipos de Inteligencia Artifical 4 Los jugadores han de poder borrar partidas 5 Dada una partida el jugador puede ejecutar las acciones b sicas que el juego real le permite 17 18 CAP TULO 3 AN LISIS Y ESPECIFICACI N a b Pagar al banco Jugar una carta de influencia c Jugar una carta de objetivo d Empezar una compra venta de acciones e Responder a una compra venta de acciones de otros jugadores 3 1
52. rto realizado en Javascript que contiene un conjunto de librer as tiles para el desarrollo de aplicaciones web y propone una serie de patrones de dise o para llevarlas a cabo En pocas palabras es lo que se conoce como un framework para el desarrollo en este caso sobre el lenguaje Javascript con programaci n del lado del cliente El framework usa el paradigma MVC Modelo Vista y Controlador cuyos componentes principales son los siguientes Vistas Ser el HTML y todo lo que represente datos o informaci n Controladores Se encargar n de la l gica de la aplicaci n y sobre todo de las llamadas Factor a y Servicios para mover datos contra servidores o memoria local en HTML5 Modelo de la vista 38 CAP TULO 4 DISE O E IMPLEMENTACI N Modelo En Angular el Modelo es algo m s de aquello que se entiende habitualmente cuando te hablan del MVC tradicional osea las vistas son algo m s que el modelo de datos En modo de ejemplo en aplicaciones de negocio donde tienes que manejar la contabilidad de una empresa el modelo ser an los movimientos contables Pero en una pantalla concreta de tu aplicaci n es posible que tengas que ver otras cosas adem s del movimiento contable como el nombre de los usuarios los permisos que tienen si pueden ver los datos editarlos etc Toda esa informaci n que es til para el programador pero que no forma parte del modelo del negocio es a lo que llamamos el Scope
53. s que sea boyante Algunos jugadores son tentados despu s de que tengan comple tas sus Operaciones a deprimir el mercado si pueden con el fin de reducir el valor de las participaciones de sus oponentes Esto es a veces una estrategia perfectamente adecuada para adoptar pero siempre es prudente no hacer un mal uso Algunos jugadores pueden tener la tentaci n de esperar a que las acciones hayan ca do a niveles muy bajos antes de hacer sus ofertas con la esperanza de comprar barato Deben ser conscientes de que en esta situaci n los otros juga dores no estar n dispuestos a vender y el mercado es probable que se convierta cada vez m s estancado Durante el juego los jugadores se les da objetivos de determinadas accio nes para lograr Cuando tienen xito en alcanzar sus objetivos los jugadores ganan un bono en efectivo Sin embargo los jugadores no deben concentrarse en el logro de sus objetivos hasta el punto de que no toman ventaja de las muchas oportunidades comerciales que se presentar n durante el curso del juego Bien puede haber ocasiones en las que tendr que pagar abandonando temporalmente el esfuerzo para lograr el objetivo C 2 3 Equipo 1 2 750 en billetes de banco este total se establece deliberadamente con el fin de mantener el dinero 2 Paquete de tarjetas de influencia de mercado incluyendo las tarjetas 5 de dividendos 3 Tarjetas Objetivo 10 de cada uno de 5 valores diferentes 4 50 Las a
54. ta el jugador ver el juego actualizado En caso contrario se le mostrar un mensaje de error Jugar carta de influencia Descripci n Cualquier jugador puede jugar una carta de influencia cuan do sea requerido por el sistema Par metros de entrada Carta de influencia a jugar Salida Los titulos de accion han sido modificados reflejando el compor tamiento descrito por la carta de influencia Jugar carta de objetivo Descripci n Cualquier jugador puede jugar una carta de objetivo cuan do sea requerido por el sistema Par metros de entrada Carta objetivo Salida Si se han cumplido los objetivos el jugador ver como su dinero se ve incrementado y recibir una nueva carta de objetivo 22 CAP TULO 3 AN LISIS Y ESPECIFICACI N Pagar banco Descripci n Cualquier jugador puede pagar al banco cuando sea reque rido por el sistema s Par metros de entrada Cantidad a pagar 50 o 100 a Salida El jugador ver una transacci n monetaria reflejada como negativa en su cuenta y como positiva en la cuenta del banco Iniciar compra venta Descripci n Cualquier jugador puede iniciar una compra o venta cuando sea requerido por el sistema Par metros de entrada Cantidad de acciones y tipo de acciones Salida El jugador ver como el otro jugador o el banco le compran o venden la cantidad de acciones seleccionada En caso de que no haya nadie interesado no habr reflejada ninguna transacci n Responde
55. test unitarios y tests manuales 5 1 Tests unitarios Los tests unitarios son aquellos que comprueban el funcionamiento de un componente aislado en el sistema En Speculate se han realizado tests en Backend que cubren tanto el modelo Jugador como el modelo juego Cabe decir que no han sido todo lo extensos que me gustar a pero eso ha sido debido a la falta de tiempo Se ha usado la librer a Mocha js que nos proporciona la integraci n que necesitamos Se ha configurado el sistema de puesta en marcha en producci n para que se ejecuten los tests antes de poder subir cualquier nueva versi n Eso nos proporciona la seguridad de que no introducimos ning n nuevo error en el c digo antiguo Para ilustrar al lector se ha printado una de la salida de los tests realizados Authorization POST logout 401 1 883 ms 24 logout requires token GET api games 401 0 872 ms 24 api games requires token GET register 404 0 916 ms 21 register doesn t require token GET login 404 1 046 ms 18 login doesn t require token Games retrieve a game by owner retrieve a game by id it s possible to list games Creating a game 45 46 CAP TULO 5 PRUEBAS should create a new game with valid fields should update the total game count Joining a game should update the players game count should fail if the game is not accepting players starting a game should be ok if there is enough players update the g
56. ther two types when he claims his objective has been achieved This does not of course prevent the player from buying or selling any type of shares to make a profit at any stage of the game The value of the shares held is determined by multiplying the number of shares held by the ruling market price e g 9 Mining at 12 each are worth 108 A player can only achieve his objective after he has played the second Market Influence card of his turn and after the Index prices have been adjusted ac cordingly but before the next player begins his turn This is the only time an objective can be achieved On achieving his objective the player declares his hand which is then checked by the other players If they are satisfied that his objective has been achieved they each pay him 25 and the Bank pays him 125 If there is insufficient money in the Bank the player must take the balance in any shares of his choice held by the Bank The total value in cash and shares must not exceed 125 If necessary a small balance of cash may be left in the Bank If any player cannot pay his 25 he must hand over shares to the value of 50 to the one who has achieved his objective Such shares may be selected by the player achieving his objective after inspecting the shares held by the defaulting player 64 AP NDICE C MANUAL DEL JUEGO ORIGINAL If shares are standing at 0 these may not be claimed When all payments in cash or shares have been made the one who ac
57. tipo de acciones para obtener un beneficio en cualquier etapa del juego El valor de las acciones en poder se determina multiplicando el n mero de acciones pose das por el precio de mercado dominante por ejemplo 9 acciones de Miner a a 12 cada uno valen 108 C 2 MANUAL TRADUCIDO AL CASTELLANO 69 Un jugador s lo puede alcanzar su objetivo despu s de que haya jugado la segunda tarjeta de influencia de mercado de su turno y despu s de que los precios se han ajustado pero antes de que el siguiente jugador comience su turno Esta es la nica vez que un objetivo puede ser alcanzado En la consecuci n de su objetivo el jugador ense a su carta que luego se comprobar por los otros jugadores Si est n satisfechos de que su objetivo se haya logrado que cada uno le pagan 25 y el Banco le paga 125 Si no hay dinero suficiente en el banco el jugador debe tomar acciones cuyo valor sea el mismo del Banco El valor total en efectivo y acciones no debe superar los 125 Si es necesario un peque o saldo de efectivo se puede dejar en el Banco Si alg n jugador no puede pagar su 25 debe entregar acciones al valor de 50 para el que ha logrado su objetivo Tales acciones pueden ser seleccionados por el jugador lograr su objetivo despu s de inspeccionar las acciones en poder del jugador de impago Si las acciones se est n colocando a O estos no pueden ser reclamados Una vez realizados todos los pagos en efectivo o en acciones el que logr su o
58. uiente gr fico Como comentario he de decir que no es un diagrama de casos de uso t pico donde se pueden ver todas las acciones a realizar En este caso he querido plasmar gr ficamente los casos de uso y un tipo de modelo de estados en el mismo gr fico donde se pueden ver qu otros casos de uso son aplicables al estado que obtenemos de cada ejecuci n La decisi n de usar este tipo de gr fico ha sido una decisi n pr ctica ya que considero que realizar muchos gr ficos cuando toda la informaci n puede plasmarse en un solo gr fico es contraproducente De esta manera podemos hacernos una idea del comportamiento de la aplicaci n en un solo vistazo 3 2 MODELO DE CASOS DE USO 19 Registrar Modificar perfil Cambiar contrase a Jugar carta g influencia Borrar juego Jugador Listar juegos Iniciar compra venta a Ver juego Loguear Abandonar juego Pagar banco Crear juego nuevo gt Jugar Seleccionar objetivo IA Cambiar idioma Figura 3 1 Casos de uso y estado de la aplicaci n 3 2 1 Listado de casos de uso A continucaci n se listan los casos de uso identificados en el an lisis expli cados incluyendo cuales son los datos de entrada y el comportamiento que ha de tener el sistema Nota Para simplificar no se ha incluido el actor del sistema ya que es com n a todos los casos de uso el usuario de la aplicaci n Registrar
59. uilding Web Apps with Ember js Write ambitious Javascript O Reilly 2014 G V Feruglio Composici n de textos cient ficos con ATrX Edicions UPC 1997 A Andersson Multiplayer game server for turn based mobile games in erlang Master s thesis Licencia MIT http opensource org licenses MIT Noviembre 2014 J Segura Speculate https github com jsegura speculate Enero 2015 B G S Seshadri AngularJS O Reilly 2013 M Inc Mongo http www mongodb org Joyent Node js http nodejs org 59 60 AP NDICE B BIBLIOGRAF A Manual del juego original El juego original estaba distribuido con un manual que se incluye en el docu mento La versi n en castellano ha sido traducida especialmente para incluirla en esta memoria de proyecto C 1 Manual original C 1 1 The aim of the game This is a game based firmly on the characteristics of dealings in stocks and shares As in reality the strategies of the investors decisively affect the market trends with the chance element of only secondary importance Speculate does not provide a situation in which players win or lose unrealistic millions it simulates the position of the small investor trying to increase the value of his holdings by the modest but vital amounts he knows in real life he can hope for Now however he is in competition with others each of whom will try to turn the market situation in his own favour There wi
60. ves during the course of play There may well be times when it will pay to abandon temporarily the effort to achieve the objective C 1 3 Equipment 1 2750 in banknotes this total is deliberately set in order to keep money tight 2 Pack of Market influence cards including 5 Dividend cards 3 Objective cards 10 of each of 5 different values 4 50 Shares of each of 5 types Certificates in units of 1 2 4 3 Mining Stores Property Transport and Engineering 5 Market Price Index in the box lid 6 5 markers for the Price Index board The tray in the box is used in a way that represents the general stock market It should be thought of as more than simply a Bank but Bank is a convenient word to use and it is therefore used in these instructions C 1 4 Preparation 1 Appoint a Banker to control dealings with the Bank and another player to control the Price Index board 2 Empty the tray of all its contents Separate the two sections of the calculators and fold over the top ends of the selector strips These strips will then slide across the columns of figures 3 Place the five markers on the Market Index board to show a price of 10 for each type of share 4 Give each player 250 in cash and 8 shares of each type i e 40 shares in total 5 Return to the Bank a 300 in cash multiplied by the number of players b 2 shares of each type multiplied by the number of players For example
Download Pdf Manuals
Related Search
Related Contents
Samsung 940BW Computer Monitor User Manual Energizer PRINLBP User's Manual 学 生 募 集 要 項 TOMO 2 - Comune di Granarolo dell`Emilia FontCreator Help Manuel d`utilisation du Nokia 6030 Copyright © All rights reserved.
Failed to retrieve file