Compare commits

..

2 Commits

Author SHA1 Message Date
4b574c50e8 aufgabe 5 state pattern 2024-06-18 21:25:33 +00:00
2638ca09b6 refactored testing 2024-06-18 20:02:50 +00:00
38 changed files with 87 additions and 33 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.

View File

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

View File

@ -1,5 +1,6 @@
package cards.maumau.model;
import cards.Card;
import cards.Suit;
@ -11,8 +12,8 @@ class ActionHandler {
private Suit chosenSuit;
private int ctr7 = 0;
private GameState gameState;
private HandlerState handlerState;
private GameState gameState = GameState.GAME_INITIALIZED;
private HandlerState handlerState = new Initialized(this);
/**
* Constructs an ActionHandler for the specified MauMau game.
@ -37,7 +38,7 @@ class ActionHandler {
* @param player The player to be added to the game.
*/
void addPlayer(Player player) {
//TODO implement
handlerState.addPlayer(player);
}
/**

View File

@ -73,7 +73,7 @@ public class CardHandler {
* Deals cards to all players.
* @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
List<Player> players = game.getPlayers();
@ -119,7 +119,7 @@ public class CardHandler {
*
* @return The top card of the discard pile.
*/
Card top() {
public Card top() {
return discardPile.getFirst();
}
}

View File

@ -1,6 +1,7 @@
package cards.maumau.model;
import cards.Card;
import cards.Rank;
import cards.Suit;
public class Normal implements HandlerState {
@ -12,15 +13,30 @@ public class Normal implements HandlerState {
public void addPlayer(Player player){}
public void startGame(){}
public void finishGame(){
// Logic for finishing Game ????
if (handler.getGame().getPlayerHandler().getPlayers().isEmpty()) {
handler.setHandlerState(new Finished(handler));
public void finishGame(){}
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.setHandlerState(new JackChosen(handler));
} else if (c.rank() == Rank.EIGHT) {
handler.getGame().getPlayerHandler().nextTurn(2);
} else {
handler.getGame().getPlayerHandler().nextTurn(1);
}
}
}
public void cancelGame(){}
public void chooseCard(Card c){}
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(){}
}

View File

@ -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) {
@ -14,9 +14,13 @@ public class WaitForNextTurnState implements PlayerState {
handler.setRemember(handler.getCurrentPlayer());
handler.localNextTurn(n);
handler.setCurrentState(handler.getWaitForMauMauState());
} else {
} 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());
}
}

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,11 @@
package cards.maumau.model;
package test.cards.maumau.model;
import cards.Card;
import cards.Rank;
import cards.Suit;
import cards.maumau.model.MauMau;
import cards.maumau.model.Player;
import org.junit.Test;
import java.util.List;
@ -35,7 +38,12 @@ public class CardHandlerTest {
final Player chantal = game.addPlayer("Chantal");
assertTrue(jacqueline.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("[7♣, 9♣, 9♠, 8♣, K♥]", chantal.getCards().toString());
assertEquals(c(ACE, HEARTS), game.getCardHandler().top());

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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