started on implementing functionality of GamesStates
This commit is contained in:
parent
1178730173
commit
87bc479f12
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -2,7 +2,6 @@ package cards.maumau.model;
|
|||||||
|
|
||||||
import cards.Card;
|
import cards.Card;
|
||||||
import cards.Suit;
|
import cards.Suit;
|
||||||
import cards.maumau.model.gamestate.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages the actions and state transitions within a MauMau game.
|
* Manages the actions and state transitions within a MauMau game.
|
||||||
@ -30,28 +29,28 @@ 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
|
gameState.addPlayer(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Starts the game.
|
* Starts the game.
|
||||||
*/
|
*/
|
||||||
void startGame() {
|
void startGame() {
|
||||||
//TODO implement
|
gameState.startGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transitions the game state to GAME_OVER.
|
* Transitions the game state to GAME_OVER.
|
||||||
*/
|
*/
|
||||||
void finishGame() {
|
void finishGame() {
|
||||||
//TODO implement
|
gameState.finishGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transitions the game state to GAME_CANCELED.
|
* Transitions the game state to GAME_CANCELED.
|
||||||
*/
|
*/
|
||||||
void cancelGame() {
|
void cancelGame() {
|
||||||
//TODO implement
|
gameState.cancelGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -60,7 +59,7 @@ class ActionHandler {
|
|||||||
* @param c The card chosen by the player.
|
* @param c The card chosen by the player.
|
||||||
*/
|
*/
|
||||||
void chooseCard(Card c) {
|
void chooseCard(Card c) {
|
||||||
//TODO implement
|
gameState.chooseCard(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,21 +68,21 @@ class ActionHandler {
|
|||||||
* @param suit The suit chosen by the player.
|
* @param suit The suit chosen by the player.
|
||||||
*/
|
*/
|
||||||
void chooseSuit(Suit suit) {
|
void chooseSuit(Suit suit) {
|
||||||
//TODO implement
|
gameState.chooseSuit(suit);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lets the player skip a round.
|
* Lets the player skip a round.
|
||||||
**/
|
**/
|
||||||
void skip() {
|
void skip() {
|
||||||
//TODO implement
|
gameState.skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the player saying "no 7" in the current state.
|
* Handles the player saying "no 7" in the current state.
|
||||||
*/
|
*/
|
||||||
void no7() {
|
void no7() {
|
||||||
//TODO implement
|
gameState.no7();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -140,8 +139,11 @@ class ActionHandler {
|
|||||||
* Returns the current state of the game.
|
* Returns the current state of the game.
|
||||||
*/
|
*/
|
||||||
GameState getGameState() {
|
GameState getGameState() {
|
||||||
//TODO implement
|
return gameState;
|
||||||
return null;
|
}
|
||||||
|
|
||||||
|
void setGameState(GameState gameState) {
|
||||||
|
this.gameState = gameState;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,4 +2,9 @@ package cards.maumau.model;
|
|||||||
|
|
||||||
public class Canceled implements GameState{
|
public class Canceled implements GameState{
|
||||||
|
|
||||||
|
private final ActionHandler handler;
|
||||||
|
|
||||||
|
Canceled(ActionHandler handler) {
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package cards.maumau.model;
|
package cards.maumau.model;
|
||||||
|
|
||||||
public class Finished implements GameState{
|
public class Finished implements GameState{
|
||||||
|
private final ActionHandler handler;
|
||||||
|
|
||||||
|
Finished(ActionHandler handler) {
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,14 @@ import cards.Card;
|
|||||||
import cards.Suit;
|
import cards.Suit;
|
||||||
|
|
||||||
|
|
||||||
public interface GameState {
|
interface GameState {
|
||||||
public void addPlayer(Player player);
|
void addPlayer(Player player);
|
||||||
public void startGame();
|
void startGame();
|
||||||
public void finishGame();
|
void finishGame();
|
||||||
public void cancelGame();
|
void cancelGame();
|
||||||
public void chooseCard(Card c);
|
void chooseCard(Card c);
|
||||||
public void chooseSuit(Suit suit);
|
void chooseSuit(Suit suit);
|
||||||
public void skip();
|
void skip();
|
||||||
public void no7();
|
void no7();
|
||||||
boolean canPlay(Card c);
|
// boolean canPlay(Card c);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package cards.maumau.model;
|
package cards.maumau.model;
|
||||||
|
|
||||||
|
import cards.Card;
|
||||||
|
import cards.Suit;
|
||||||
|
|
||||||
public class Initialized implements GameState {
|
public class Initialized implements GameState {
|
||||||
|
|
||||||
private final ActionHandler handler;
|
private final ActionHandler handler;
|
||||||
@ -12,5 +15,20 @@ public class Initialized implements GameState {
|
|||||||
handler.getGame().getPlayerHandler().addPlayer(player);
|
handler.getGame().getPlayerHandler().addPlayer(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void startGame() {
|
||||||
|
try {
|
||||||
|
handler.getGame().getCardHandler().dealCards();
|
||||||
|
handler.setGameState(new Normal(handler));
|
||||||
|
} catch (Exception e) {
|
||||||
|
handler.setGameState(new Canceled(handler));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void finishGame(){}
|
||||||
|
public void cancelGame(){}
|
||||||
|
public void chooseCard(Card c){}
|
||||||
|
public void chooseSuit(Suit suit){}
|
||||||
|
public void skip(){}
|
||||||
|
public void no7(){}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,27 @@
|
|||||||
package cards.maumau.model;
|
package cards.maumau.model;
|
||||||
|
|
||||||
public class JackChosen implements GameState{
|
import cards.Card;
|
||||||
|
import cards.Suit;
|
||||||
|
|
||||||
|
public class JackChosen implements GameState{
|
||||||
|
private final ActionHandler handler;
|
||||||
|
|
||||||
|
JackChosen(ActionHandler handler) {
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void chooseSuit(Suit suit){
|
||||||
|
handler.setChosenSuit(suit);
|
||||||
|
handler.setGameState(new SuitChosen(handler));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void startGame(){}
|
||||||
|
public void addPlayer(Player player){}
|
||||||
|
public void finishGame(){}
|
||||||
|
public void cancelGame(){}
|
||||||
|
public void chooseCard(Card c){}
|
||||||
|
public void skip(){}
|
||||||
|
public void no7(){}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package cards.maumau.model;
|
|||||||
|
|
||||||
import cards.Card;
|
import cards.Card;
|
||||||
import cards.Suit;
|
import cards.Suit;
|
||||||
import cards.maumau.model.gamestate.*;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package cards.maumau.model;
|
package cards.maumau.model;
|
||||||
|
|
||||||
public class Normal implements GameState{
|
public class Normal implements GameState{
|
||||||
|
private final ActionHandler handler;
|
||||||
|
|
||||||
|
Normal(ActionHandler handler) {
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package cards.maumau.model;
|
package cards.maumau.model;
|
||||||
|
|
||||||
public class SevenChosen implements GameState{
|
public class SevenChosen implements GameState{
|
||||||
|
private final ActionHandler handler;
|
||||||
|
|
||||||
|
SevenChosen(ActionHandler handler) {
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,47 @@
|
|||||||
package cards.maumau.model;
|
package cards.maumau.model;
|
||||||
|
|
||||||
public class SuitChosen implements GameState{
|
import cards.Card;
|
||||||
|
import cards.Suit;
|
||||||
|
import cards.Rank;
|
||||||
|
|
||||||
|
public class SuitChosen implements GameState{
|
||||||
|
private final ActionHandler handler;
|
||||||
|
|
||||||
|
SuitChosen(ActionHandler handler) {
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addPlayer(Player player){}
|
||||||
|
public void startGame(){}
|
||||||
|
public void finishGame(){}
|
||||||
|
public void cancelGame(){}
|
||||||
|
|
||||||
|
public void chooseCard(Card c){
|
||||||
|
if (handler.canPlay(c)) {
|
||||||
|
handler.setChosenSuit(null);
|
||||||
|
handler.getGame().getPlayerHandler().getCurrentPlayer().playCard(c);
|
||||||
|
|
||||||
|
if(c.rank() == Rank.SEVEN) {
|
||||||
|
handler.increment7Counter();
|
||||||
|
handler.getGame().getPlayerHandler().nextTurn(1);
|
||||||
|
handler.setGameState(new SevenChosen(handler));
|
||||||
|
} else if (c.rank() == Rank.EIGHT) {
|
||||||
|
handler.getGame().getPlayerHandler().nextTurn(2);
|
||||||
|
handler.setGameState(new Normal(handler));
|
||||||
|
} else {
|
||||||
|
handler.getGame().getPlayerHandler().nextTurn(1);
|
||||||
|
handler.setGameState(new Normal(handler));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void chooseSuit(Suit suit){}
|
||||||
|
|
||||||
|
public void skip(){
|
||||||
|
handler.getGame().getPlayerHandler().getCurrentPlayer().drawCards(1);
|
||||||
|
handler.getGame().getPlayerHandler().nextTurn(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void no7(){}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user