removed card because it was unnecessary and reworked all classes containing it to implement the change
		
			
				
	
	
		
			262 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			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);
 | 
						|
    }
 | 
						|
}
 |