MonopolyOptions.java

package edu.chl.hajo.monopoly.core;

import java.util.ArrayList;
import java.util.List;

/**
 * Model parameters. Put all values possible to change here
 * Pure static class
 * @author hajo
 *
 */
public class MonopolyOptions {

    // Constants
    private static final int N_SPACES = 8;
    private static final int DICE_FACES = 3;
    private static final int BALANCE = 1000;
    private static final int N_CARDS = 5;
    private static final int BONUS = 100;
    private static final List<Player> DEFAULT_PLAYERS = new ArrayList<>();

    static {
        // For development
        DEFAULT_PLAYERS.add(new Player("olle", Piece.CAR, BALANCE));
        DEFAULT_PLAYERS.add(new Player("fia", Piece.DOG, BALANCE));
    }
    // Options set to default
    private static int nSpaces = N_SPACES;
    private static int diceFaces = DICE_FACES;

    private MonopolyOptions(){}
    
    public static void setnSpaces(int nSpaces) {
        MonopolyOptions.nSpaces = nSpaces;
    }

    public static void setDiceFaces(int diceFaces) {
        MonopolyOptions.diceFaces = diceFaces;
    }

    public static void setBalance(int balance) {
        MonopolyOptions.balance = balance;
    }

    public static void setnCards(int nCards) {
        MonopolyOptions.nCards = nCards;
    }

    public static void setBonus(int bonus) {
        MonopolyOptions.bonus = bonus;
    }

    public static void setPlayers(List<Player> players) {
        MonopolyOptions.players = players;
    }
    private static int balance = BALANCE;
    private static int nCards = N_CARDS;
    private static int bonus = BONUS;
    private static List<Player> players = DEFAULT_PLAYERS;

    public static int getNPlayers() {
        return players.size();
    }

    public static List<Player> getPlayers() {
        return players;
    }

    public static int getNSpaces() {
        return nSpaces;
    }

    public static int getNFaces() {
        return diceFaces;
    }

    public static int getBalance() {
        return balance;
    }

    public static int getNCards() {
        return nCards;
    }

    public static int getBonus() {
        return bonus;
    }

    public static int getPrice() {
        return 100; // for development
    }
}