Files
Gruppe-01-fin/Projekte/mdga/model/src/main/java/pp.mdga/game/Game.java
Hanno Fleischer 9bafd749b6 removed card and fixed codes style
removed card because it was unnecessary and reworked all classes containing it to implement the change
2024-11-14 15:49:22 +01:00

262 lines
6.1 KiB
Java

package pp.mdga.game;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Map;
/**
* The Game class represents the game state of the Ludo game.
* It contains all the information needed to play the game.
* The game state is updated by the game logic.
*/
public class Game {
private int diceModifier = 1;
private int diceEyes;
private Map <Color, Player> players;
private Statistic gameStatistics;
private ArrayList<BonusCard> drawPile;
private ArrayList<BonusCard> discardPile = new ArrayList<>();
private Board board;
private Color activeColor;
private LinkedList<Color> order;
private Map<Color, Integer> playerConnectionID;
private static final int AMOUNT_OF_TURBO_CARDS = 16;
private static final int AMOUNT_OF_SHIELD_AND_SWAP_CARDS = 12;
/**
* This constructor creates a new Game object.
*/
public Game(){
gameStatistics = new Statistic();
drawPile = new ArrayList<>();
for (int i = 0; i < AMOUNT_OF_TURBO_CARDS; i++) {
drawPile.add(BonusCard.TURBO);
}
for (int i = 0; i < AMOUNT_OF_SHIELD_AND_SWAP_CARDS; i++) {
drawPile.add(BonusCard.SWAP);
drawPile.add(BonusCard.SHIELD);
}
board = new Board();
}
/**
* This method returns the dice modifier.
*
* @return the dice modifier
*/
public int getDiceModifier() {
return diceModifier;
}
/**
* This method sets the dice modifier.
*
* @param diceModifier the new dice modifier
*/
public void setDiceModifier(int diceModifier) {
this.diceModifier = diceModifier;
}
/**
* This method returns the dice eyes.
*
* @return the dice eyes
*/
public int getDiceEyes() {
return diceEyes;
}
/**
* This method sets the dice eyes.
*
* @param diceEyes the new dice eyes
*/
public void setDiceEyes(int diceEyes) {
this.diceEyes = diceEyes;
}
/**
* This method returns the players.
*
* @return the players
*/
public Map<Color, Player> getPlayers() {
return players;
}
/**
* This method sets the players.
*
* @param players the new players
*/
public void setPlayers(Map<Color, Player> players) {
this.players = players;
}
/**
* This method returns the game statistics.
*
* @return the game statistics
*/
public Statistic getGameStatistics() {
return gameStatistics;
}
/**
* This method sets the game statistics.
*
* @param gameStatistics the new game statistics
*/
public void setGameStatistics(Statistic gameStatistics) {
this.gameStatistics = gameStatistics;
}
/**
* This method returns the draw pile.
*
* @return the draw pile
*/
public ArrayList<BonusCard> getDrawPile() {
return drawPile;
}
/**
* This method sets the draw pile.
*
* @param drawPile the new draw pile
*/
public void setDrawPile(ArrayList<BonusCard> drawPile) {
this.drawPile = drawPile;
}
/**
* This method returns the discard pile.
*
* @return the discard pile
*/
public ArrayList<BonusCard> getDiscardPile() {
return discardPile;
}
/**
* This method sets the discard pile.
*
* @param discardPile the new discard pile
*/
public void setDiscardPile(ArrayList<BonusCard> discardPile) {
this.discardPile = discardPile;
}
/**
* This method returns the board.
*
* @return the board
*/
public Board getBoard() {
return board;
}
/**
* This method sets the board.
*
* @param board the new board
*/
public void setBoard(Board board) {
this.board = board;
}
/**
* This method returns the active color.
*
* @return the active color
*/
public Color getActiveColor() {
return activeColor;
}
/**
* This method sets the active color.
*
* @param activeColor the new active color
*/
public void setActiveColor(Color activeColor) {
this.activeColor = activeColor;
}
/**
* This method returns the order of the players.
*
* @return the order of the players
*/
public LinkedList<Color> getOrder() {
return order;
}
/**
* This method sets the order of the players.
*
* @param order the new order of the players
*/
public void setOrder(LinkedList<Color> order) {
this.order = order;
}
/**
* This method returns the player connection ID.
*
* @return the player connection ID
*/
public Map<Color, Integer> getPlayerConnectionID() {
return playerConnectionID;
}
/**
* This method sets the player connection ID.
*
* @param playerConnectionID the new player connection ID
*/
public void setPlayerConnectionID(Map<Color, Integer> playerConnectionID) {
this.playerConnectionID = playerConnectionID;
}
/**
* This method sets the player connection ID.
*
* @param color the color of the player
* @param connectionID the new connection ID
*/
public void setPlayerConnectionID(Color color, int connectionID) {
playerConnectionID.put(color, connectionID);
}
/**
* This method returns the player connection ID.
*
* @param color the color of the player
* @return the player connection ID
*/
public int getPlayerConnectionID(Color color) {
return playerConnectionID.get(color);
}
/**
* This method adds a player to the game.
*
* @param color the color of the player
* @param player the player to be added
*/
public void addPlayer(Color color, Player player) {
players.put(color, player);
}
/**
* This method removes a player from the game.
*
* @param color the color of the player
*/
public void removePlayer(Color color) {
players.remove(color);
}
}