aufgabe 5 state pattern
This commit is contained in:
parent
2638ca09b6
commit
4b574c50e8
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,5 +1,6 @@
|
|||||||
package cards.maumau.model;
|
package cards.maumau.model;
|
||||||
|
|
||||||
|
|
||||||
import cards.Card;
|
import cards.Card;
|
||||||
import cards.Suit;
|
import cards.Suit;
|
||||||
|
|
||||||
@ -11,8 +12,8 @@ class ActionHandler {
|
|||||||
private Suit chosenSuit;
|
private Suit chosenSuit;
|
||||||
private int ctr7 = 0;
|
private int ctr7 = 0;
|
||||||
|
|
||||||
private GameState gameState;
|
private GameState gameState = GameState.GAME_INITIALIZED;
|
||||||
private HandlerState handlerState;
|
private HandlerState handlerState = new Initialized(this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs an ActionHandler for the specified MauMau game.
|
* Constructs an ActionHandler for the specified MauMau game.
|
||||||
@ -37,7 +38,7 @@ class ActionHandler {
|
|||||||
* @param player The player to be added to the game.
|
* @param player The player to be added to the game.
|
||||||
*/
|
*/
|
||||||
void addPlayer(Player player) {
|
void addPlayer(Player player) {
|
||||||
//TODO implement
|
handlerState.addPlayer(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cards.maumau.model;
|
package cards.maumau.model;
|
||||||
|
|
||||||
import cards.Card;
|
import cards.Card;
|
||||||
|
import cards.Rank;
|
||||||
import cards.Suit;
|
import cards.Suit;
|
||||||
|
|
||||||
public class Normal implements HandlerState {
|
public class Normal implements HandlerState {
|
||||||
@ -12,15 +13,30 @@ public class Normal implements HandlerState {
|
|||||||
|
|
||||||
public void addPlayer(Player player){}
|
public void addPlayer(Player player){}
|
||||||
public void startGame(){}
|
public void startGame(){}
|
||||||
public void finishGame(){
|
public void finishGame(){}
|
||||||
// Logic for finishing Game ????
|
|
||||||
if (handler.getGame().getPlayerHandler().getPlayers().isEmpty()) {
|
|
||||||
handler.setHandlerState(new Finished(handler));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public void cancelGame(){}
|
public void cancelGame(){}
|
||||||
public void chooseCard(Card c){}
|
|
||||||
|
public void chooseCard(Card c){
|
||||||
|
if (handler.canPlay(c)) {
|
||||||
|
handler.getGame().getPlayerHandler().getCurrentPlayer().playCard(c);
|
||||||
|
if (c.rank() == Rank.SEVEN) {
|
||||||
|
handler.increment7Counter();
|
||||||
|
handler.getGame().getPlayerHandler().nextTurn(1);
|
||||||
|
handler.setHandlerState(new SevenChosen(handler));
|
||||||
|
} else if (c.rank() == Rank.JACK) {
|
||||||
|
handler.setHandlerState(new JackChosen(handler));
|
||||||
|
} else if (c.rank() == Rank.EIGHT) {
|
||||||
|
handler.getGame().getPlayerHandler().nextTurn(2);
|
||||||
|
} else {
|
||||||
|
handler.getGame().getPlayerHandler().nextTurn(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void chooseSuit(Suit suit){}
|
public void chooseSuit(Suit suit){}
|
||||||
public void skip(){}
|
public void skip(){
|
||||||
|
handler.getGame().getPlayerHandler().getCurrentPlayer().drawCards(1);
|
||||||
|
handler.getGame().getPlayerHandler().nextTurn(1);
|
||||||
|
}
|
||||||
public void no7(){}
|
public void no7(){}
|
||||||
}
|
}
|
||||||
|
@ -14,9 +14,13 @@ public class WaitForNextTurnState implements PlayerState {
|
|||||||
handler.setRemember(handler.getCurrentPlayer());
|
handler.setRemember(handler.getCurrentPlayer());
|
||||||
handler.localNextTurn(n);
|
handler.localNextTurn(n);
|
||||||
handler.setCurrentState(handler.getWaitForMauMauState());
|
handler.setCurrentState(handler.getWaitForMauMauState());
|
||||||
} else {
|
} else if (handler.getCurrentPlayer().getCards().size() == 1) {
|
||||||
|
handler.setRemember(handler.getCurrentPlayer());
|
||||||
handler.localNextTurn(n);
|
handler.localNextTurn(n);
|
||||||
handler.setCurrentState(handler.getWaitForMauState());
|
handler.setCurrentState(handler.getWaitForMauState());
|
||||||
|
} else {
|
||||||
|
handler.localNextTurn(n);
|
||||||
|
handler.setCurrentState(handler.getWaitForNextTurnState());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user