summaryrefslogtreecommitdiffstats
path: root/mock/jrummikub/model/MockRoundState.java
blob: 3f64d53ccd9bb5c1b4b32cd6a53fa548848bdee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package jrummikub.model;

import java.awt.Color;
import java.util.ArrayList;
import java.util.List;

/**
 * Mock class for {@link RoundState}
 */
public class MockRoundState implements IRoundState {
	/** */
	public MockTable table;
	/** */
	public ITable setTable;
	/** */
	public List<MockPlayer> players;
	/** */
	public int activePlayer;
	/** */
	public StoneHeap gameHeap;
	/** */
	public GameSettings gameSettings;
	/** */
	public IPlayer lastPlayer;
	/** */
	public int turnNumber;
	/** */
	
	public MockRoundState() {
		table = new MockTable();
		players = new ArrayList<MockPlayer>();
		players.add(new MockPlayer(new PlayerSettings("Player 1", Color.RED),
				gameSettings));
		players.add(new MockPlayer(
				new PlayerSettings("Player 2", Color.YELLOW), gameSettings));
		players.add(new MockPlayer(new PlayerSettings("Player 3", Color.GREEN),
				gameSettings));
		players.add(new MockPlayer(new PlayerSettings("Player 4", Color.BLACK),
				gameSettings));
		activePlayer = 0;
		gameSettings = new GameSettings();
		gameHeap = new StoneHeap(gameSettings);
		gameSettings.setInitialMeldThreshold(30);
		turnNumber = -3;
	}

	@Override
	public ITable getTable() {
		return table;
	}

	@Override
	public int getPlayerCount() {
		return players.size();
	}

	/** Changes the activePlayer to the next {@link Player} in the list */
	@Override
	public void nextPlayer() {
		activePlayer = (activePlayer + 1) % players.size();
	}

	@Override
	public IPlayer getActivePlayer() {
		return players.get(activePlayer);
	}

	@Override
	public StoneHeap getGameHeap() {
		return gameHeap;
	}

	@Override
	public IPlayer getNthNextPlayer(int i) {
		int j = (activePlayer + i) % players.size();
		if (j < 0) {
			j += players.size();
		}
		return players.get(j);
	}

	@Override
	public void setTable(ITable table) {
		setTable = table;
	}

	@Override
	public GameSettings getGameSettings() {
		return gameSettings;
	}

	@Override
	public IPlayer getLastPlayer() {
		return lastPlayer;
	}

	@Override
	public void setLastPlayer(IPlayer lastPlayer) {
		this.lastPlayer = lastPlayer;
	}

	@Override
	public void setActivePlayerNumber(int i) {
		int j = i % players.size();
		if (j < 0) {
			j += players.size();
		}
		activePlayer = j;
	}

	@Override
	public IPlayer getNthPlayer(int i) {
		int j = i % players.size();
		if (j < 0) {
			j += players.size();
		}
		return players.get(j);
	}

	public int getTurnNumber() {
		return turnNumber;
	}

	@Override
	public void nextTurn() {
		turnNumber++;
	}
}