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

View file

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

View file

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

View file

@ -1,7 +1,5 @@
package jrummikub.model; package jrummikub.model;
import java.awt.Color;
/** /**
* Interface for {@link Player} model * Interface for {@link Player} model
*/ */
@ -15,19 +13,16 @@ public interface IPlayer {
public IHand getHand(); 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(); public PlayerSettings getPlayerSettings();
boolean getLaidOut();
} }

View file

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

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(); table = new Table();
players = new ArrayList<Player>(); players = new ArrayList<Player>();
players.add(new Player("Ida", Color.RED)); players.add(new Player(new PlayerSettings("Ida", Color.RED)));
players.add(new Player("Matthias", Color.YELLOW)); players.add(new Player(new PlayerSettings("Matthias", Color.YELLOW)));
players.add(new Player("Jannis", Color.GREEN)); players.add(new Player(new PlayerSettings("Jannis", Color.GREEN)));
players.add(new Player("Bennet", Color.BLACK)); players.add(new Player(new PlayerSettings("Bennet", Color.BLACK)));
activePlayer = 0; activePlayer = 0;
gameHeap = new StoneHeap(); gameHeap = new StoneHeap();
} }

View file

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