Make highest value and number of stones dealt settable

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@337 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Matthias Schiffer 2011-05-31 01:50:56 +02:00
parent c78e8e6448
commit c004a07a42
11 changed files with 190 additions and 52 deletions

View file

@ -1,10 +1,13 @@
package jrummikub.view; package jrummikub.view;
import java.awt.Color; import java.awt.Color;
import java.util.HashSet;
import java.util.Set;
import jrummikub.control.turn.TurnControlFactory; import jrummikub.control.turn.TurnControlFactory;
import jrummikub.control.turn.TurnControlFactory.Type; import jrummikub.control.turn.TurnControlFactory.Type;
import jrummikub.model.GameSettings; import jrummikub.model.GameSettings;
import jrummikub.model.StoneColor;
import jrummikub.util.IEvent; import jrummikub.util.IEvent;
import jrummikub.util.IEvent1; import jrummikub.util.IEvent1;
import jrummikub.util.IEvent2; import jrummikub.util.IEvent2;
@ -42,12 +45,24 @@ public class MockSettingsPanel implements ISettingsPanel {
public MockEvent1<Integer> changeJokerNumberEvent = new MockEvent1<Integer>(); public MockEvent1<Integer> changeJokerNumberEvent = new MockEvent1<Integer>();
/** */ /** */
public MockEvent1<Integer> changeStoneSetNumberEvent = new MockEvent1<Integer>(); public MockEvent1<Integer> changeStoneSetNumberEvent = new MockEvent1<Integer>();
/** */
public MockEvent1<Integer> changeNumberOfStonesDealtEvent = new MockEvent1<Integer>();
/** */
public MockEvent1<Integer> changeHighestValueEvent = new MockEvent1<Integer>();
/** */
public MockEvent1<Set<StoneColor>> changeStoneColorsEvent = new MockEvent1<Set<StoneColor>>();
/** */ /** */
public int initialMeldThreshold; public int initialMeldThreshold;
/** */ /** */
public int jokerNumber; public int jokerNumber;
/** */
public int stoneSetNumber; public int stoneSetNumber;
/** */
public int numberOfStonesDealt;
/** */
public int highestValue;
/** */
public Set<StoneColor> stoneColors;
@Override @Override
public IEvent getAddPlayerEvent() { public IEvent getAddPlayerEvent() {
@ -74,6 +89,21 @@ public class MockSettingsPanel implements ISettingsPanel {
return changeInitialMeldThresholdEvent; return changeInitialMeldThresholdEvent;
} }
@Override
public IEvent1<Integer> getChangeNumberOfStonesDealtEvent() {
return changeNumberOfStonesDealtEvent;
}
@Override
public IEvent1<Integer> getChangeHighestValueEvent() {
return changeHighestValueEvent;
}
@Override
public IEvent1<Set<StoneColor>> getChangeStoneColorsEvent() {
return changeStoneColorsEvent;
}
@Override @Override
public IEvent getStartGameEvent() { public IEvent getStartGameEvent() {
return startGameEvent; return startGameEvent;
@ -108,6 +138,9 @@ public class MockSettingsPanel implements ISettingsPanel {
initialMeldThreshold = gameSettings.getInitialMeldThreshold(); initialMeldThreshold = gameSettings.getInitialMeldThreshold();
jokerNumber = gameSettings.getJokerNumber(); jokerNumber = gameSettings.getJokerNumber();
stoneSetNumber = gameSettings.getStoneSetNumber(); stoneSetNumber = gameSettings.getStoneSetNumber();
numberOfStonesDealt = gameSettings.getNumberOfStonesDealt();
highestValue = gameSettings.getHighestValue();
stoneColors = new HashSet<StoneColor>(gameSettings.getStoneColors());
} }
@Override @Override

View file

@ -2,12 +2,15 @@ package jrummikub.control;
import java.awt.Color; import java.awt.Color;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import jrummikub.control.turn.TurnControlFactory; import jrummikub.control.turn.TurnControlFactory;
import jrummikub.control.turn.TurnControlFactory.Type; import jrummikub.control.turn.TurnControlFactory.Type;
import jrummikub.model.GameSettings; import jrummikub.model.GameSettings;
import jrummikub.model.PlayerSettings; import jrummikub.model.PlayerSettings;
import jrummikub.model.StoneColor;
import jrummikub.util.Connection; import jrummikub.util.Connection;
import jrummikub.util.Event1; import jrummikub.util.Event1;
import jrummikub.util.IEvent1; import jrummikub.util.IEvent1;
@ -83,6 +86,30 @@ public class SettingsControl {
update(); update();
} }
})); }));
connections.add(view.getSettingsPanel().getChangeNumberOfStonesDealtEvent()
.add(new IListener1<Integer>() {
@Override
public void handle(Integer value) {
settings.setNumberOfStonesDealt(value);
update();
}
}));
connections.add(view.getSettingsPanel().getChangeHighestValueEvent()
.add(new IListener1<Integer>() {
@Override
public void handle(Integer value) {
settings.setHighestValue(value);
update();
}
}));
connections.add(view.getSettingsPanel().getChangeStoneColorsEvent()
.add(new IListener1<Set<StoneColor>>() {
@Override
public void handle(Set<StoneColor> value) {
settings.setStoneColors(new HashSet<StoneColor>(value));
update();
}
}));
addPlayerSettingsListeners(); addPlayerSettingsListeners();
@ -242,7 +269,7 @@ public class SettingsControl {
int totalStonesDealt = settings.getNumberOfStonesDealt() int totalStonesDealt = settings.getNumberOfStonesDealt()
* settings.getPlayerList().size(); * settings.getPlayerList().size();
int totalStones = settings.getHighestCard() int totalStones = settings.getHighestValue()
* settings.getStoneSetNumber() * settings.getStoneSetNumber()
* settings.getStoneColors().size() + settings.getJokerNumber(); * settings.getStoneColors().size() + settings.getJokerNumber();

View file

@ -1,11 +1,12 @@
package jrummikub.model; package jrummikub.model;
import static jrummikub.model.StoneColor.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import static jrummikub.model.StoneColor.*;
/** /**
* The overall game settings * The overall game settings
@ -16,7 +17,7 @@ public class GameSettings {
private int initialMeldThreshold; private int initialMeldThreshold;
private int jokerPoints; private int jokerPoints;
private int jokerNumber; private int jokerNumber;
private int highestCard; private int highestValue;
private int stoneSetNumber; private int stoneSetNumber;
private int numberOfStonesDealt; private int numberOfStonesDealt;
private boolean noLimits; private boolean noLimits;
@ -29,12 +30,12 @@ public class GameSettings {
initialMeldThreshold = 30; initialMeldThreshold = 30;
jokerPoints = 50; jokerPoints = 50;
jokerNumber = 2; jokerNumber = 2;
highestCard = 13; highestValue = 13;
stoneSetNumber = 2; stoneSetNumber = 2;
numberOfStonesDealt = 14; numberOfStonesDealt = 14;
noLimits = false; noLimits = false;
stoneColors = new HashSet<StoneColor>(Arrays.asList(BLACK, BLUE, stoneColors = new HashSet<StoneColor>(Arrays.asList(BLACK, BLUE, ORANGE,
ORANGE, RED)); RED));
} }
/** /**
@ -50,7 +51,7 @@ public class GameSettings {
* Sets the initial meld threshold * Sets the initial meld threshold
* *
* @param value * @param value
* the value to set * the value to set
*/ */
public void setInitialMeldThreshold(int value) { public void setInitialMeldThreshold(int value) {
initialMeldThreshold = value; initialMeldThreshold = value;
@ -69,7 +70,7 @@ public class GameSettings {
* Sets the points counted for a joker * Sets the points counted for a joker
* *
* @param value * @param value
* the value to set * the value to set
*/ */
public void setJokerPoints(int value) { public void setJokerPoints(int value) {
jokerPoints = value; jokerPoints = value;
@ -103,22 +104,22 @@ public class GameSettings {
} }
/** /**
* Return the highest card value in use * Return the highest stone value in use
* *
* @return highest card value * @return highest stone value
*/ */
public int getHighestCard() { public int getHighestValue() {
return highestCard; return highestValue;
} }
/** /**
* Set the highest card value in use * Set the highest stone value in use
* *
* @param highestCard * @param highestValue
* highest card value * highest stone value
*/ */
public void setHighestCard(int highestCard) { public void setHighestValue(int highestValue) {
this.highestCard = highestCard; this.highestValue = highestValue;
} }
/** /**
@ -134,7 +135,7 @@ public class GameSettings {
* Set the number of sets of stones in use * Set the number of sets of stones in use
* *
* @param stoneSets * @param stoneSets
* sets of stones in use * sets of stones in use
*/ */
public void setStoneSetNumber(int stoneSets) { public void setStoneSetNumber(int stoneSets) {
this.stoneSetNumber = stoneSets; this.stoneSetNumber = stoneSets;
@ -153,7 +154,7 @@ public class GameSettings {
* Set whether "No-Limits" rules are used * Set whether "No-Limits" rules are used
* *
* @param noLimits * @param noLimits
* use no limit rules * use no limit rules
*/ */
public void setNoLimits(boolean noLimits) { public void setNoLimits(boolean noLimits) {
this.noLimits = noLimits; this.noLimits = noLimits;
@ -172,7 +173,7 @@ public class GameSettings {
* Set stone colors used * Set stone colors used
* *
* @param stoneColors * @param stoneColors
* used stone colors * used stone colors
*/ */
public void setStoneColors(Set<StoneColor> stoneColors) { public void setStoneColors(Set<StoneColor> stoneColors) {
this.stoneColors = stoneColors; this.stoneColors = stoneColors;

View file

@ -23,7 +23,7 @@ public class StoneHeap {
* */ * */
public StoneHeap(GameSettings gameSettings) { public StoneHeap(GameSettings gameSettings) {
heap = new ArrayList<Stone>(); heap = new ArrayList<Stone>();
for (int i = 1; i <= gameSettings.getHighestCard(); i++) { for (int i = 1; i <= gameSettings.getHighestValue(); i++) {
for (int j = 0; j < gameSettings.getStoneSetNumber(); j++) { for (int j = 0; j < gameSettings.getStoneSetNumber(); j++) {
for (StoneColor c : gameSettings.getStoneColors()) { for (StoneColor c : gameSettings.getStoneColors()) {
heap.add(new Stone(i, c)); heap.add(new Stone(i, c));

View file

@ -75,19 +75,19 @@ public class StoneSet implements Iterable<Stone>, Sizeable {
} }
if (nonJoker == -1) { if (nonJoker == -1) {
if (stones.size() > settings.getHighestCard()) { if (stones.size() > settings.getHighestValue()) {
return new Pair<Type, Integer>(INVALID, 0); return new Pair<Type, Integer>(INVALID, 0);
} else if (stones.size() > settings.getStoneColors().size()) { } else if (stones.size() > settings.getStoneColors().size()) {
return new Pair<Type, Integer>( return new Pair<Type, Integer>(
RUN, RUN,
(settings.getHighestCard() * (settings.getHighestCard() + 1)) (settings.getHighestValue() * (settings.getHighestValue() + 1))
/ 2 / 2
- (stones.size() - settings.getHighestCard()) - (stones.size() - settings.getHighestValue())
* (stones.size() - settings.getHighestCard() - 1) * (stones.size() - settings.getHighestValue() - 1)
/ 2); / 2);
} else { } else {
return new Pair<Type, Integer>(GROUP, stones.size() return new Pair<Type, Integer>(GROUP, stones.size()
* settings.getHighestCard()); * settings.getHighestValue());
} }
} }
@ -115,7 +115,7 @@ public class StoneSet implements Iterable<Stone>, Sizeable {
int startValue = stones.get(referencePosition).getValue() int startValue = stones.get(referencePosition).getValue()
- referencePosition; - referencePosition;
int endValue = startValue + stones.size() - 1; int endValue = startValue + stones.size() - 1;
if (startValue < 1 || endValue > settings.getHighestCard()) { if (startValue < 1 || endValue > settings.getHighestValue()) {
return 0; return 0;
} }
for (int i = 0; i < stones.size(); i++) { for (int i = 0; i < stones.size(); i++) {

View file

@ -1,9 +1,11 @@
package jrummikub.view; package jrummikub.view;
import java.awt.Color; import java.awt.Color;
import java.util.Set;
import jrummikub.control.turn.TurnControlFactory; import jrummikub.control.turn.TurnControlFactory;
import jrummikub.model.GameSettings; import jrummikub.model.GameSettings;
import jrummikub.model.StoneColor;
import jrummikub.util.IEvent; import jrummikub.util.IEvent;
import jrummikub.util.IEvent1; import jrummikub.util.IEvent1;
import jrummikub.util.IEvent2; import jrummikub.util.IEvent2;
@ -34,8 +36,8 @@ public interface ISettingsPanel {
}; };
/** /**
* The add player event is emitted when the user wants to add a player to * The add player event is emitted when the user wants to add a player to the
* the player list * player list
* *
* @return the event * @return the event
*/ */
@ -80,9 +82,15 @@ public interface ISettingsPanel {
* @return the event * @return the event
*/ */
public IEvent1<Integer> getChangeInitialMeldThresholdEvent(); public IEvent1<Integer> getChangeInitialMeldThresholdEvent();
public IEvent1<Integer> getChangeStoneSetNumberEvent(); public IEvent1<Integer> getChangeStoneSetNumberEvent();
public IEvent1<Integer> getChangeNumberOfStonesDealtEvent();
public IEvent1<Integer> getChangeHighestValueEvent();
public IEvent1<Set<StoneColor>> getChangeStoneColorsEvent();
/** /**
* the start game event is emitted when the user wants to start the game * the start game event is emitted when the user wants to start the game
* *
@ -94,7 +102,7 @@ public interface ISettingsPanel {
* Sets an error to display * Sets an error to display
* *
* @param error * @param error
* the kind of error * the kind of error
*/ */
public void setError(SettingsError error); public void setError(SettingsError error);
@ -102,7 +110,7 @@ public interface ISettingsPanel {
* Enables or disables the start game button * Enables or disables the start game button
* *
* @param enable * @param enable
* specifies if the button is to be enabled or disabled * specifies if the button is to be enabled or disabled
*/ */
public void enableStartGameButton(boolean enable); public void enableStartGameButton(boolean enable);
@ -110,7 +118,7 @@ public interface ISettingsPanel {
* Enables or disables the add player button * Enables or disables the add player button
* *
* @param enable * @param enable
* specifies if the button is to be enabled or disabled * specifies if the button is to be enabled or disabled
*/ */
public void enableAddPlayerButton(boolean enable); public void enableAddPlayerButton(boolean enable);
@ -118,7 +126,7 @@ public interface ISettingsPanel {
* Enables or disables the remove player buttons * Enables or disables the remove player buttons
* *
* @param enable * @param enable
* specifies if the buttons are to be enabled or disabled * specifies if the buttons are to be enabled or disabled
*/ */
public void enableRemovePlayerButtons(boolean enable); public void enableRemovePlayerButtons(boolean enable);
@ -127,7 +135,7 @@ public interface ISettingsPanel {
* Sets the game settings to display * Sets the game settings to display
* *
* @param gameSettings * @param gameSettings
* the settings * the settings
*/ */
public void setGameSettings(GameSettings gameSettings); public void setGameSettings(GameSettings gameSettings);

View file

@ -17,6 +17,7 @@ import java.awt.event.MouseEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Set;
import javax.swing.Box; import javax.swing.Box;
import javax.swing.BoxLayout; import javax.swing.BoxLayout;
@ -44,6 +45,7 @@ import jrummikub.control.turn.TurnControlFactory;
import jrummikub.control.turn.TurnControlFactory.Type; import jrummikub.control.turn.TurnControlFactory.Type;
import jrummikub.model.GameSettings; import jrummikub.model.GameSettings;
import jrummikub.model.PlayerSettings; import jrummikub.model.PlayerSettings;
import jrummikub.model.StoneColor;
import jrummikub.util.Event; import jrummikub.util.Event;
import jrummikub.util.Event1; import jrummikub.util.Event1;
import jrummikub.util.Event2; import jrummikub.util.Event2;
@ -66,6 +68,8 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
private JSpinner initialMeldThresholdSpinner; private JSpinner initialMeldThresholdSpinner;
private JSpinner stoneSetNumberSpinner; private JSpinner stoneSetNumberSpinner;
private JSpinner highestValueSpinner;
private JSpinner numberOfStonesDealtSpinner;
private JSpinner jokerNumberSpinner; private JSpinner jokerNumberSpinner;
private Event startGameEvent = new Event(); private Event startGameEvent = new Event();
@ -77,6 +81,9 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
private Event1<Integer> changeInitialMeldThresholdEvent = new Event1<Integer>(); private Event1<Integer> changeInitialMeldThresholdEvent = new Event1<Integer>();
private Event1<Integer> changeJokerNumberEvent = new Event1<Integer>(); private Event1<Integer> changeJokerNumberEvent = new Event1<Integer>();
private Event1<Integer> changeStoneSetNumberEvent = new Event1<Integer>(); private Event1<Integer> changeStoneSetNumberEvent = new Event1<Integer>();
private Event1<Integer> changeNumberOfStonesDealtEvent = new Event1<Integer>();
private Event1<Integer> changeHighestValueEvent = new Event1<Integer>();
private Event1<Set<StoneColor>> changeStoneColorsEvent = new Event1<Set<StoneColor>>();
@Override @Override
public IEvent getStartGameEvent() { public IEvent getStartGameEvent() {
@ -113,6 +120,21 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
return changeStoneSetNumberEvent; return changeStoneSetNumberEvent;
} }
@Override
public IEvent1<Integer> getChangeNumberOfStonesDealtEvent() {
return changeNumberOfStonesDealtEvent;
}
@Override
public IEvent1<Integer> getChangeHighestValueEvent() {
return changeHighestValueEvent;
}
@Override
public IEvent1<Set<StoneColor>> getChangeStoneColorsEvent() {
return changeStoneColorsEvent;
}
@Override @Override
public void setError(SettingsError error) { public void setError(SettingsError error) {
switch (error) { switch (error) {
@ -178,6 +200,8 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
initialMeldThresholdSpinner.setValue(gameSettings initialMeldThresholdSpinner.setValue(gameSettings
.getInitialMeldThreshold()); .getInitialMeldThreshold());
stoneSetNumberSpinner.setValue(gameSettings.getStoneSetNumber()); stoneSetNumberSpinner.setValue(gameSettings.getStoneSetNumber());
highestValueSpinner.setValue(gameSettings.getHighestValue());
numberOfStonesDealtSpinner.setValue(gameSettings.getNumberOfStonesDealt());
jokerNumberSpinner.setValue(gameSettings.getJokerNumber()); jokerNumberSpinner.setValue(gameSettings.getJokerNumber());
playerSettingsViewport.revalidate(); playerSettingsViewport.revalidate();
@ -251,13 +275,21 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
stoneSetNumberSpinner = makeOptionSpinner(1, 1, 999, 1, stoneSetNumberSpinner = makeOptionSpinner(1, 1, 999, 1,
changeStoneSetNumberEvent); changeStoneSetNumberEvent);
makeOptionLabel(2, "Jokeranzahl:"); makeOptionLabel(2, "H\u00f6chster Steinwert:");
jokerNumberSpinner = makeOptionSpinner(2, 1, 999, 1, highestValueSpinner = makeOptionSpinner(2, 3, 99, 1,
changeHighestValueEvent);
makeOptionLabel(3, "Anzahl Startsteine:");
numberOfStonesDealtSpinner = makeOptionSpinner(3, 1, 999, 1,
changeNumberOfStonesDealtEvent);
makeOptionLabel(4, "Jokeranzahl:");
jokerNumberSpinner = makeOptionSpinner(4, 1, 999, 1,
changeJokerNumberEvent); changeJokerNumberEvent);
GridBagConstraints c = new GridBagConstraints(); GridBagConstraints c = new GridBagConstraints();
c.gridx = 1; c.gridx = 1;
c.gridy = 3; c.gridy = 5;
c.fill = GridBagConstraints.BOTH; c.fill = GridBagConstraints.BOTH;
c.weightx = 1; c.weightx = 1;
c.weighty = 1; c.weighty = 1;

View file

@ -80,7 +80,7 @@ public class RoundControlTest {
private void checkCorrectlyDealt() { private void checkCorrectlyDealt() {
GameSettings settings = testRoundState.getGameSettings(); GameSettings settings = testRoundState.getGameSettings();
int totalStones = settings.getHighestCard() int totalStones = settings.getHighestValue()
* settings.getStoneSetNumber() * settings.getStoneSetNumber()
* settings.getStoneColors().size() + settings.getJokerNumber(); * settings.getStoneColors().size() + settings.getJokerNumber();
assertEquals( assertEquals(

View file

@ -1,11 +1,15 @@
package jrummikub.control; package jrummikub.control;
import static jrummikub.model.StoneColor.*;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import java.awt.Color; import java.awt.Color;
import java.util.Arrays;
import java.util.HashSet;
import jrummikub.control.turn.TurnControlFactory; import jrummikub.control.turn.TurnControlFactory;
import jrummikub.model.GameSettings; import jrummikub.model.GameSettings;
import jrummikub.model.StoneColor;
import jrummikub.util.IListener1; import jrummikub.util.IListener1;
import jrummikub.view.ISettingsPanel; import jrummikub.view.ISettingsPanel;
import jrummikub.view.MockView; import jrummikub.view.MockView;
@ -37,8 +41,7 @@ public class SettingsControlTest {
/** */ /** */
@Test @Test
public void initialStateTest() { public void initialStateTest() {
assertSame(ISettingsPanel.SettingsError.NO_ERROR, assertSame(ISettingsPanel.SettingsError.NO_ERROR, view.settingsPanel.error);
view.settingsPanel.error);
view.settingsPanel.startGameEvent.emit(); view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings); assertNotNull(gameSettings);
assertEquals(2, gameSettings.getPlayerList().size()); assertEquals(2, gameSettings.getPlayerList().size());
@ -159,8 +162,7 @@ public class SettingsControlTest {
view.settingsPanel.changePlayerNameEvent.emit(1, name2); view.settingsPanel.changePlayerNameEvent.emit(1, name2);
assertTrue(view.settingsPanel.startButtonEnabled); assertTrue(view.settingsPanel.startButtonEnabled);
assertSame(ISettingsPanel.SettingsError.NO_ERROR, assertSame(ISettingsPanel.SettingsError.NO_ERROR, view.settingsPanel.error);
view.settingsPanel.error);
view.settingsPanel.startGameEvent.emit(); view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings); assertNotNull(gameSettings);
@ -213,6 +215,41 @@ public class SettingsControlTest {
assertEquals(3, gameSettings.getStoneSetNumber()); assertEquals(3, gameSettings.getStoneSetNumber());
} }
/** */
@Test
public void changeNumberOfStonesDealtTest() {
assertEquals(initialSettings.getNumberOfStonesDealt(),
view.settingsPanel.numberOfStonesDealt);
view.settingsPanel.changeNumberOfStonesDealtEvent.emit(15);
view.settingsPanel.startGameEvent.emit();
assertEquals(15, gameSettings.getNumberOfStonesDealt());
}
/** */
@Test
public void changeHighestValueTest() {
assertEquals(initialSettings.getHighestValue(),
view.settingsPanel.highestValue);
view.settingsPanel.changeHighestValueEvent.emit(10);
view.settingsPanel.startGameEvent.emit();
assertEquals(10, gameSettings.getHighestValue());
}
/** */
@Test
public void changeStoneColorsTest() {
assertEquals(initialSettings.getStoneColors(),
view.settingsPanel.stoneColors);
view.settingsPanel.changeStoneColorsEvent.emit(new HashSet<StoneColor>(Arrays.asList(
BLUE, RED, BLACK)));
view.settingsPanel.startGameEvent.emit();
assertEquals(new HashSet<StoneColor>(Arrays.asList(BLUE, RED, BLACK)),
gameSettings.getStoneColors());
}
/** */ /** */
@Test @Test
public void typeChangeTest() { public void typeChangeTest() {
@ -225,10 +262,10 @@ public class SettingsControlTest {
view.settingsPanel.startGameEvent.emit(); view.settingsPanel.startGameEvent.emit();
assertNotNull(gameSettings); assertNotNull(gameSettings);
assertEquals(2, gameSettings.getPlayerList().size()); assertEquals(2, gameSettings.getPlayerList().size());
assertSame(TurnControlFactory.Type.COMPUTER, gameSettings assertSame(TurnControlFactory.Type.COMPUTER, gameSettings.getPlayerList()
.getPlayerList().get(0).getTurnControlType()); .get(0).getTurnControlType());
assertSame(TurnControlFactory.Type.HUMAN, gameSettings.getPlayerList() assertSame(TurnControlFactory.Type.HUMAN,
.get(1).getTurnControlType()); gameSettings.getPlayerList().get(1).getTurnControlType());
} }
} }

View file

@ -54,7 +54,7 @@ public class StoneHeapTest {
} }
private int calculateTotalNumberOfStones(GameSettings testSettings) { private int calculateTotalNumberOfStones(GameSettings testSettings) {
int totalStones = testSettings.getHighestCard() int totalStones = testSettings.getHighestValue()
* testSettings.getStoneSetNumber() * testSettings.getStoneSetNumber()
* testSettings.getStoneColors().size() * testSettings.getStoneColors().size()
+ testSettings.getJokerNumber(); + testSettings.getJokerNumber();
@ -81,7 +81,7 @@ public class StoneHeapTest {
*/ */
@Theory @Theory
public void fullColor(Pair<GameSettings, StoneHeap> data) { public void fullColor(Pair<GameSettings, StoneHeap> data) {
int stonesOfAColor = data.getFirst().getHighestCard() int stonesOfAColor = data.getFirst().getHighestValue()
* data.getFirst().getStoneSetNumber(); * data.getFirst().getStoneSetNumber();
Map<StoneColor, Integer> counters = new HashMap<StoneColor, Integer>(); Map<StoneColor, Integer> counters = new HashMap<StoneColor, Integer>();
for (StoneColor c : data.getFirst().getStoneColors()) { for (StoneColor c : data.getFirst().getStoneColors()) {

View file

@ -31,8 +31,8 @@ public class StoneSetTest {
moreColorSettings.setStoneColors(EnumSet.allOf(StoneColor.class)); moreColorSettings.setStoneColors(EnumSet.allOf(StoneColor.class));
lessColorSettings.setStoneColors(new HashSet<StoneColor>(Arrays.asList( lessColorSettings.setStoneColors(new HashSet<StoneColor>(Arrays.asList(
StoneColor.BLUE, StoneColor.RED, StoneColor.BLACK))); StoneColor.BLUE, StoneColor.RED, StoneColor.BLACK)));
higherValueSettings.setHighestCard(17); higherValueSettings.setHighestValue(17);
lowerValueSettings.setHighestCard(10); lowerValueSettings.setHighestValue(10);
} }
private void assertSet(StoneSet.Type expectedType, Integer expectedValue, private void assertSet(StoneSet.Type expectedType, Integer expectedValue,