Add GameSettings with the initial meld threshold
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@251 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
0b252810c9
commit
5169f31af0
7 changed files with 77 additions and 10 deletions
|
@ -18,6 +18,8 @@ public class MockRoundState implements IRoundState {
|
|||
public int activePlayer;
|
||||
/** */
|
||||
public StoneHeap gameHeap;
|
||||
/** */
|
||||
public GameSettings gameSettings;
|
||||
|
||||
/** */
|
||||
public MockRoundState() {
|
||||
|
@ -29,6 +31,7 @@ public class MockRoundState implements IRoundState {
|
|||
players.add(new MockPlayer("Player 4", Color.BLACK));
|
||||
activePlayer = 0;
|
||||
gameHeap = new StoneHeap();
|
||||
gameSettings = new GameSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -66,4 +69,9 @@ public class MockRoundState implements IRoundState {
|
|||
public void setTable(ITable table) {
|
||||
setTable = table;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameSettings getGameSettings() {
|
||||
return gameSettings;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package jrummikub;
|
|||
import javax.swing.UIManager;
|
||||
|
||||
import jrummikub.control.GameControl;
|
||||
import jrummikub.model.GameSettings;
|
||||
import jrummikub.view.impl.View;
|
||||
|
||||
/**
|
||||
|
@ -24,9 +25,10 @@ public class JRummikub {
|
|||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
GameSettings gameSettings = new GameSettings();
|
||||
View view = new View();
|
||||
|
||||
GameControl gameControl = new GameControl(view);
|
||||
GameControl gameControl = new GameControl(gameSettings, view);
|
||||
gameControl.startGame();
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package jrummikub.control;
|
||||
|
||||
import jrummikub.model.GameSettings;
|
||||
import jrummikub.model.RoundState;
|
||||
import jrummikub.util.IListener;
|
||||
import jrummikub.view.IView;
|
||||
|
@ -8,16 +9,20 @@ import jrummikub.view.IView;
|
|||
* Controls a Game, at some point including all Rounds, starts new Rounds
|
||||
*/
|
||||
public class GameControl {
|
||||
private GameSettings gameSettings;
|
||||
private IView view;
|
||||
private RoundControl roundControl;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param gameSettings
|
||||
* the game settings
|
||||
* @param view
|
||||
* the view
|
||||
*/
|
||||
public GameControl(IView view) {
|
||||
public GameControl(GameSettings gameSettings, IView view) {
|
||||
this.gameSettings = gameSettings;
|
||||
this.view = view;
|
||||
|
||||
view.getNewGameEvent().add(new IListener() {
|
||||
|
@ -46,7 +51,7 @@ public class GameControl {
|
|||
return;
|
||||
}
|
||||
|
||||
RoundState gameState = new RoundState();
|
||||
RoundState gameState = new RoundState(gameSettings);
|
||||
|
||||
roundControl = new RoundControl(gameState, view);
|
||||
roundControl.getEndRoundEvent().add(new IListener() {
|
||||
|
|
33
src/jrummikub/model/GameSettings.java
Normal file
33
src/jrummikub/model/GameSettings.java
Normal file
|
@ -0,0 +1,33 @@
|
|||
package jrummikub.model;
|
||||
|
||||
/**
|
||||
* The overall game settings
|
||||
*/
|
||||
public class GameSettings {
|
||||
private int initialMeldThreshold;
|
||||
|
||||
/**
|
||||
* Creates new GameSettings with default values
|
||||
*/
|
||||
public GameSettings() {
|
||||
initialMeldThreshold = 30;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the initial meld threshold
|
||||
*
|
||||
* @param value the value to set
|
||||
*/
|
||||
public void setInitialMeldThreshold(int value) {
|
||||
initialMeldThreshold = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the initial meld threshold
|
||||
*
|
||||
* @return the threshold
|
||||
*/
|
||||
public int getInitialMeldThreshold() {
|
||||
return initialMeldThreshold;
|
||||
}
|
||||
}
|
|
@ -5,6 +5,13 @@ package jrummikub.model;
|
|||
*/
|
||||
public interface IRoundState {
|
||||
|
||||
/**
|
||||
* Get the current {@link GameSettings}
|
||||
*
|
||||
* @return The game settings
|
||||
*/
|
||||
public GameSettings getGameSettings();
|
||||
|
||||
/**
|
||||
* Get the current {@link Table}
|
||||
*
|
||||
|
@ -16,7 +23,7 @@ public interface IRoundState {
|
|||
* Sets the current {@link Table}
|
||||
*
|
||||
* @param table
|
||||
* The new Table
|
||||
* The new Table
|
||||
*/
|
||||
public void setTable(ITable table);
|
||||
|
||||
|
@ -48,7 +55,7 @@ public interface IRoundState {
|
|||
* Returns the player that would be the active player after i turns
|
||||
*
|
||||
* @param i
|
||||
* number of turns
|
||||
* number of turns
|
||||
* @return player active after i turns
|
||||
*/
|
||||
public IPlayer getNthNextPlayer(int i);
|
||||
|
|
|
@ -4,17 +4,24 @@ import java.awt.Color;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/** Class managing the overall and momentary GameState */
|
||||
/** Class managing the overall and momentary RoundState */
|
||||
public class RoundState implements IRoundState {
|
||||
private GameSettings gameSettings;
|
||||
|
||||
private ITable table;
|
||||
private List<Player> players;
|
||||
private int activePlayer;
|
||||
private StoneHeap gameHeap;
|
||||
|
||||
/**
|
||||
* Create a new GameState with an empty table and (currently) 4 new players.
|
||||
/**
|
||||
* Create a new RoundState with an empty table
|
||||
*
|
||||
* @param gameSettings
|
||||
* the game settings
|
||||
*/
|
||||
public RoundState() {
|
||||
public RoundState(GameSettings gameSettings) {
|
||||
this.gameSettings = gameSettings;
|
||||
|
||||
table = new Table();
|
||||
players = new ArrayList<Player>();
|
||||
players.add(new Player("Ida", Color.RED));
|
||||
|
@ -59,4 +66,9 @@ public class RoundState implements IRoundState {
|
|||
public StoneHeap getGameHeap() {
|
||||
return gameHeap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameSettings getGameSettings() {
|
||||
return gameSettings;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ public class RoundStateTest {
|
|||
/** */
|
||||
@Before
|
||||
public void createGame() {
|
||||
testGame = new RoundState();
|
||||
testGame = new RoundState(new GameSettings());
|
||||
}
|
||||
|
||||
/** */
|
||||
|
|
Reference in a new issue