diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java index d77c945..549d5fb 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Cards/TribeCards/EventCard.java @@ -23,6 +23,11 @@ public abstract class EventCard extends TribeCard { @Override public abstract TribeCard clone(); + @Override + public String toString() { + return super.toString()+" "+type.toString(); + } + public abstract void activateEvent (ArrayList playerList); // End Functions } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/GamePackage/Board.java b/src/main/java/it/polimi/ingsw/gc14/Model/GamePackage/Board.java index 764eb47..aa71197 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/GamePackage/Board.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/GamePackage/Board.java @@ -55,6 +55,14 @@ public class Board { return slotList.stream().map(x->new Slot(x.getSlotId())).collect(Collectors.toList()); } + /** + * @return the size of the TribeDeck + */ + public int getTribeDeckSize() { + return this.tribeDeck.size(); + } + + /** * Creates and initialize a new board: * - Generate the slotList using a method of DecksCreator @@ -71,7 +79,7 @@ public class Board { upperListTribe=new ArrayList<>(); lowerListTribe=new ArrayList<>(); lowerListBuilding=new ArrayList<>(); - tribeDeck=getTribeDeck(nTotem); + tribeDeck=generateTribeDeck(nTotem); era=1; for(int i=0;i getTribeDeck(int nPlayers) { + private Queue generateTribeDeck(int nPlayers) { ArrayList era1= DecksCreator.loadTribeDeckByEra(1).stream().filter(x->x.getNMin()<=nPlayers).collect(Collectors.toCollection(ArrayList::new)); ArrayList era2= DecksCreator.loadTribeDeckByEra(2).stream().filter(x->x.getNMin()<=nPlayers).collect(Collectors.toCollection(ArrayList::new)); ArrayList era3= DecksCreator.loadTribeDeckByEra(3).stream().filter(x->x.getNMin()<=nPlayers).collect(Collectors.toCollection(ArrayList::new)); @@ -185,6 +193,7 @@ public class Board { public int nextRound() { lowerListTribe.clear(); lowerListTribe.addAll(upperListTribe); + upperListTribe.clear(); for(int i=0;i card.IsEventCard())); // Verifica che non ci siano EventCard dentro alla lista inferiore + + assertEquals(numPlayer+4, bd.upperListTribe.size()); // Verifica che la dimensione della lista superiore sia corretta + + assertEquals(2, bd.upperListBuilding.size()); // Verifica che ci sia il giusto numero di buildings (2 edifici per 3+ giocatori) + } + + @Test + @DisplayName("get events testing") void getPendingEvents() { + Board bd = new Board(0); + + Queue eventQueue = new LinkedList<>(); + for (TribeCard card : bd.lowerListTribe) { + if (card.IsEventCard()) { + eventQueue.add((EventCard) card); + } + } + + assertEquals(eventQueue, bd.getPendingEvents()); } @Test - void containsUpperTribeCard() { - } - - @Test + @DisplayName("Removing a card from upper row of tribe cards") void removeUpperTribeCard() { + Board bd = new Board(3); + + List before = bd.upperListTribe; + TribeCard cardToRemove = before.get(2); + + before.remove(2); + bd.removeUpperTribeCard(cardToRemove); + + assertEquals(before, bd.upperListTribe); } @Test - void containsLowerTribeCard() { - } - - @Test + @DisplayName("Removing a card from lower row of tribe cards") void removeLowerTribeCard() { + Board bd = new Board(3); + + List before = bd.lowerListTribe; + TribeCard cardToRemove = before.get(2); + + before.remove(2); + bd.removeLowerTribeCard(cardToRemove); + + assertEquals(before, bd.lowerListTribe); } @Test - void containsUpperBuildingCard() { - } - - @Test + @DisplayName("RemgetTribeDeckSizeoving a card from upper row of building cards") void removeUpperBuildingCard() { + Board bd = new Board(3); + + List before = bd.upperListBuilding; + BuildingCard cardToRemove = before.get(0); + + before.remove(0); + bd.removeUpperBuildingCard(cardToRemove); + + assertEquals(before, bd.upperListBuilding); } @Test - void containsLowerBuildingCard() { - } - - @Test + @DisplayName("Removing a card from lower row of building cards") void removeLowerBuildingCard() { + Board bd = new Board(3); + bd.lowerListBuilding.add(new BuildingCard(2, 1, 5, 10)); + bd.lowerListBuilding.add(new BuildingCard(3, 2, 2, 1)); + + + List before = bd.lowerListBuilding; + BuildingCard cardToRemove = before.get(0); + + before.remove(0); + bd.removeUpperBuildingCard(cardToRemove); + + assertEquals(before, bd.lowerListBuilding); } @Test + @DisplayName("Testing next round") void nextRound() { + int numPlayer = 3; + Board bd = new Board(numPlayer); + assertTrue(!bd.lowerListTribe.isEmpty()); + List upperListBefore = new ArrayList<>(bd.upperListTribe); + + bd.nextRound(); + assertEquals(upperListBefore, bd.lowerListTribe); // Verifica che la lista superiore รจ stata spostata sotto + assertNotEquals(upperListBefore, bd.upperListTribe); // Verifica che la lista superiore sia stata cambiata + assertEquals(numPlayer+4, bd.upperListTribe.size()); // Verifica che la nuova dimensione della lista superiore sia corretta } + } \ No newline at end of file