Move some static player data to a player settings class

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@252 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Matthias Schiffer 2011-05-18 17:01:10 +02:00
parent 5169f31af0
commit b5397d5aa7
8 changed files with 80 additions and 65 deletions

View file

@ -1,7 +1,5 @@
package jrummikub.model;
import java.awt.Color;
/**
* Mock class for {@link Player}
*/
@ -9,22 +7,17 @@ public class MockPlayer implements IPlayer {
/** */
public Hand hand;
/** */
public String name;
/** */
public Color color;
public PlayerSettings playerSettings;
/** */
public boolean laidOut;
/**
* @param name
* the player name
* @param color
* the player color
* @param playerSettings
* the player settings
*/
public MockPlayer(String name, Color color) {
public MockPlayer(PlayerSettings playerSettings) {
hand = new Hand();
this.name = name;
this.color = color;
this.playerSettings = playerSettings;
laidOut = false;
}
@ -39,12 +32,7 @@ public class MockPlayer implements IPlayer {
}
@Override
public Color getColor() {
return color;
}
@Override
public String getName() {
return name;
public PlayerSettings getPlayerSettings() {
return playerSettings;
}
}

View file

@ -25,10 +25,10 @@ public class MockRoundState implements IRoundState {
public MockRoundState() {
table = new MockTable();
players = new ArrayList<MockPlayer>();
players.add(new MockPlayer("Player 1", Color.RED));
players.add(new MockPlayer("Player 2", Color.YELLOW));
players.add(new MockPlayer("Player 3", Color.GREEN));
players.add(new MockPlayer("Player 4", Color.BLACK));
players.add(new MockPlayer(new PlayerSettings("Player 1", Color.RED)));
players.add(new MockPlayer(new PlayerSettings("Player 2", Color.YELLOW)));
players.add(new MockPlayer(new PlayerSettings("Player 3", Color.GREEN)));
players.add(new MockPlayer(new PlayerSettings("Player 4", Color.BLACK)));
activePlayer = 0;
gameHeap = new StoneHeap();
gameSettings = new GameSettings();

View file

@ -72,13 +72,13 @@ public class RoundControl {
clonedTable = (ITable) gameState.getTable().clone();
view.enableStartTurnPanel(true);
view.getTablePanel().setStoneSets(clonedTable);
view.setCurrentPlayerName(gameState.getActivePlayer().getName());
view.setCurrentPlayerName(gameState.getActivePlayer().getPlayerSettings().getName());
view.getTablePanel().setLeftPlayerName(
gameState.getNthNextPlayer(1).getName());
gameState.getNthNextPlayer(1).getPlayerSettings().getName());
view.getTablePanel().setTopPlayerName(
gameState.getNthNextPlayer(2).getName());
gameState.getNthNextPlayer(2).getPlayerSettings().getName());
view.getTablePanel().setRightPlayerName(
gameState.getNthNextPlayer(3).getName());
gameState.getNthNextPlayer(3).getPlayerSettings().getName());
}
private void startTurn() {

View file

@ -1,7 +1,5 @@
package jrummikub.model;
import java.awt.Color;
/**
* Interface for {@link Player} model
*/
@ -15,19 +13,16 @@ public interface IPlayer {
public IHand getHand();
/**
* Return the player's color
* Has the player laid out yet?
*
* @return the player's color
* @return if the player has laid out
*/
public Color getColor();
public boolean getLaidOut();
/**
* Return the name of the player
* Returns the player settings
*
* @return the player's name
* @return the player settings
*/
public String getName();
boolean getLaidOut();
public PlayerSettings getPlayerSettings();
}

View file

@ -1,46 +1,36 @@
package jrummikub.model;
import java.awt.Color;
/** Class managing player data. No methods in release 1 */
public class Player implements IPlayer {
private PlayerSettings settings;
private IHand hand;
private String name;
private Color color;
private boolean laidOut;
/**
* Create a new player with a given name and color
*
* @param name
* player name
* @param color
* player's color
* @param settings
* the player settings
*/
public Player(String name, Color color) {
public Player(PlayerSettings settings) {
this.settings = settings;
hand = new Hand();
this.name = name;
this.color = color;
laidOut = false;
}
@Override
public IHand getHand() {
return hand;
}
@Override
public boolean getLaidOut() {
return laidOut;
}
@Override
public Color getColor() {
return color;
}
@Override
public String getName() {
return name;
public PlayerSettings getPlayerSettings() {
return settings;
}
}

View file

@ -0,0 +1,42 @@
package jrummikub.model;
import java.awt.Color;
/**
* The settings of a player
*/
public class PlayerSettings {
private String name;
private Color color;
/**
* Create a new human player
*
* @param name
* the player's name
* @param color
* the player's color
*/
public PlayerSettings(String name, Color color) {
this.name = name;
this.color = color;
}
/**
* Returns the player's color
*
* @return the color
*/
public Color getColor() {
return color;
}
/**
* Returns the player's name
*
* @return the name
*/
public String getName() {
return name;
}
}

View file

@ -24,10 +24,10 @@ public class RoundState implements IRoundState {
table = new Table();
players = new ArrayList<Player>();
players.add(new Player("Ida", Color.RED));
players.add(new Player("Matthias", Color.YELLOW));
players.add(new Player("Jannis", Color.GREEN));
players.add(new Player("Bennet", Color.BLACK));
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)));
activePlayer = 0;
gameHeap = new StoneHeap();
}

View file

@ -23,13 +23,13 @@ public class RoundStateTest {
public void nextActiveTest() {
// All there?
assertEquals(4, testGame.getPlayerCount());
assertSame(Color.red, testGame.getActivePlayer().getColor());
assertSame(Color.red, testGame.getActivePlayer().getPlayerSettings().getColor());
testGame.nextPlayer();
assertSame(Color.yellow, testGame.getActivePlayer().getColor());
assertSame(Color.yellow, testGame.getActivePlayer().getPlayerSettings().getColor());
testGame.nextPlayer();
testGame.nextPlayer();
testGame.nextPlayer();
assertSame(Color.red, testGame.getActivePlayer().getColor());
assertSame(Color.red, testGame.getActivePlayer().getPlayerSettings().getColor());
}
}