RoundControl: Create players from player settings list from game settings
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@253 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
b5397d5aa7
commit
e76977652d
5 changed files with 54 additions and 22 deletions
|
@ -1,9 +1,12 @@
|
|||
package jrummikub;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
import javax.swing.UIManager;
|
||||
|
||||
import jrummikub.control.GameControl;
|
||||
import jrummikub.model.GameSettings;
|
||||
import jrummikub.model.PlayerSettings;
|
||||
import jrummikub.view.impl.View;
|
||||
|
||||
/**
|
||||
|
@ -15,7 +18,7 @@ public class JRummikub {
|
|||
* The main method
|
||||
*
|
||||
* @param args
|
||||
* command line arguments
|
||||
* command line arguments
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
String nativeLF = UIManager.getSystemLookAndFeelClassName();
|
||||
|
@ -26,6 +29,12 @@ public class JRummikub {
|
|||
}
|
||||
|
||||
GameSettings gameSettings = new GameSettings();
|
||||
gameSettings.getPlayerList().add(new PlayerSettings("Ida", Color.RED));
|
||||
gameSettings.getPlayerList().add(
|
||||
new PlayerSettings("Matthias", Color.YELLOW));
|
||||
gameSettings.getPlayerList().add(new PlayerSettings("Jannis", Color.GREEN));
|
||||
gameSettings.getPlayerList().add(new PlayerSettings("Bennet", Color.BLACK));
|
||||
|
||||
View view = new View();
|
||||
|
||||
GameControl gameControl = new GameControl(gameSettings, view);
|
||||
|
|
|
@ -51,9 +51,9 @@ public class GameControl {
|
|||
return;
|
||||
}
|
||||
|
||||
RoundState gameState = new RoundState(gameSettings);
|
||||
RoundState roundState = new RoundState(gameSettings);
|
||||
|
||||
roundControl = new RoundControl(gameState, view);
|
||||
roundControl = new RoundControl(roundState, view);
|
||||
roundControl.getEndRoundEvent().add(new IListener() {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
package jrummikub.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* The overall game settings
|
||||
*/
|
||||
public class GameSettings {
|
||||
private List<PlayerSettings> players = new ArrayList<PlayerSettings>();
|
||||
|
||||
private int initialMeldThreshold;
|
||||
|
||||
/**
|
||||
|
@ -13,10 +18,20 @@ public class GameSettings {
|
|||
initialMeldThreshold = 30;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list containing the settings of all players
|
||||
*
|
||||
* @return the player settings list
|
||||
*/
|
||||
public List<PlayerSettings> getPlayerList() {
|
||||
return players;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the initial meld threshold
|
||||
*
|
||||
* @param value the value to set
|
||||
* @param value
|
||||
* the value to set
|
||||
*/
|
||||
public void setInitialMeldThreshold(int value) {
|
||||
initialMeldThreshold = value;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package jrummikub.model;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -24,10 +23,11 @@ public class RoundState implements IRoundState {
|
|||
|
||||
table = new Table();
|
||||
players = new ArrayList<Player>();
|
||||
players.add(new Player(new PlayerSettings("Ida", Color.RED)));
|
||||
players.add(new Player(new PlayerSettings("Matthias", Color.YELLOW)));
|
||||
players.add(new Player(new PlayerSettings("Jannis", Color.GREEN)));
|
||||
players.add(new Player(new PlayerSettings("Bennet", Color.BLACK)));
|
||||
|
||||
for (PlayerSettings playerSettings : gameSettings.getPlayerList()) {
|
||||
players.add(new Player(playerSettings));
|
||||
}
|
||||
|
||||
activePlayer = 0;
|
||||
gameHeap = new StoneHeap();
|
||||
}
|
||||
|
|
|
@ -6,30 +6,38 @@ import java.awt.Color;
|
|||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
/**
|
||||
|
||||
/**
|
||||
* Test class for {@link RoundState}
|
||||
*/
|
||||
public class RoundStateTest {
|
||||
private IRoundState testGame;
|
||||
private GameSettings settings = new GameSettings();
|
||||
private IRoundState testRound;
|
||||
|
||||
/** */
|
||||
@Before
|
||||
public void createGame() {
|
||||
testGame = new RoundState(new GameSettings());
|
||||
public void createRound() {
|
||||
settings.getPlayerList().add(new PlayerSettings("Player 1", Color.RED));
|
||||
settings.getPlayerList().add(new PlayerSettings("Player 2", Color.YELLOW));
|
||||
settings.getPlayerList().add(new PlayerSettings("Player 3", Color.BLUE));
|
||||
|
||||
testRound = new RoundState(settings);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Test
|
||||
public void nextActiveTest() {
|
||||
// All there?
|
||||
assertEquals(4, testGame.getPlayerCount());
|
||||
assertSame(Color.red, testGame.getActivePlayer().getPlayerSettings().getColor());
|
||||
testGame.nextPlayer();
|
||||
assertSame(Color.yellow, testGame.getActivePlayer().getPlayerSettings().getColor());
|
||||
testGame.nextPlayer();
|
||||
testGame.nextPlayer();
|
||||
testGame.nextPlayer();
|
||||
assertSame(Color.red, testGame.getActivePlayer().getPlayerSettings().getColor());
|
||||
assertEquals(settings.getPlayerList().size(), testRound.getPlayerCount());
|
||||
assertSame(Color.RED, testRound.getActivePlayer().getPlayerSettings()
|
||||
.getColor());
|
||||
testRound.nextPlayer();
|
||||
assertSame(Color.YELLOW, testRound.getActivePlayer().getPlayerSettings()
|
||||
.getColor());
|
||||
testRound.nextPlayer();
|
||||
testRound.nextPlayer();
|
||||
assertSame(Color.RED, testRound.getActivePlayer().getPlayerSettings()
|
||||
.getColor());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Reference in a new issue