minas
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/cards/maumau/model/HandlerState.class
Normal file
BIN
bin/cards/maumau/model/HandlerState.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -12,6 +12,7 @@ class ActionHandler {
|
||||
private int ctr7 = 0;
|
||||
|
||||
private GameState gameState;
|
||||
private HandlerState handlerState;
|
||||
|
||||
/**
|
||||
* Constructs an ActionHandler for the specified MauMau game.
|
||||
@@ -20,7 +21,14 @@ class ActionHandler {
|
||||
*/
|
||||
ActionHandler(MauMau game) {
|
||||
this.game = game;
|
||||
gameState = new Initialized(this);
|
||||
}
|
||||
|
||||
void setGameState(GameState gameState) {
|
||||
this.gameState = gameState;
|
||||
}
|
||||
|
||||
void setHandlerState (HandlerState handlerState) {
|
||||
this.handlerState = handlerState;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,28 +37,28 @@ class ActionHandler {
|
||||
* @param player The player to be added to the game.
|
||||
*/
|
||||
void addPlayer(Player player) {
|
||||
gameState.addPlayer(player);
|
||||
//TODO implement
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the game.
|
||||
*/
|
||||
void startGame() {
|
||||
gameState.startGame();
|
||||
//TODO implement
|
||||
}
|
||||
|
||||
/**
|
||||
* Transitions the game state to GAME_OVER.
|
||||
*/
|
||||
void finishGame() {
|
||||
gameState.finishGame();
|
||||
//TODO implement
|
||||
}
|
||||
|
||||
/**
|
||||
* Transitions the game state to GAME_CANCELED.
|
||||
*/
|
||||
void cancelGame() {
|
||||
gameState.cancelGame();
|
||||
//TODO implement
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -59,7 +67,7 @@ class ActionHandler {
|
||||
* @param c The card chosen by the player.
|
||||
*/
|
||||
void chooseCard(Card c) {
|
||||
gameState.chooseCard(c);
|
||||
//TODO implement
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -68,21 +76,21 @@ class ActionHandler {
|
||||
* @param suit The suit chosen by the player.
|
||||
*/
|
||||
void chooseSuit(Suit suit) {
|
||||
gameState.chooseSuit(suit);
|
||||
//TODO implement
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets the player skip a round.
|
||||
**/
|
||||
void skip() {
|
||||
gameState.skip();
|
||||
//TODO implement
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles the player saying "no 7" in the current state.
|
||||
*/
|
||||
void no7() {
|
||||
gameState.no7();
|
||||
//TODO implement
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,10 +150,6 @@ class ActionHandler {
|
||||
return gameState;
|
||||
}
|
||||
|
||||
void setGameState(GameState gameState) {
|
||||
this.gameState = gameState;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a card can be played by the current player in the current state.
|
||||
*
|
||||
|
@@ -3,7 +3,7 @@ package cards.maumau.model;
|
||||
import cards.Card;
|
||||
import cards.Suit;
|
||||
|
||||
public class Canceled implements GameState{
|
||||
public class Canceled implements HandlerState {
|
||||
|
||||
private final ActionHandler handler;
|
||||
|
||||
|
@@ -9,7 +9,7 @@ import java.util.List;
|
||||
/**
|
||||
* Manages the draw pile and discard pile in a MauMau game.
|
||||
*/
|
||||
class CardHandler {
|
||||
public class CardHandler {
|
||||
private final MauMau game;
|
||||
private final int numCardsPerPlayer;
|
||||
private final List<Card> drawPile = new LinkedList<>();
|
||||
|
@@ -3,7 +3,7 @@ package cards.maumau.model;
|
||||
import cards.Card;
|
||||
import cards.Suit;
|
||||
|
||||
public class Finished implements GameState{
|
||||
public class Finished implements HandlerState{
|
||||
private final ActionHandler handler;
|
||||
|
||||
Finished(ActionHandler handler) {
|
||||
|
@@ -1,17 +1,29 @@
|
||||
package cards.maumau.model;
|
||||
|
||||
import cards.Card;
|
||||
import cards.Suit;
|
||||
|
||||
|
||||
interface GameState {
|
||||
void addPlayer(Player player);
|
||||
void startGame();
|
||||
void finishGame();
|
||||
void cancelGame();
|
||||
void chooseCard(Card c);
|
||||
void chooseSuit(Suit suit);
|
||||
void skip();
|
||||
void no7();
|
||||
// boolean canPlay(Card c);
|
||||
}
|
||||
/**
|
||||
* Represents the state of the Mau-Mau game.
|
||||
*/
|
||||
public enum GameState {
|
||||
/**
|
||||
* The game has been initialized, but has not yet started.
|
||||
*/
|
||||
GAME_INITIALIZED,
|
||||
/**
|
||||
* The game is over. The final ranking of players can be
|
||||
* obtained using {@link MauMau#getRanking()}.
|
||||
*/
|
||||
GAME_OVER,
|
||||
/**
|
||||
* The game has been canceled due to insufficient cards.
|
||||
*/
|
||||
GAME_CANCELED,
|
||||
/**
|
||||
* The game is currently in progress with players taking turns.
|
||||
*/
|
||||
PLAY,
|
||||
/**
|
||||
* The game is in progress and the current player has played
|
||||
* a Jack, and is required to choose a suit.
|
||||
*/
|
||||
CHOOSE_SUIT
|
||||
}
|
17
src/cards/maumau/model/HandlerState.java
Normal file
17
src/cards/maumau/model/HandlerState.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package cards.maumau.model;
|
||||
|
||||
import cards.Card;
|
||||
import cards.Suit;
|
||||
|
||||
public interface HandlerState {
|
||||
|
||||
void addPlayer(Player player);
|
||||
void startGame();
|
||||
void finishGame();
|
||||
void cancelGame();
|
||||
void chooseCard(Card c);
|
||||
void chooseSuit(Suit suit);
|
||||
void skip();
|
||||
void no7();
|
||||
|
||||
}
|
@@ -3,7 +3,7 @@ package cards.maumau.model;
|
||||
import cards.Card;
|
||||
import cards.Suit;
|
||||
|
||||
public class Initialized implements GameState {
|
||||
public class Initialized implements HandlerState {
|
||||
|
||||
private final ActionHandler handler;
|
||||
|
||||
@@ -19,9 +19,12 @@ public class Initialized implements GameState {
|
||||
public void startGame() {
|
||||
try {
|
||||
handler.getGame().getCardHandler().dealCards();
|
||||
handler.setGameState(new Normal(handler));
|
||||
handler.setHandlerState(new Normal(handler));
|
||||
handler.setGameState(GameState.PLAY);
|
||||
} catch (Exception e) {
|
||||
handler.setGameState(new Canceled(handler));
|
||||
System.err.println("Not enough Cards!");
|
||||
handler.setHandlerState(new Canceled(handler));
|
||||
handler.setGameState(GameState.GAME_CANCELED);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -3,7 +3,7 @@ package cards.maumau.model;
|
||||
import cards.Card;
|
||||
import cards.Suit;
|
||||
|
||||
public class JackChosen implements GameState{
|
||||
public class JackChosen implements HandlerState{
|
||||
private final ActionHandler handler;
|
||||
|
||||
JackChosen(ActionHandler handler) {
|
||||
@@ -14,7 +14,8 @@ public class JackChosen implements GameState{
|
||||
|
||||
public void chooseSuit(Suit suit){
|
||||
handler.setChosenSuit(suit);
|
||||
handler.setGameState(new SuitChosen(handler));
|
||||
handler.setHandlerState(new SuitChosen(handler));
|
||||
//handler.setGameState(PLAY);
|
||||
}
|
||||
|
||||
public void startGame(){}
|
||||
|
@@ -3,7 +3,7 @@ package cards.maumau.model;
|
||||
import cards.Card;
|
||||
import cards.Suit;
|
||||
|
||||
public class Normal implements GameState{
|
||||
public class Normal implements HandlerState {
|
||||
private final ActionHandler handler;
|
||||
|
||||
Normal(ActionHandler handler) {
|
||||
@@ -15,7 +15,7 @@ public class Normal implements GameState{
|
||||
public void finishGame(){
|
||||
// Logic for finishing Game ????
|
||||
if (handler.getGame().getPlayerHandler().getPlayers().isEmpty()) {
|
||||
handler.setGameState(new Finished(handler));
|
||||
handler.setHandlerState(new Finished(handler));
|
||||
}
|
||||
}
|
||||
public void cancelGame(){}
|
||||
|
@@ -3,7 +3,7 @@ package cards.maumau.model;
|
||||
import cards.Card;
|
||||
import cards.Suit;
|
||||
|
||||
public class SevenChosen implements GameState{
|
||||
public class SevenChosen implements HandlerState{
|
||||
private final ActionHandler handler;
|
||||
|
||||
SevenChosen(ActionHandler handler) {
|
||||
@@ -30,6 +30,6 @@ public class SevenChosen implements GameState{
|
||||
public void no7(){
|
||||
handler.getGame().getPlayerHandler().getCurrentPlayer().drawCards(2 * handler.get7Counter());
|
||||
handler.reset7Counter();
|
||||
handler.setGameState(new Normal(handler));
|
||||
handler.setHandlerState(new Normal(handler));
|
||||
}
|
||||
}
|
||||
|
@@ -4,7 +4,7 @@ import cards.Card;
|
||||
import cards.Suit;
|
||||
import cards.Rank;
|
||||
|
||||
public class SuitChosen implements GameState{
|
||||
public class SuitChosen implements HandlerState{
|
||||
private final ActionHandler handler;
|
||||
|
||||
SuitChosen(ActionHandler handler) {
|
||||
@@ -24,13 +24,13 @@ public class SuitChosen implements GameState{
|
||||
if(c.rank() == Rank.SEVEN) {
|
||||
handler.increment7Counter();
|
||||
handler.getGame().getPlayerHandler().nextTurn(1);
|
||||
handler.setGameState(new SevenChosen(handler));
|
||||
handler.setHandlerState(new SevenChosen(handler));
|
||||
} else if (c.rank() == Rank.EIGHT) {
|
||||
handler.getGame().getPlayerHandler().nextTurn(2);
|
||||
handler.setGameState(new Normal(handler));
|
||||
handler.setHandlerState(new Normal(handler));
|
||||
} else {
|
||||
handler.getGame().getPlayerHandler().nextTurn(1);
|
||||
handler.setGameState(new Normal(handler));
|
||||
handler.setHandlerState(new Normal(handler));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package cards.maumau.model;
|
||||
|
||||
public class WaitForNextTurnState implements PlayerState {
|
||||
public class WaitForNextTurnState implements PlayerState {
|
||||
private final PlayerHandler handler;
|
||||
|
||||
public WaitForNextTurnState(PlayerHandler handler) {
|
||||
|
Reference in New Issue
Block a user