Select a random player for the first round
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@263 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
d9a0b0e37d
commit
92d1109954
5 changed files with 61 additions and 3 deletions
|
@ -91,4 +91,13 @@ public class MockRoundState implements IRoundState {
|
|||
public void setLastPlayer(IPlayer lastPlayer) {
|
||||
this.lastPlayer = lastPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setActivePlayerNumber(int i) {
|
||||
int j = i % players.size();
|
||||
if (j < 0) {
|
||||
j += players.size();
|
||||
}
|
||||
activePlayer = j;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package jrummikub.control;
|
||||
|
||||
import jrummikub.model.GameSettings;
|
||||
import jrummikub.model.GameState;
|
||||
import jrummikub.model.IRoundState;
|
||||
import jrummikub.model.RoundState;
|
||||
import jrummikub.util.IListener;
|
||||
|
@ -13,6 +14,7 @@ public class GameControl {
|
|||
private GameSettings gameSettings;
|
||||
private IView view;
|
||||
private RoundControl roundControl;
|
||||
private GameState gameState;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
|
@ -25,6 +27,9 @@ public class GameControl {
|
|||
public GameControl(GameSettings gameSettings, IView view) {
|
||||
this.gameSettings = gameSettings;
|
||||
this.view = view;
|
||||
|
||||
gameState = new GameState();
|
||||
gameState.setFirstRoundFirstPlayer((int)(Math.random() * gameSettings.getPlayerList().size()));
|
||||
|
||||
view.getNewGameEvent().add(new IListener() {
|
||||
@Override
|
||||
|
@ -54,6 +59,9 @@ public class GameControl {
|
|||
|
||||
IRoundState roundState = new RoundState(gameSettings);
|
||||
|
||||
// TODO: add number of already played rounds
|
||||
roundState.setActivePlayerNumber(gameState.getFirstRoundFirstPlayer());
|
||||
|
||||
roundControl = new RoundControl(roundState, view);
|
||||
roundControl.getEndRoundEvent().add(new IListener() {
|
||||
|
||||
|
|
24
src/jrummikub/model/GameState.java
Normal file
24
src/jrummikub/model/GameState.java
Normal file
|
@ -0,0 +1,24 @@
|
|||
package jrummikub.model;
|
||||
|
||||
/**
|
||||
* Class that stores information for a game of multiple rounds
|
||||
*/
|
||||
public class GameState {
|
||||
private int firstRoundFirstPlayer;
|
||||
|
||||
/**
|
||||
* Gets the number of the first player of the first round
|
||||
* @return the number of the first player of the first round
|
||||
*/
|
||||
public int getFirstRoundFirstPlayer() {
|
||||
return firstRoundFirstPlayer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the number of the first player of the first round
|
||||
* @param firstRoundFirstPlayer the number of the first player of the first round
|
||||
*/
|
||||
public void setFirstRoundFirstPlayer(int firstRoundFirstPlayer) {
|
||||
this.firstRoundFirstPlayer = firstRoundFirstPlayer;
|
||||
}
|
||||
}
|
|
@ -64,8 +64,7 @@ public interface IRoundState {
|
|||
* Sets the player that will make the last turn before the round ends when
|
||||
* the heap is empty
|
||||
*
|
||||
* @param lastPlayer
|
||||
* the last player
|
||||
* @return the last player
|
||||
*/
|
||||
public abstract IPlayer getLastPlayer();
|
||||
|
||||
|
@ -73,8 +72,17 @@ public interface IRoundState {
|
|||
* Gets the player that will make the last turn before the round ends when
|
||||
* the heap is empty
|
||||
*
|
||||
* @return lastPlayer the last player
|
||||
* @param lastPlayer
|
||||
* the last player
|
||||
*/
|
||||
public abstract void setLastPlayer(IPlayer lastPlayer);
|
||||
|
||||
/**
|
||||
* Makes the player with number i the active player
|
||||
*
|
||||
* @param i
|
||||
* number of the player to make active
|
||||
*/
|
||||
public void setActivePlayerNumber(int i);
|
||||
|
||||
}
|
|
@ -52,6 +52,15 @@ public class RoundState implements IRoundState {
|
|||
public void nextPlayer() {
|
||||
activePlayer = (activePlayer + 1) % players.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setActivePlayerNumber(int i) {
|
||||
int j = i % players.size();
|
||||
if (j < 0) {
|
||||
j += players.size();
|
||||
}
|
||||
activePlayer = j;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPlayer getNthNextPlayer(int i) {
|
||||
|
|
Reference in a new issue