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:
Matthias Schiffer 2011-05-18 17:01:11 +02:00
parent b5397d5aa7
commit e76977652d
5 changed files with 54 additions and 22 deletions

View file

@ -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);

View file

@ -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

View file

@ -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;

View file

@ -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();
}

View file

@ -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());
}
}