Monopoly Muggles - Simulating Monopoly game using OO design principles
Monopoly is a multi-person board game where players roll dice to move around the game board. In our system, we are simulating a smaller version of the real-world game through a web application. This simulated version is a two player game with a reduced board that contains 24 plots in total. This board captures most of the different plot types present in the original monopoly board.
There are 4 files related to User Interface placed in WEB CONTENT Folder
This file consists of code to the landing page of the application where players are provided with a start button to enter to the next page (login) where players can enter their names
This file consists of code to the second page of the application where players are provided with text boxes to enter their names and once they click on the start button, they land on main board
This file consists of code to the main page of the application where players are provided with buttons to roll die, end their turn, buy plots and build houses. There are 24 tiles depicting go cell, jail, avenues, railroads, community chest and chance cards, electricity, income tax, and free parking plot along with their details
This is the final page of the application where winners name is displayed
There are 33 files related to Backend placed in src Folder
This class defines the actions that a player can perform based on his current location on the board
This class contains details about the Avenue Plots
This class extends Plots class and has details about 10 Avenue plots namely RedWood Ave, Rainbow Ave, RockMont Ave, BlueBerry Ave, BlackHawk Ave, GrapeWood Ave, GoldHill Ave, Glacier Ave, Yale Ave, YellowPine Ave
This is a Singleton class which creates a Banker instance
This is a Singleton class which creates a Board instance. Board consists of Plots
This class contains methods which are called when a player wants to build a house in the plot he owns
This class contains methods which are called when a player wants to buy a particular plot that he landed on
This class contains details about the Chance and Community Chest Plots. We have defined 10 chance and Community chest cards
This abstract class is the parent class for the chance and community chest cards
This class extends Plots class and has details about Chance plot on the board
This abstract class is the parent class for the different kinds of commands that the player has to perform like Buy and Build
This class consists of the different commands that are to be selected based on the location and the action performed by the player
This class extends Plots class and has details about Community Chest plot on the board
This class contains the action related to Dice
This class contains details about the Electricity Plot
This class extends Plots class and has details about Free Parking plot on the board
This class extends Plots class and has details about Free Parking plot on the board
This class defines the game start, stop and passing go conditions
This class acta as a simulator for the monopoly game which acts as link between monopoly controller class and the logic of the code
This class generates card objects of type Avenue, Electricity, RailRoad, Chance and Community Chest
This class extends Plots class and has details about Go cell on the board
This class extends Plots class and has details about Go To Jail plot on the board
This class extends Plots class and has details about IncomeTax plot on the board
This class is define the transactions performed as part of the game
This class acts as a controller in the MVC architecture which connects the view and the business logic. This class receives requests from the UI and directs these requests to the appropriate logic of the code and send the responses to the UI
This class consists of the methods which are to be executed whenever a player wants to move within the board because of a chance or community chest card
This class is defined to throw user defined exceptions
This class contains methods which are called when a player lands on pay tax plot
This class keeps track of all Player actions
This abstract class is the parent class for the different kind of plots on the monopoly board which includes AvenuePlot, RailRoadPlot, ElectricityPlot, Free Parking, Community Chest & Chance, Income Tax, Go cell, Go To Jail and Visit Jail. This class has methods that help us to set and get the plot number and plot name of these plots
This class contains details about the RailRoad Plots
This class extends Plots class and has details about 4 RailRoad plots on the board
This class extends Plots class and has details about Visit Jail plot on the board