Skip to content

Implementación personalizada y completamente jugable del clásico juego de mesa Monopoly

Notifications You must be signed in to change notification settings

alvrogd/MonopolyETSE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MonopolyETSE

Introducción

Este proyecto ha sido realizado para aprender de forma didáctica el paradigma de Programación Orientada a Objetos, sin conocimientos previos sobre él ni sobre buenas prácticas de diseño de software.

Su desarrollo ha consistido en desarrollar una implementación personalizada del famoso juego de mesa Monopoly. A continuación, se detallan los cambios más destacables respecto al juego original, aunque es posible consultar, en los PDFs adjuntos del directorio Guiones, todas sus características.

Extensiones añadidas

Creación del tablero

A la hora de iniciar el juego, se permite al usuario crear su propio tablero, pudiendo repartir las casillas de cada tipo a su gusto, y configurando propiedades como el nombre, el alquiler o la imagen que la representa.

En caso de que el usuario no desee crear un tablero personalizado, tiene la opción de jugar con el predeterminado de la aplicación.

Avatares en modo avanzado

En el juego se disponen de cuatro tipos de avatares: esfinge, sombrero, coche y pelota. Estos son indistinguibles en su modo de juego normal pero, cuando se activa el modo avanzado, sus movimientos se ven alterados.

El modo avanzado puede ser activado o desactivado, a voluntad de un jugador, cada jugador al inicio de su turno correspondiente. Además, puede haber varios jugadores con el mismo tipo de avatar. De forma resumida cada uno de los siguiente avatares tiene las siguientes propiedades en su modo avanzado:

  1. Esfinge: realiza un movimiento en zigzag entre la zona norte y sur del tablero.
  2. Sombrero: realiza un movimiento en zigzag entre la zona oeste y este del tablero.
  3. Coche: permite tirar el dado varias veces en el mismo turno, mientras se obtenga un valor mínimo en él.
  4. Pelota: permite interactuar con más de una de las casillas por las que se pasa en una tirada.

Tratos

Una de las funcionalidades añadidas al proyecto es la de que los propios jugadores puedan realizar tratos entre ellos.

Estos acuerdos permiten el traspaso de un número arbitrario de dinero, propiedades, e inmunidades con las que evitar el pago de determinados alquileres, entre el jugador emisor y el receptor.

¿Cómo se gana el juego?

Un jugador pierde el juego cuando se queda sin dinero, o en balance negativo directamente. Una vez un jugador alcanza dicho estado, no tiene la posibilidad de hipotecar o intercambiar propiedades con otro jugador para recuperarse.

Así, el juego lo ganará el último jugador que quede con dinero en la partida.

¿Cómo ejecutar el juego?

El proyecto se ha realizado con Java 8 utilizando la tecnología JavaFX, y se dispone en forma de un fichero .jar ejecutable.

Para la ejecución en Linux, se deberá navegar al directorio MonopolyETSE/dist/, y ejecutar el siguiente comando.

java -jar MonopolyETSE_Entrega_v4.jar

Trabajo futuro

Dado que el proyecto fue realizado como parte práctica de la asignatura Programación Orientada a Objetos del Grado de Ingeniería Informática de la USC (Universidad de Santiago de Compostela), no fue posible añadir todas las características esperadas para un juego de ordenador completo.

Concretamente, sería de interés implementar en un futuro las siguientes funcionalidades para mejorar el proyecto:

  • Carga de guardado de tableros personalizados
  • Carga y guardado de partidas.
  • Mejora de los tratos.

Autores del proyecto

About

Implementación personalizada y completamente jugable del clásico juego de mesa Monopoly

Resources

Stars

Watchers

Forks

Languages