Compare commits

...

8 Commits

Author SHA1 Message Date
316339d733 code cleanup 2024-06-19 11:45:29 +02:00
e58808bbbc fixed bug with seven counter 2024-06-19 11:43:35 +02:00
094c17d16a KVA working 2024-06-19 01:58:53 +02:00
4b574c50e8 aufgabe 5 state pattern 2024-06-18 21:25:33 +00:00
2638ca09b6 refactored testing 2024-06-18 20:02:50 +00:00
ad3ec29962 minas 2024-06-13 16:40:15 +00:00
0f91dc2a13 enabled JUnit Testing 2024-06-10 15:09:43 +02:00
bd81bd07ad hmm 2024-06-09 23:08:55 +02:00
65 changed files with 308 additions and 83 deletions

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.

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.

View File

@@ -30,16 +30,16 @@ public enum Suit {
public String toString() { public String toString() {
switch (this) { switch (this) {
case HEARTS: case HEARTS:
return ""; return "";
case DIAMONDS: case DIAMONDS:
return ""; return "";
case CLUBS: case CLUBS:
return ""; return "";
case SPADES: case SPADES:
return ""; return "";
default: default:
return ""; return "";

View File

@@ -1,17 +1,20 @@
package cards.maumau.model; package cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank;
import cards.Suit; import cards.Suit;
/** /**
* Manages the actions and state transitions within a MauMau game. * Manages the actions and state transitions within a MauMau game.
*/ */
class ActionHandler { public class ActionHandler {
private final MauMau game; private final MauMau game;
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 = new Initialized(this);
/** /**
* Constructs an ActionHandler for the specified MauMau game. * Constructs an ActionHandler for the specified MauMau game.
@@ -20,7 +23,18 @@ class ActionHandler {
*/ */
ActionHandler(MauMau game) { ActionHandler(MauMau game) {
this.game = game; this.game = game;
gameState = new Initialized(this); }
void setGameState(GameState gameState) {
this.gameState = gameState;
}
void setHandlerState (HandlerState handlerState) {
this.handlerState = handlerState;
}
public HandlerState getHandlerState() {
return handlerState;
} }
/** /**
@@ -29,28 +43,30 @@ 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) {
gameState.addPlayer(player); handlerState.addPlayer(player);
} }
/** /**
* Starts the game. * Starts the game.
*/ */
void startGame() { void startGame() {
gameState.startGame(); handlerState.startGame();
} }
/** /**
* Transitions the game state to GAME_OVER. * Transitions the game state to GAME_OVER.
*/ */
void finishGame() { void finishGame() {
gameState.finishGame(); // handlerState.finishGame();
gameState = GameState.GAME_OVER;
handlerState = new Finished(this);
} }
/** /**
* Transitions the game state to GAME_CANCELED. * Transitions the game state to GAME_CANCELED.
*/ */
void cancelGame() { void cancelGame() {
gameState.cancelGame(); handlerState.cancelGame();
} }
/** /**
@@ -59,7 +75,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) {
gameState.chooseCard(c); handlerState.chooseCard(c);
} }
/** /**
@@ -68,21 +84,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) {
gameState.chooseSuit(suit); handlerState.chooseSuit(suit);
} }
/** /**
* Lets the player skip a round. * Lets the player skip a round.
**/ **/
void skip() { void skip() {
gameState.skip(); handlerState.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() {
gameState.no7(); handlerState.no7();
} }
/** /**
@@ -142,18 +158,33 @@ class ActionHandler {
return gameState; return gameState;
} }
void setGameState(GameState gameState) {
this.gameState = gameState;
}
/** /**
* Checks if a card can be played by the current player in the current state. * Checks if a card can be played by the current player in the current state.
* *
* @param c The card being played. * @param c The card being played.
* @return True if the card can be played, false otherwise. * @return True if the card can be played, false otherwise.
*/ */
boolean canPlay(Card c) { public boolean canPlay(Card c) {
//TODO implement if (ctr7 == 0 || c.rank() == Rank.SEVEN) {
return false;
if (chosenSuit == null) {
if (c.rank() == Rank.JACK) {
return true;
} else if (c.rank() == game.getCardHandler().getDiscardPile().getFirst().rank()) {
return true;
} else if (c.suit() == game.getCardHandler().getDiscardPile().getFirst().suit()) {
return true;
}
}
}
if (c.suit() == chosenSuit) {
return true;
}
else {
return false;
}
} }
} }

View File

@@ -1,10 +1,21 @@
package cards.maumau.model; package cards.maumau.model;
public class Canceled implements GameState{ import cards.Card;
import cards.Suit;
public class Canceled implements HandlerState {
private final ActionHandler handler; private final ActionHandler handler;
Canceled(ActionHandler handler) { Canceled(ActionHandler handler) {
this.handler = handler; this.handler = handler;
} }
public void addPlayer(Player player){}
public void startGame(){}
public void cancelGame(){}
public void chooseCard(Card c){}
public void chooseSuit(Suit suit){}
public void skip(){}
public void no7(){}
} }

View File

@@ -9,7 +9,7 @@ import java.util.List;
/** /**
* Manages the draw pile and discard pile in a MauMau game. * Manages the draw pile and discard pile in a MauMau game.
*/ */
class CardHandler { public class CardHandler {
private final MauMau game; private final MauMau game;
private final int numCardsPerPlayer; private final int numCardsPerPlayer;
private final List<Card> drawPile = new LinkedList<>(); private final List<Card> drawPile = new LinkedList<>();
@@ -73,7 +73,7 @@ class CardHandler {
* Deals cards to all players. * Deals cards to all players.
* @throws Exception when there are not enough cards to satisfy starting conditions * @throws Exception when there are not enough cards to satisfy starting conditions
*/ */
void dealCards() throws Exception { public void dealCards() throws Exception {
// get List of players // get List of players
List<Player> players = game.getPlayers(); List<Player> players = game.getPlayers();
@@ -119,7 +119,7 @@ class CardHandler {
* *
* @return The top card of the discard pile. * @return The top card of the discard pile.
*/ */
Card top() { public Card top() {
return discardPile.getFirst(); return discardPile.getFirst();
} }
} }

View File

@@ -1,9 +1,20 @@
package cards.maumau.model; package cards.maumau.model;
public class Finished implements GameState{ import cards.Card;
import cards.Suit;
public class Finished implements HandlerState{
private final ActionHandler handler; private final ActionHandler handler;
Finished(ActionHandler handler) { Finished(ActionHandler handler) {
this.handler = handler; this.handler = handler;
} }
public void addPlayer(Player player){}
public void startGame(){}
public void cancelGame(){}
public void chooseCard(Card c){}
public void chooseSuit(Suit suit){}
public void skip(){}
public void no7(){}
} }

View File

@@ -1,17 +1,29 @@
package cards.maumau.model; package cards.maumau.model;
import cards.Card; /**
import cards.Suit; * Represents the state of the Mau-Mau game.
*/
public enum GameState {
interface GameState { /**
void addPlayer(Player player); * The game has been initialized, but has not yet started.
void startGame(); */
void finishGame(); GAME_INITIALIZED,
void cancelGame(); /**
void chooseCard(Card c); * The game is over. The final ranking of players can be
void chooseSuit(Suit suit); * obtained using {@link MauMau#getRanking()}.
void skip(); */
void no7(); GAME_OVER,
// boolean canPlay(Card c); /**
* 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
} }

View File

@@ -0,0 +1,16 @@
package cards.maumau.model;
import cards.Card;
import cards.Suit;
public interface HandlerState {
void addPlayer(Player player);
void startGame();
void cancelGame();
void chooseCard(Card c);
void chooseSuit(Suit suit);
void skip();
void no7();
}

View File

@@ -3,7 +3,7 @@ package cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Suit; import cards.Suit;
public class Initialized implements GameState { public class Initialized implements HandlerState {
private final ActionHandler handler; private final ActionHandler handler;
@@ -19,13 +19,15 @@ public class Initialized implements GameState {
public void startGame() { public void startGame() {
try { try {
handler.getGame().getCardHandler().dealCards(); handler.getGame().getCardHandler().dealCards();
handler.setGameState(new Normal(handler)); handler.setGameState(GameState.PLAY);
handler.setHandlerState(new Normal(handler));
} catch (Exception e) { } catch (Exception e) {
handler.setGameState(new Canceled(handler)); System.err.println("Not enough Cards!");
handler.setGameState(GameState.GAME_CANCELED);
handler.setHandlerState(new Canceled(handler));
} }
} }
public void finishGame(){}
public void cancelGame(){} public void cancelGame(){}
public void chooseCard(Card c){} public void chooseCard(Card c){}
public void chooseSuit(Suit suit){} public void chooseSuit(Suit suit){}

View File

@@ -3,7 +3,7 @@ package cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Suit; import cards.Suit;
public class JackChosen implements GameState{ public class JackChosen implements HandlerState{
private final ActionHandler handler; private final ActionHandler handler;
JackChosen(ActionHandler handler) { JackChosen(ActionHandler handler) {
@@ -14,12 +14,13 @@ public class JackChosen implements GameState{
public void chooseSuit(Suit suit){ public void chooseSuit(Suit suit){
handler.setChosenSuit(suit); handler.setChosenSuit(suit);
handler.setGameState(new SuitChosen(handler)); handler.getGame().getPlayerHandler().nextTurn(1);
handler.setGameState(GameState.PLAY);
handler.setHandlerState(new SuitChosen(handler));
} }
public void startGame(){} public void startGame(){}
public void addPlayer(Player player){} public void addPlayer(Player player){}
public void finishGame(){}
public void cancelGame(){} public void cancelGame(){}
public void chooseCard(Card c){} public void chooseCard(Card c){}
public void skip(){} public void skip(){}

View File

@@ -78,7 +78,7 @@ public class MauMau {
* *
* @return The action handler. * @return The action handler.
*/ */
ActionHandler getActionHandler() { public ActionHandler getActionHandler() {
return actionHandler; return actionHandler;
} }

View File

@@ -1,9 +1,42 @@
package cards.maumau.model; package cards.maumau.model;
public class Normal implements GameState{ import cards.Card;
import cards.Rank;
import cards.Suit;
public class Normal implements HandlerState {
private final ActionHandler handler; private final ActionHandler handler;
Normal(ActionHandler handler) { Normal(ActionHandler handler) {
this.handler = handler; this.handler = handler;
} }
public void addPlayer(Player player){}
public void startGame(){}
public void cancelGame(){}
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.setGameState(GameState.CHOOSE_SUIT);
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 skip(){
handler.getGame().getPlayerHandler().getCurrentPlayer().drawCards(1);
handler.getGame().getPlayerHandler().nextTurn(1);
}
public void no7(){}
} }

View File

@@ -56,12 +56,13 @@ public class PlayerHandler {
public void localNextTurn(int n) { public void localNextTurn(int n) {
for(int i = 0; i < n; i++){ for(int i = 0; i < n; i++){
players.addLast(players.getFirst()); players.addLast(players.removeFirst());
// players.removeFirst();
} }
} }
public void finishPlayer(Player p) { public void finishPlayer(Player p) {
ranking.addLast(players.removeFirst()); ranking.addLast(players.removeLast());
} }
public Player getCurrentPlayer() { public Player getCurrentPlayer() {
@@ -97,6 +98,6 @@ public class PlayerHandler {
} }
public void finishGame() { public void finishGame() {
finishPlayer(players.getFirst()); game.getActionHandler().finishGame();
} }
} }

View File

@@ -1,9 +1,39 @@
package cards.maumau.model; package cards.maumau.model;
public class SevenChosen implements GameState{ import cards.Card;
import cards.Suit;
public class SevenChosen implements HandlerState{
private final ActionHandler handler; private final ActionHandler handler;
SevenChosen(ActionHandler handler) { SevenChosen(ActionHandler handler) {
this.handler = handler; this.handler = handler;
} }
public void addPlayer(Player player){}
public void startGame(){}
public void cancelGame(){}
public void chooseCard(Card c){
if (handler.canPlay(c)) {
handler.getGame().getPlayerHandler().getCurrentPlayer().playCard(c);
handler.increment7Counter();
handler.getGame().getPlayerHandler().nextTurn(1);
}
}
public void chooseSuit(Suit suit){}
public void skip(){}
public void no7(){
if (handler.get7Counter() * 2 > handler.getGame().getCardHandler().getDrawPile().size()) {
handler.setGameState(GameState.GAME_CANCELED);
handler.setHandlerState(new Canceled(handler));
} else {
handler.getGame().getPlayerHandler().getCurrentPlayer().drawCards(2 * handler.get7Counter());
handler.reset7Counter();
handler.setHandlerState(new Normal(handler));
}
}
} }

View File

@@ -4,7 +4,7 @@ import cards.Card;
import cards.Suit; import cards.Suit;
import cards.Rank; import cards.Rank;
public class SuitChosen implements GameState{ public class SuitChosen implements HandlerState{
private final ActionHandler handler; private final ActionHandler handler;
SuitChosen(ActionHandler handler) { SuitChosen(ActionHandler handler) {
@@ -13,7 +13,6 @@ public class SuitChosen implements GameState{
public void addPlayer(Player player){} public void addPlayer(Player player){}
public void startGame(){} public void startGame(){}
public void finishGame(){}
public void cancelGame(){} public void cancelGame(){}
public void chooseCard(Card c){ public void chooseCard(Card c){
@@ -24,13 +23,13 @@ public class SuitChosen implements GameState{
if(c.rank() == Rank.SEVEN) { if(c.rank() == Rank.SEVEN) {
handler.increment7Counter(); handler.increment7Counter();
handler.getGame().getPlayerHandler().nextTurn(1); handler.getGame().getPlayerHandler().nextTurn(1);
handler.setGameState(new SevenChosen(handler)); handler.setHandlerState(new SevenChosen(handler));
} else if (c.rank() == Rank.EIGHT) { } else if (c.rank() == Rank.EIGHT) {
handler.getGame().getPlayerHandler().nextTurn(2); handler.getGame().getPlayerHandler().nextTurn(2);
handler.setGameState(new Normal(handler)); handler.setHandlerState(new Normal(handler));
} else { } else {
handler.getGame().getPlayerHandler().nextTurn(1); handler.getGame().getPlayerHandler().nextTurn(1);
handler.setGameState(new Normal(handler)); handler.setHandlerState(new Normal(handler));
} }
} }

View File

@@ -10,9 +10,19 @@ public class WaitForMauMauState implements PlayerState {
@Override @Override
public void nextTurn(int n) { public void nextTurn(int n) {
// Draw a card and proceed to next turn // Draw a card and proceed to next turn
handler.getCurrentPlayer().drawCards(1); handler.getRemember().drawCards(1);
handler.localNextTurn(n); if (handler.getCurrentPlayer().getCards().isEmpty()) {
handler.setCurrentState(handler.getWaitForNextTurnState()); handler.setRemember(handler.getCurrentPlayer());
handler.localNextTurn(n);
handler.setCurrentState(handler.getWaitForMauMauState());
} else if (handler.getCurrentPlayer().getCards().size() == 1) {
handler.setRemember(handler.getCurrentPlayer());
handler.localNextTurn(n);
handler.setCurrentState(handler.getWaitForMauState());
} else {
handler.localNextTurn(n);
handler.setCurrentState(handler.getWaitForNextTurnState());
}
} }
@Override @Override
@@ -23,13 +33,20 @@ public class WaitForMauMauState implements PlayerState {
@Override @Override
public void maumau(Player p) { public void maumau(Player p) {
if (p == handler.getRemember()) { if (p == handler.getRemember()) {
handler.finishPlayer(p); handler.finishPlayer(p);
if (handler.getPlayers().size() == 1) { if (handler.getPlayers().size() == 1) {
handler.finishPlayer(handler.getCurrentPlayer());
handler.finishGame(); handler.finishGame();
handler.setCurrentState(handler.getFinishedState()); handler.setCurrentState(handler.getFinishedState());
} else { } else {
handler.setCurrentState(handler.getWaitForNextTurnState()); handler.setCurrentState(handler.getWaitForNextTurnState());
} }
} }
} }
} }

View File

@@ -10,15 +10,25 @@ public class WaitForMauState implements PlayerState {
@Override @Override
public void nextTurn(int n) { public void nextTurn(int n) {
// Draw a card and proceed to next turn // Draw a card and proceed to next turn
handler.getCurrentPlayer().drawCards(1); handler.getRemember().drawCards(1);
handler.localNextTurn(n); if (handler.getCurrentPlayer().getCards().isEmpty()) {
handler.setCurrentState(handler.getWaitForNextTurnState()); handler.setRemember(handler.getCurrentPlayer());
handler.localNextTurn(n);
handler.setCurrentState(handler.getWaitForMauMauState());
} else if (handler.getCurrentPlayer().getCards().size() == 1) {
handler.setRemember(handler.getCurrentPlayer());
handler.localNextTurn(n);
handler.setCurrentState(handler.getWaitForMauState());
} else {
handler.localNextTurn(n);
handler.setCurrentState(handler.getWaitForNextTurnState());
}
} }
@Override @Override
public void mau(Player p) { public void mau(Player p) {
if (p == handler.getRemember()) { if (p == handler.getRemember()) {
handler.setCurrentState(handler.getWaitForMauMauState()); handler.setCurrentState(handler.getWaitForNextTurnState());
} }
} }

View File

@@ -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());
} }
} }

View File

@@ -1,7 +1,11 @@
package cards; package test.cards;
import org.junit.Test; import org.junit.Test;
import cards.Card;
import cards.Rank;
import cards.Suit;
import static cards.Rank.THREE; import static cards.Rank.THREE;
import static cards.Rank.TWO; import static cards.Rank.TWO;
import static cards.Suit.HEARTS; import static cards.Suit.HEARTS;

View File

@@ -1,4 +1,4 @@
package cards; package test.cards;
import org.junit.Test; import org.junit.Test;

View File

@@ -1,4 +1,4 @@
package cards; package test.cards;
import org.junit.Test; import org.junit.Test;

View File

@@ -1,8 +1,10 @@
package cards.maumau; package test.cards.maumau;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.MauMauDeck;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;

View File

@@ -1,8 +1,11 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;
@@ -35,7 +38,12 @@ public class CardHandlerTest {
final Player chantal = game.addPlayer("Chantal"); final Player chantal = game.addPlayer("Chantal");
assertTrue(jacqueline.getCards().isEmpty()); assertTrue(jacqueline.getCards().isEmpty());
assertTrue(chantal.getCards().isEmpty()); assertTrue(chantal.getCards().isEmpty());
game.getCardHandler().dealCards(); try {
game.getCardHandler().dealCards();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
assertEquals("[J♦, Q♦, A♠, A♦, 8♦]", jacqueline.getCards().toString()); assertEquals("[J♦, Q♦, A♠, A♦, 8♦]", jacqueline.getCards().toString());
assertEquals("[7♣, 9♣, 9♠, 8♣, K♥]", chantal.getCards().toString()); assertEquals("[7♣, 9♣, 9♠, 8♣, K♥]", chantal.getCards().toString());
assertEquals(c(ACE, HEARTS), game.getCardHandler().top()); assertEquals(c(ACE, HEARTS), game.getCardHandler().top());

View File

@@ -1,8 +1,13 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Normal;
import cards.maumau.model.Player;
import cards.maumau.model.SevenChosen;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;
@@ -147,8 +152,10 @@ public class MauMau1Test {
assertNull(game.getChosenSuit()); assertNull(game.getChosenSuit());
assertEquals(0, game.get7Counter()); assertEquals(0, game.get7Counter());
assertEquals(Normal.class, game.getActionHandler().getHandlerState().getClass());
chantal.skip(); chantal.skip();
assertEquals(PLAY, game.getGameState()); assertEquals(PLAY, game.getGameState());
assertEquals(Normal.class, game.getActionHandler().getHandlerState().getClass());
assertEquals(List.of(jacqueline, chantal), game.getPlayers()); assertEquals(List.of(jacqueline, chantal), game.getPlayers());
assertEquals(List.of(), game.getRanking()); assertEquals(List.of(), game.getRanking());
assertEquals("[A♦]", jacqueline.getCards().toString()); assertEquals("[A♦]", jacqueline.getCards().toString());

View File

@@ -1,8 +1,11 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Normal;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;
@@ -24,6 +27,7 @@ import static cards.maumau.model.GameState.GAME_OVER;
import static cards.maumau.model.GameState.PLAY; import static cards.maumau.model.GameState.PLAY;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
public class MauMau2Test { public class MauMau2Test {
private static Card c(Rank r, Suit s) { private static Card c(Rank r, Suit s) {
@@ -184,17 +188,22 @@ public class MauMau2Test {
assertEquals(List.of(jacqueline, chantal), game.getPlayers()); assertEquals(List.of(jacqueline, chantal), game.getPlayers());
assertEquals(List.of(), game.getRanking()); assertEquals(List.of(), game.getRanking());
assertEquals("[Q♠, Q♣]", jacqueline.getCards().toString()); assertEquals("[Q♠, Q♣]", jacqueline.getCards().toString());
// assertEquals("[Q♣]", jacqueline.getCards().toString());
assertEquals("[8♥]", chantal.getCards().toString()); assertEquals("[8♥]", chantal.getCards().toString());
assertEquals("[9♥, K♣, 7♣, J♦, 9♦, A♣, 8♠, 10♦, J♠, J♥, J♣, 10♥, K♥, Q♥, 7♥, 7♦, 8♣, 9♣, 9♠]", game.getDrawPile().toString()); assertEquals("[9♥, K♣, 7♣, J♦, 9♦, A♣, 8♠, 10♦, J♠, J♥, J♣, 10♥, K♥, Q♥, 7♥, 7♦, 8♣, 9♣, 9♠]", game.getDrawPile().toString());
assertEquals("[Q♦, K♦, 8♦, A♦, A♥, A♠, K♠, 7♠, 10♠, 10♣]", game.getDiscardPile().toString()); assertEquals("[Q♦, K♦, 8♦, A♦, A♥, A♠, K♠, 7♠, 10♠, 10♣]", game.getDiscardPile().toString());
assertNull(game.getChosenSuit()); assertNull(game.getChosenSuit());
assertEquals(0, game.get7Counter()); assertEquals(0, game.get7Counter());
// assertEquals("[Q♣]", jacqueline.getCards().toString());
// assertEquals(Normal.class, game.getActionHandler().getHandlerState().getClass());
assertTrue(game.getActionHandler().canPlay(c(QUEEN, SPADES)));
jacqueline.chooseCard(c(QUEEN, SPADES)); jacqueline.chooseCard(c(QUEEN, SPADES));
assertEquals(PLAY, game.getGameState()); assertEquals(PLAY, game.getGameState());
assertEquals(List.of(chantal, jacqueline), game.getPlayers()); assertEquals(List.of(chantal, jacqueline), game.getPlayers());
assertEquals(List.of(), game.getRanking()); assertEquals(List.of(), game.getRanking());
assertEquals("[8♥]", chantal.getCards().toString()); assertEquals("[8♥]", chantal.getCards().toString());
// assertEquals(Normal.class, game.getActionHandler().getHandlerState().getClass());
assertEquals("[Q♣]", jacqueline.getCards().toString()); assertEquals("[Q♣]", jacqueline.getCards().toString());
assertEquals("[9♥, K♣, 7♣, J♦, 9♦, A♣, 8♠, 10♦, J♠, J♥, J♣, 10♥, K♥, Q♥, 7♥, 7♦, 8♣, 9♣, 9♠]", game.getDrawPile().toString()); assertEquals("[9♥, K♣, 7♣, J♦, 9♦, A♣, 8♠, 10♦, J♠, J♥, J♣, 10♥, K♥, Q♥, 7♥, 7♦, 8♣, 9♣, 9♠]", game.getDrawPile().toString());
assertEquals("[Q♠, Q♦, K♦, 8♦, A♦, A♥, A♠, K♠, 7♠, 10♠, 10♣]", game.getDiscardPile().toString()); assertEquals("[Q♠, Q♦, K♦, 8♦, A♦, A♥, A♠, K♠, 7♠, 10♠, 10♣]", game.getDiscardPile().toString());

View File

@@ -1,8 +1,10 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;

View File

@@ -1,8 +1,10 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;
@@ -24,7 +26,9 @@ import static cards.maumau.model.GameState.GAME_INITIALIZED;
import static cards.maumau.model.GameState.GAME_OVER; import static cards.maumau.model.GameState.GAME_OVER;
import static cards.maumau.model.GameState.PLAY; import static cards.maumau.model.GameState.PLAY;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
public class MauMau4Test { public class MauMau4Test {
private static Card c(Rank r, Suit s) { private static Card c(Rank r, Suit s) {
@@ -126,6 +130,7 @@ public class MauMau4Test {
assertEquals(0, game.get7Counter()); assertEquals(0, game.get7Counter());
chantal.chooseCard(c(JACK, SPADES)); chantal.chooseCard(c(JACK, SPADES));
assertFalse(game.getActionHandler().canPlay(c(JACK, SPADES)));
assertEquals(PLAY, game.getGameState()); assertEquals(PLAY, game.getGameState());
assertEquals(List.of(chantal, jacqueline), game.getPlayers()); assertEquals(List.of(chantal, jacqueline), game.getPlayers());
assertEquals(List.of(), game.getRanking()); assertEquals(List.of(), game.getRanking());

View File

@@ -1,8 +1,10 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;

View File

@@ -1,8 +1,10 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;

View File

@@ -1,8 +1,10 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;

View File

@@ -1,8 +1,10 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;

View File

@@ -1,8 +1,10 @@
package cards.maumau.model; package test.cards.maumau.model;
import cards.Card; import cards.Card;
import cards.Rank; import cards.Rank;
import cards.Suit; import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test; import org.junit.Test;
import java.util.List; import java.util.List;