diff --git a/src/main/java/it/polimi/ingsw/gc14/GameEventProcessor.java b/src/main/java/it/polimi/ingsw/gc14/GameEventProcessor.java index 7916e91..f6f6f9c 100644 --- a/src/main/java/it/polimi/ingsw/gc14/GameEventProcessor.java +++ b/src/main/java/it/polimi/ingsw/gc14/GameEventProcessor.java @@ -349,7 +349,7 @@ public class GameEventProcessor { * @return a new {@link ArrayList} of disconnected usernames. */ private ArrayList buildDisconnectedList(Game game) { - return game.disconnectedPlayers.entrySet().stream() + return game.getDisconnectedPlayers().entrySet().stream() .filter(Map.Entry::getValue) .map(e -> e.getKey().getUserName()) .collect(Collectors.toCollection(ArrayList::new)); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/DecksCreator.java b/src/main/java/it/polimi/ingsw/gc14/Model/DecksCreator.java index 4f5b10b..91642bf 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/DecksCreator.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/DecksCreator.java @@ -53,7 +53,7 @@ public class DecksCreator { InputStream is = DecksCreator.class.getResourceAsStream(resourcePath); if (is == null) { - throw new RuntimeException("File non trovato: " + resourcePath); + throw new RuntimeException("Resource file not found: " + resourcePath); } try (Reader reader = new InputStreamReader(is)) { @@ -64,7 +64,7 @@ public class DecksCreator { } return cards; } catch (IOException e) { - throw new RuntimeException("Errore caricamento mazzo: " + resourcePath, e); + throw new RuntimeException("Error loading deck: " + resourcePath, e); } } @@ -94,7 +94,7 @@ public class DecksCreator { InputStream is = DecksCreator.class.getResourceAsStream(resourcePath); if (is == null) { - throw new RuntimeException("File non trovato: " + resourcePath); + throw new RuntimeException("Resource file not found: " + resourcePath); } try (Reader reader = new InputStreamReader(is)) { @@ -105,7 +105,7 @@ public class DecksCreator { } return cards; } catch (IOException e) { - throw new RuntimeException("Errore caricamento mazzo: " + resourcePath, e); + throw new RuntimeException("Error loading deck: " + resourcePath, e); } } @@ -143,7 +143,7 @@ public class DecksCreator { case "Hunt" -> new Hunt(def.id,era,p[0]); case "CavePaintings" -> new CavePaintings(def.id,era,p[0],p[1],p[2]); case "ShamanicRitual" -> new ShamanicRitual(def.id,era,p[0],p[1]); - default -> throw new IllegalArgumentException("Tipo sconosciuto: " + def.type); + default -> throw new IllegalArgumentException("Unknown event type: " + def.type); }; } return switch (def.type) { @@ -153,29 +153,29 @@ public class DecksCreator { case "Builder" -> switch (p.length) { case 2 -> new Builder(def.id,era, p[0], p[1]); case 3 -> new Builder(def.id,era, p[0], p[1], p[2]); - default -> throw new IllegalArgumentException("Builder: parametri non validi"); + default -> throw new IllegalArgumentException("Builder: invalid parameters"); }; case "Gatherer" -> switch (p.length) { case 0 -> new Gatherer(def.id,era); case 1 -> new Gatherer(def.id,era, p[0]); - default -> throw new IllegalArgumentException("Gatherer: parametri non validi"); + default -> throw new IllegalArgumentException("Gatherer: invalid parameters"); }; case "Artist" -> switch (p.length) { case 0 -> new Artist(def.id,era); case 1 -> new Artist(def.id,era, p[0]); - default -> throw new IllegalArgumentException("Artist: parametri non validi"); + default -> throw new IllegalArgumentException("Artist: invalid parameters"); }; case "Inventor" -> switch (p.length) { case 1 -> new Inventor(def.id,era, p[0]); case 2 -> new Inventor(def.id,era, p[0], p[1]); - default -> throw new IllegalArgumentException("Inventor: parametri non validi"); + default -> throw new IllegalArgumentException("Inventor: invalid parameters"); }; case "Shaman" -> switch (p.length) { case 1 -> new Shaman(def.id,era, p[0]); case 2 -> new Shaman(def.id,era, p[0], p[1]); - default -> throw new IllegalArgumentException("Shaman: parametri non validi"); + default -> throw new IllegalArgumentException("Shaman: invalid parameters"); }; - default -> throw new IllegalArgumentException("Tipo sconosciuto: " + def.type); + default -> throw new IllegalArgumentException("Unknown card type: " + def.type); }; } @@ -212,7 +212,7 @@ public class DecksCreator { int era; boolean armed; boolean isEvent; - List params; // Object per gestire boolean e int misti + List params; // Object to support mixed boolean and numeric parameters from JSON } /** @@ -225,6 +225,6 @@ public class DecksCreator { int era; int price; int prestigeValue; - List params; // Object per gestire boolean e int misti + List params; // Object to support mixed boolean and numeric parameters from JSON } } \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java index e687390..23a85c8 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java @@ -84,7 +84,7 @@ public class Game implements Serializable { * @return {@code true} if the choice is applied successfully, {@code false} otherwise. */ public synchronized boolean totemChoice(Player player,Totems totem) { - if(!currentState.getGameStage().equals(GameStages.TOTEM_CHOICE)) + if(currentState.getGameStage() != GameStages.TOTEM_CHOICE) return false; if(!getCurrentState().getCurrentPlayer().equals(player)) return false; @@ -120,8 +120,18 @@ public class Game implements Serializable { /** * Map tracking the players who are currently disconnected. + * Key: player; value: {@code true} if currently disconnected, {@code false} if reconnected. */ - public Map disconnectedPlayers = new HashMap<>(); + private Map disconnectedPlayers = new HashMap<>(); + + /** + * Returns an unmodifiable view of the disconnected-players map. + * + * @return map from player to disconnection status. + */ + public Map getDisconnectedPlayers() { + return Collections.unmodifiableMap(disconnectedPlayers); + } /** * Marks the specified player as disconnected and updates the game flow accordingly. @@ -142,13 +152,13 @@ public class Game implements Serializable { return false; } disconnectedPlayers.put(player,true); - if (currentState.getGameStage().equals(GameStages.WAITING)) { + if (currentState.getGameStage() == GameStages.WAITING) { playersList.remove(player); totemChoiceQueue.remove(player); return true; } if(currentState.getCurrentPlayer().equals(player)) { - if (!currentState.getGameStage().equals(GameStages.TOTEM_CHOICE)) { + if (currentState.getGameStage() != GameStages.TOTEM_CHOICE) { nextPlayerSetup(); return true; } @@ -184,15 +194,15 @@ public class Game implements Serializable { return false; } disconnectedPlayers.put(player,false); - if(currentState.getGameStage().equals(GameStages.SLOT_CHOICE) ) + if(currentState.getGameStage() == GameStages.SLOT_CHOICE) { disconnectedPlayers.remove(player); - if(!orderLogicCard.players.contains(player)) + if(!orderLogicCard.containsInQueue(player)) { orderLogicCard.pushNoEffect(player); } } - else if(currentState.getGameStage().equals(GameStages.RES_ACTIONS)) { + else if(currentState.getGameStage() == GameStages.RES_ACTIONS) { if(slotMap.containsValue(player)) { disconnectedPlayers.remove(player); @@ -247,7 +257,7 @@ public class Game implements Serializable { /** * The queue of players involved in optional card resolution. */ - private Queue OptionalCardQueue; + private Queue optionalCardQueue; /** * The order logic card associated with this game. @@ -274,39 +284,39 @@ public class Game implements Serializable { public Board getBoard() {return board;} /** - * Returns clones of the upper tribe cards currently available on the board. + * Returns a copy of the upper tribe cards currently available on the board. * - * @return a list containing clones of the upper tribe cards currently available on the board. + * @return a new list containing the upper tribe cards currently on the board. */ - public ArrayListgetUpperListTribeCards() { - return (ArrayList)board.upperListTribe; + public ArrayList getUpperListTribeCards() { + return new ArrayList<>(board.getUpperListTribe()); } /** - * Returns clones of the lower tribe cards currently available on the board. + * Returns a copy of the lower tribe cards currently available on the board. * - * @return a list containing clones of the lower tribe cards currently available on the board. + * @return a new list containing the lower tribe cards currently on the board. */ - public ArrayListgetLowerListTribeCards() { - return (ArrayList )board.lowerListTribe; + public ArrayList getLowerListTribeCards() { + return new ArrayList<>(board.getLowerListTribe()); } /** - * Returns clones of the upper building cards currently available on the board. + * Returns a copy of the upper building cards currently available on the board. * - * @return a list containing clones of the upper building cards currently available on the board. + * @return a new list containing the upper building cards currently on the board. */ - public ArrayListgetUpperListBuilding() { - return (ArrayList)board.upperListBuilding; + public ArrayList getUpperListBuilding() { + return new ArrayList<>(board.getUpperListBuilding()); } /** - * Returns clones of the lower building cards currently available on the board. + * Returns a copy of the lower building cards currently available on the board. * - * @return a list containing clones of the lower building cards currently available on the board. + * @return a new list containing the lower building cards currently on the board. */ - public ArrayListgetLowerListBuilding() { - return (ArrayList) board.lowerListBuilding; + public ArrayList getLowerListBuilding() { + return new ArrayList<>(board.getLowerListBuilding()); } /** @@ -316,7 +326,7 @@ public class Game implements Serializable { */ public CurrentState getCurrentState() { return currentState; - }; + } /** * Returns the player with the specified username, if present. @@ -357,7 +367,7 @@ public class Game implements Serializable { } currentState= new CurrentState(); playersList = new ArrayList<>(); - OptionalCardQueue = new LinkedList<>(); + optionalCardQueue = new LinkedList<>(); } /** @@ -482,7 +492,7 @@ public class Game implements Serializable { * @return {@code true} if the draw succeeds, {@code false} otherwise. */ public boolean drawUpperTribeCardByIndex(Player player,int cardIndex) { - if( cardIndex<0 || cardIndex >=board.upperListTribe.size()) + if( cardIndex<0 || cardIndex >=board.getUpperListTribe().size()) return false; if(currentState.getGameStage()!= GameStages.RES_ACTIONS && currentState.getGameStage()!=GameStages.OPT_CARD_E) { @@ -494,7 +504,7 @@ public class Game implements Serializable { } if(currentState.getNUpper() <1 && currentState.getGameStage()==GameStages.RES_ACTIONS) return false; - TribeCard tribeCard = board.upperListTribe.get(cardIndex); + TribeCard tribeCard = board.getUpperListTribe().get(cardIndex); if(tribeCard.isEventCard()) return false; @@ -525,7 +535,7 @@ public class Game implements Serializable { * @return {@code true} if the skip succeeds, {@code false} otherwise. */ public boolean skipTurn(Player player) { - if(currentState.getGameStage()!= GameStages.RES_ACTIONS && !currentState.getGameStage().equals(GameStages.OPT_CARD_E)) + if(currentState.getGameStage() != GameStages.RES_ACTIONS && currentState.getGameStage() != GameStages.OPT_CARD_E) { return false; } @@ -565,7 +575,7 @@ public class Game implements Serializable { * @return {@code true} if the draw succeeds, {@code false} otherwise. */ public boolean drawLowerTribeCardByIndex(Player player, int cardIndex) { - if( cardIndex<0 || cardIndex >=board.lowerListTribe.size()) + if( cardIndex<0 || cardIndex >=board.getLowerListTribe().size()) return false; if(currentState.getGameStage()!= GameStages.RES_ACTIONS) { @@ -579,7 +589,7 @@ public class Game implements Serializable { if(currentState.getNLower() <1) return false; - TribeCard tribeCard = board.lowerListTribe.get(cardIndex); + TribeCard tribeCard = board.getLowerListTribe().get(cardIndex); if(tribeCard.isEventCard()) return false; @@ -606,7 +616,7 @@ public class Game implements Serializable { * @return {@code true} if the draw succeeds, {@code false} otherwise. */ public boolean drawUpperBuildingCardByIndex(Player player,int cardIndex) { - if( cardIndex<0 || cardIndex >=board.upperListBuilding.size()) + if( cardIndex<0 || cardIndex >=board.getUpperListBuilding().size()) return false; if(currentState.getGameStage()!= GameStages.RES_ACTIONS && currentState.getGameStage()!=GameStages.OPT_CARD_E) { @@ -616,7 +626,7 @@ public class Game implements Serializable { { return false; } - BuildingCard buildingCard = board.upperListBuilding.get(cardIndex); + BuildingCard buildingCard = board.getUpperListBuilding().get(cardIndex); if(currentState.getNUpper() <1 && currentState.getGameStage()==GameStages.RES_ACTIONS) return false; if(!buildingCard.buy(player)) @@ -624,7 +634,7 @@ public class Game implements Serializable { return false; } board.removeUpperBuildingCard(buildingCard); - if(currentState.getGameStage().equals(GameStages.RES_ACTIONS)) + if(currentState.getGameStage() == GameStages.RES_ACTIONS) { currentState.upperDrawn(); if((currentState.getNLower() ==0 ||( !hasDrawableDown() && getLowerListBuilding().isEmpty())) && ((currentState.getNUpper() ==0)||(!hasDrawableUp() && getUpperListBuilding().isEmpty()))) @@ -650,7 +660,7 @@ public class Game implements Serializable { * @return {@code true} if the draw succeeds, {@code false} otherwise. */ public boolean drawLowerBuildingCardByIndex(Player player,int cardIndex) { - if( cardIndex<0 || cardIndex >=board.lowerListBuilding.size()) + if( cardIndex<0 || cardIndex >=board.getLowerListBuilding().size()) return false; if(currentState.getGameStage()!= GameStages.RES_ACTIONS) { @@ -661,7 +671,7 @@ public class Game implements Serializable { { return false; } - BuildingCard buildingCard = board.lowerListBuilding.get(cardIndex); + BuildingCard buildingCard = board.getLowerListBuilding().get(cardIndex); if(currentState.getNLower() <1) return false; if(buildingCard.buy(player)) @@ -788,7 +798,7 @@ public class Game implements Serializable { } if (GameStages.OPT_CARD_E == currentState.getGameStage()) { - Player optionalPlayer = OptionalCardQueue.poll(); + Player optionalPlayer = optionalCardQueue.poll(); if (optionalPlayer != null) { currentState.playerUpdate(optionalPlayer, null); @@ -821,7 +831,7 @@ public class Game implements Serializable { private synchronized void transitionToOptionalOrNextRound() { currentState.gameStageUpdate(GameStages.OPT_CARD_E); - OptionalCardQueue = new LinkedList<>(); + optionalCardQueue = new LinkedList<>(); for (Player p :playersList) { long count = p.getBuildingCards().stream().filter(x -> x.getEffectId() == 12).count(); if (count > 0) { @@ -829,11 +839,11 @@ public class Game implements Serializable { { continue; } - OptionalCardQueue.add(p); + optionalCardQueue.add(p); } } - Player optionalPlayer = OptionalCardQueue.poll(); + Player optionalPlayer = optionalCardQueue.poll(); if (optionalPlayer != null) { currentState.playerUpdate(optionalPlayer, null); @@ -847,8 +857,7 @@ public class Game implements Serializable { orderLogicCard.pushNoEffect(entry.getKey()); disconnectedPlayers.remove(entry.getKey()); } else { - orderLogicCard.players.removeIf(x -> x.equals(entry.getKey())); - orderLogicCard.playerList.removeIf(x -> x.player.equals(entry.getKey())); + orderLogicCard.removeFromQueue(entry.getKey()); } } currentState.playerUpdate(orderLogicCard.pull(), null); @@ -927,7 +936,7 @@ public class Game implements Serializable { */ private void endGame() { Queue events; - events=Stream.concat(board.lowerListTribe.stream().filter(TribeCard::isEventCard),board.upperListTribe.stream().filter(TribeCard::isEventCard)).map(x->((EventCard)x)).collect(Collectors.toCollection(LinkedList::new)); + events=Stream.concat(board.getLowerListTribe().stream().filter(TribeCard::isEventCard),board.getUpperListTribe().stream().filter(TribeCard::isEventCard)).map(x->((EventCard)x)).collect(Collectors.toCollection(LinkedList::new)); ArrayListsustenance=events.stream().filter(x->x.getType().equals(EventType.SUSTENANCE)).collect(Collectors.toCollection(ArrayList::new)); events.removeAll(sustenance); events.forEach(event->event.activateEvent(playersList)); @@ -985,7 +994,7 @@ public class Game implements Serializable { currentState = new CurrentState(); playersList = new ArrayList<>(); - OptionalCardQueue = new LinkedList<>(); + optionalCardQueue = new LinkedList<>(); return true; } 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 2b2bc3e..74802fc 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 @@ -29,20 +29,48 @@ public class Board implements Serializable { * The upper row of tribe cards. It contains a total of * {@code nTotem + 4} tribe cards, which may include both character and event cards. */ - public List upperListTribe; + private List upperListTribe; /** * The lower row of the tribe card. During the first round, there will be (num. of players + 1) character cards. * During the following rounds, lower row will be emptied and populated with upper row's cards. * When an Event card gets in the lower row, the event effect will be activated at the end of the round. */ - public List lowerListTribe; + private List lowerListTribe; - /** Contains all the building cards of the upper list. When a new era starts, all its building cards are placed here */ - public List upperListBuilding; + /** Contains all the building cards of the upper list. When a new era starts, all its building cards are placed here. */ + private List upperListBuilding; - /** Contains all the building cards of the lower list. When a new era starts, the old era's buildings are moved from the upper to the lower list */ - public List lowerListBuilding; + /** Contains all the building cards of the lower list. When a new era starts, the old era's buildings are moved from the upper to the lower list. */ + private List lowerListBuilding; + + /** + * Returns the upper row of tribe cards. + * + * @return the live upper tribe card list. + */ + public List getUpperListTribe() { return upperListTribe; } + + /** + * Returns the lower row of tribe cards. + * + * @return the live lower tribe card list. + */ + public List getLowerListTribe() { return lowerListTribe; } + + /** + * Returns the upper row of building cards. + * + * @return the live upper building card list. + */ + public List getUpperListBuilding() { return upperListBuilding; } + + /** + * Returns the lower row of building cards. + * + * @return the live lower building card list. + */ + public List getLowerListBuilding() { return lowerListBuilding; } private final ArrayList> buildingCardsAllEras; @@ -244,6 +272,7 @@ public class Board implements Serializable { for(int i=0;i(); + this.players = new LinkedHashMap<>(); this.availableTotems = availableTotems; this.standingPlayers = new ArrayList<>(); this.upperListTribeCards = upperListTribeCards; diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/OrderLogicCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/OrderLogicCard.java index d41a727..225fc2b 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/OrderLogicCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/OrderLogicCard.java @@ -20,12 +20,22 @@ public abstract class OrderLogicCard implements Serializable { /** * The queue of {@link Player Players} associated with this order logic card. */ - public Queue players; + private Queue players; /** - * The list of {@link Player Players} associated with this order logic card. + * The list of {@link OrderPlayer} entries tracking turn order and played status. + * Protected so subclasses can read it for display purposes (e.g., {@link #toString()}). */ - public List playerList; + protected List playerList; + + /** + * Returns an unmodifiable view of the player order list. + * + * @return the list of {@link OrderPlayer} entries in turn order. + */ + public List getPlayerList() { + return Collections.unmodifiableList(playerList); + } /** Total number of players in this game. */ protected final int nPlayers; @@ -33,15 +43,19 @@ public abstract class OrderLogicCard implements Serializable { /** * Creates an order logic card with the specified list of players. - * The input list is shuffled before being inserted into the queue. + * + *

The input list is shuffled in place to establish a random initial turn order. + * This is intentional: the caller's list (typically {@code Game.playersList}) is + * reordered so that the game's canonical player sequence reflects the randomised order. * * @param players the list of players associated with this order logic card. + * The list is mutated (shuffled) by this constructor. */ public OrderLogicCard(ArrayList players) { Collections.shuffle(players); this.players = new LinkedList<>(players); nPlayers = players.size(); - this.playerList=new ArrayList<>(players.stream().map(x->new OrderPlayer(x,false)).toList()); + this.playerList = new ArrayList<>(players.stream().map(x -> new OrderPlayer(x, false)).toList()); } /** @@ -50,16 +64,13 @@ public abstract class OrderLogicCard implements Serializable { * * @param player the player to be pushed into the queue. */ - public void push(Player player){ - effect(player,players.size()); - if(players.size()==0) - { + public void push(Player player) { + effect(player, players.size()); + if (players.size() == 0) { playerList.clear(); } - playerList.add(new OrderPlayer(player,false)); + playerList.add(new OrderPlayer(player, false)); players.add(player); - - } /** @@ -70,10 +81,10 @@ public abstract class OrderLogicCard implements Serializable { * * @param player the player to be pushed into the queue. */ - public void pushNoEffect(Player player){ - players.removeIf(x->player.getUserName().equals(x.getUserName())); - playerList.removeIf(x->player.getUserName().equals(x.player.getUserName())); - playerList.add(new OrderPlayer(player,false)); + public void pushNoEffect(Player player) { + players.removeIf(x -> player.getUserName().equals(x.getUserName())); + playerList.removeIf(x -> player.getUserName().equals(x.getPlayer().getUserName())); + playerList.add(new OrderPlayer(player, false)); players.add(player); } @@ -85,11 +96,10 @@ public abstract class OrderLogicCard implements Serializable { * * @return the first player in the queue, or {@code null} if the queue is empty. */ - public Player pull(){ - for(OrderPlayer p:playerList){ - if(p.played==false) - { - p.played=true; + public Player pull() { + for (OrderPlayer p : playerList) { + if (!p.isPlayed()) { + p.markAsPlayed(); break; } } @@ -122,10 +132,30 @@ public abstract class OrderLogicCard implements Serializable { * * @param player the player to whom the building effect is applied. */ - protected void buildingEffect(Player player) - { - for(BuildingCard b : player.getBuildingCards().stream().filter(x->x.getEffectId()==3).toList()) - player.addFood(1); + protected void buildingEffect(Player player) { + long count = player.getBuildingCards().stream().filter(x -> x.getEffectId() == 3).count(); + player.addFood((int) count); + } + + /** + * Returns whether the given player is currently present in the turn queue. + * + * @param player the player to look up. + * @return {@code true} if the player is in the queue; {@code false} otherwise. + */ + public boolean containsInQueue(Player player) { + return players.contains(player); + } + + /** + * Removes the given player from both the turn queue and the order list. + * No-op if the player is not present. + * + * @param player the player to remove. + */ + public void removeFromQueue(Player player) { + players.removeIf(x -> x.equals(player)); + playerList.removeIf(x -> x.getPlayer().equals(player)); } /** @@ -137,11 +167,10 @@ public abstract class OrderLogicCard implements Serializable { * username is present in the order list. * @see Player */ - public int getPosition(String username) - { + public int getPosition(String username) { int pos = 0; for (OrderPlayer p : playerList) { - if (p.player.getUserName().equals(username)) + if (p.getPlayer().getUserName().equals(username)) return pos; pos++; } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java index dc9eadc..88e4111 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order2.java @@ -70,10 +70,10 @@ public class Order2 extends OrderLogicCard { for(int i=0;i<2;i++) { try { - if(playerList.get(i).played) + if(playerList.get(i).isPlayed()) stringUp.add(""); else - stringUp.add(playerList.get(i).player.getTotem() != null ? playerList.get(i).player.getTotem().toString() : playerList.get(i).player.getUserName()); + stringUp.add(playerList.get(i).getPlayer().getTotem() != null ? playerList.get(i).getPlayer().getTotem().toString() : playerList.get(i).getPlayer().getUserName()); } catch (IndexOutOfBoundsException e) { stringUp.add(""); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java index 362b3f6..6ebf0b8 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java @@ -74,10 +74,10 @@ public class Order3 extends OrderLogicCard { for(int i=0;i<3;i++) { try { - if(playerList.get(i).played) + if(playerList.get(i).isPlayed()) stringUp.add(""); else - stringUp.add(i + ". " + (playerList.get(i).player.getTotem() != null ? playerList.get(i).player.getTotem().toString() : playerList.get(i).player.getUserName())); + stringUp.add(i + ". " + (playerList.get(i).getPlayer().getTotem() != null ? playerList.get(i).getPlayer().getTotem().toString() : playerList.get(i).getPlayer().getUserName())); } catch (IndexOutOfBoundsException e) { stringUp.add(""); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java index b377e5b..91c0838 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order4.java @@ -80,10 +80,10 @@ public class Order4 extends OrderLogicCard { for(int i=0;i<4;i++) { try { - if(playerList.get(i).played) + if(playerList.get(i).isPlayed()) stringUp.add(""); else - stringUp.add(i + ". " + (playerList.get(i).player.getTotem() != null ? playerList.get(i).player.getTotem().toString() : playerList.get(i).player.getUserName())); + stringUp.add(i + ". " + (playerList.get(i).getPlayer().getTotem() != null ? playerList.get(i).getPlayer().getTotem().toString() : playerList.get(i).getPlayer().getUserName())); } catch (IndexOutOfBoundsException e) { stringUp.add(""); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java index 433ab0d..720e1ab 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order5.java @@ -81,10 +81,10 @@ public class Order5 extends OrderLogicCard { for(int i=0;i<5;i++) { try { - if(playerList.get(i).played) + if(playerList.get(i).isPlayed()) stringUp.add(""); else - stringUp.add(i + ". " + (playerList.get(i).player.getTotem() != null ? playerList.get(i).player.getTotem().toString() : playerList.get(i).player.getUserName())); + stringUp.add(i + ". " + (playerList.get(i).getPlayer().getTotem() != null ? playerList.get(i).getPlayer().getTotem().toString() : playerList.get(i).getPlayer().getUserName())); } catch (IndexOutOfBoundsException e) { stringUp.add(""); diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/OrderPlayer.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/OrderPlayer.java index 67bb635..b218b52 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/OrderPlayer.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/OrderPlayer.java @@ -15,12 +15,37 @@ public class OrderPlayer implements Serializable { /** * The player associated with this order entry. */ - public Player player; + private final Player player; /** * Indicates whether the player has already played. */ - public boolean played; + private boolean played; + + /** + * Returns the player associated with this order entry. + * + * @return the player. + */ + public Player getPlayer() { + return player; + } + + /** + * Returns whether the player has already played in this order sequence. + * + * @return {@code true} if the player has played; {@code false} otherwise. + */ + public boolean isPlayed() { + return played; + } + + /** + * Marks this player as having played in the current order sequence. + */ + public void markAsPlayed() { + this.played = true; + } /** * Creates an order entry for the specified player. diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/PlayableCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/PlayableCard.java index dee2469..c256b0f 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/PlayableCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/PlayableCard.java @@ -39,13 +39,13 @@ public abstract class PlayableCard implements Serializable { /** * Creates a playable card with the specified era. * - * @param Era the era of the playable card. - * @throws IllegalArgumentException if {@code Era <= 0} or {@code Era >= 4}. + * @param era the era of the playable card. + * @throws IllegalArgumentException if {@code era <= 0} or {@code era >= 4}. */ - public PlayableCard (int Era) throws IllegalArgumentException{ - idIMG="-1"; - if (Era>0 && Era<4) { - this.era = Era; + public PlayableCard(int era) throws IllegalArgumentException { + idIMG = "-1"; + if (era > 0 && era < 4) { + this.era = era; } else { throw new IllegalArgumentException(); } @@ -55,22 +55,22 @@ public abstract class PlayableCard implements Serializable { * Creates a playable card with the specified image id and era. * * @param idIMG the image identifier of the playable card. - * @param Era the era of the playable card. - * @throws IllegalArgumentException if {@code Era <= 0} or {@code Era >= 4}. + * @param era the era of the playable card. + * @throws IllegalArgumentException if {@code era <= 0} or {@code era >= 4}. */ - public PlayableCard (String idIMG,int Era) throws IllegalArgumentException{ + public PlayableCard(String idIMG, int era) throws IllegalArgumentException { this.idIMG = idIMG; - if (Era>0 && Era<4) { - this.era = Era; + if (era > 0 && era < 4) { + this.era = era; } else { throw new IllegalArgumentException(); } } /** - * Returns the string representation of this playable card. + * Returns a string representation of this playable card. * - * @return the string representation of this playable card. + * @return a string representation of this playable card. */ @Override public String toString() { @@ -78,14 +78,11 @@ public abstract class PlayableCard implements Serializable { } /** - * Prints a string representation of this {@code PlayableCard}. This specific variation is used in the {@code Game}'s - * toString to print a more detailed version (in this specific case the two methods are equal). - * @return {@code String} - a string representation of this {@code PlayableCard}. - * @see it.polimi.ingsw.gc14.Model.Game Game - * @see it.polimi.ingsw.gc14.Model.GamePackage.Board Board + * Returns a compact string representation used when rendering the board in the TUI. + * + * @return a compact board representation of this card. */ - public String toStringBoard() - { + public String toStringBoard() { return ":"; } } diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java index e58217e..cc68b71 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java @@ -20,7 +20,7 @@ public class Player implements Serializable { /** * The maximum length allowed for the username string. */ - private static final int MAX_VALUE = 32; + private static final int MAX_USERNAME_LENGTH = 32; /** * Identifier for the {@code Player} when displaying the game through the GUI. @@ -135,11 +135,8 @@ public class Player implements Serializable { // region Setters /** - * Adds {@code Value} amount of {@code Food} to the Player. - * @param value The amount of {@code Food} to be added. - * Should be positive for expected results - * (otherwise the method will subtract the absolute - * value of {@code Value}). + * Adds {@code value} amount of Food to the Player. + * @param value The amount of Food to be added. Should be non-negative. * @see #foodValue */ public void addFood(int value){ @@ -156,20 +153,15 @@ public class Player implements Serializable { } /** - * Removes {@code Value} amount of {@code Food} from the Player. - * Note: {@link #foodValue} cannot be negative, so the method returns - * {@code false} if {@code Value} is greater than the amount of {@code Food} - * the Player possesses, and {@code true} otherwise. + * Removes {@code value} amount of Food from the Player. + * {@link #foodValue} cannot go negative: returns {@code false} if + * {@code value} exceeds the current food and leaves the value unchanged. * - * @param value The amount of {@code Food} to be removed. - * Should be positive for expected results - * (otherwise the method will add the absolute - * value of {@code Value}). - * @return {@code Boolean} - {@code true} if the Food is successfully removed, - * {@code false} otherwise. + * @param value The amount of Food to be removed. Should be non-negative. + * @return {@code true} if the Food is successfully removed, {@code false} otherwise. * @see #foodValue */ - public Boolean removeFood(int value){ + public boolean removeFood(int value){ if(value > this.foodValue){ return false; } @@ -178,28 +170,20 @@ public class Player implements Serializable { } /** - * Adds {@code Value} amount of {@code Prestige} to the Player. - * @param value The amount of {@code Prestige} to be added. - * Should be positive for expected results - * (otherwise the method will subtract the absolute - * value of {@code Value}). + * Adds {@code value} amount of Prestige to the Player. + * @param value The amount of Prestige to be added. Should be non-negative. * @see #prestigeValue */ public void addPrestige(int value){ - this.prestigeValue += value; } /** - * Removes {@code Value} amount of {@code Prestige} to the Player. - * @param value The amount of {@code Prestige} to be removed. - * Should be positive for expected results - * (otherwise the method will add the absolute - * value of {@code Value}). + * Removes {@code value} amount of Prestige from the Player. + * @param value The amount of Prestige to be removed. Should be non-negative. * @see #prestigeValue */ public void removePrestige(int value){ - this.prestigeValue -= value; } @@ -211,15 +195,15 @@ public class Player implements Serializable { * Constructor for the class {@code Player}. Each Player is uniquely identified by the {@link #userName}. * * @param userName Unique String identifier for a Player. - * @throws IllegalArgumentException when {@code UserName} is empty or exceeds {@link #MAX_VALUE}, + * @throws IllegalArgumentException when {@code userName} is empty or exceeds {@link #MAX_USERNAME_LENGTH}, * with message: *

{@code UserName is empty or exceeds maximum permitted length.}
* * @see #userName - * @see #MAX_VALUE + * @see #MAX_USERNAME_LENGTH */ public Player(String userName) throws IllegalArgumentException { - if(userName.isEmpty() || userName.length() > MAX_VALUE) { + if(userName.isEmpty() || userName.length() > MAX_USERNAME_LENGTH) { throw new IllegalArgumentException("UserName is empty or exceeds maximum permitted length."); } this.userName = userName; diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java b/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java index 4f38c85..f99ee1a 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Slot.java @@ -80,9 +80,6 @@ public class Slot implements Serializable { } // End getters - // Setters - // End setters - // Constructors /** @@ -157,15 +154,15 @@ public class Slot implements Serializable { /** - * Prints a string representation of this {@code Slot}. This specific variation is used in the {@code Game}'s - * toString to print a more detailed version for the TUI implementation. - *

includes: - *

  • {@link #slotId SlotId} - *
  • {@link #NUpper NUpper} - *
  • {@link #NLower NLower} - *
  • {@link #Food Food} - *

    - * @return {@code String} - a string representation of this {@code Slot}. + * Returns a compact string representation of this {@code Slot} for the TUI. + *

    Includes: + *

      + *
    • {@link #slotId}
    • + *
    • {@link #nUpper} (shown as ▲ symbols)
    • + *
    • {@link #nLower} (shown as ▼ symbols)
    • + *
    • {@link #food} (if non-zero)
    • + *
    + * @return a compact TUI string representation of this {@code Slot}. * @see it.polimi.ingsw.gc14.Model.Game Game * @see it.polimi.ingsw.gc14.Model.GamePackage.Board Board */ @@ -179,8 +176,6 @@ public class Slot implements Serializable { return s.toString(); } - // End Constructors - // Functions @Override diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java b/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java index 498b098..390528e 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java @@ -129,7 +129,7 @@ public class RMIServer extends UnicastRemoteObject implements IGameServer { System.out.println("Reconnected player: " + username); startWatchdog(username); Game game = controller.getModel(); - callback.onGameInit(new MiniModel(game.getSlotMap(), game.getOrderLogicCard(), game.getCurrentState(), game.getPlayers(), game.getAvailableTotems(), game.getUpperListTribeCards(), game.getLowerListTribeCards(), game.getUpperListBuilding(), game.getLowerListBuilding(), game.disconnectedPlayers.entrySet().stream().filter(Map.Entry::getValue).map(x -> x.getKey().getUserName()).collect(Collectors.toCollection(ArrayList::new)))); + callback.onGameInit(new MiniModel(game.getSlotMap(), game.getOrderLogicCard(), game.getCurrentState(), game.getPlayers(), game.getAvailableTotems(), game.getUpperListTribeCards(), game.getLowerListTribeCards(), game.getUpperListBuilding(), game.getLowerListBuilding(), game.getDisconnectedPlayers().entrySet().stream().filter(Map.Entry::getValue).map(x -> x.getKey().getUserName()).collect(Collectors.toCollection(ArrayList::new)))); System.out.println("Model sent: " + username); actionQueue.add(new ReconnectPlayer(username)); return null; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java index 867266b..04585c2 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java @@ -266,7 +266,7 @@ public class TCPServer { game.getCurrentState(), game.getPlayers(), game.getAvailableTotems(), - game.getUpperListTribeCards(), game.getLowerListTribeCards(), game.getUpperListBuilding(), game.getLowerListBuilding(), game.disconnectedPlayers.entrySet().stream().filter(Map.Entry::getValue).map(x -> x.getKey().getUserName()).collect(Collectors.toCollection(ArrayList::new)) + game.getUpperListTribeCards(), game.getLowerListTribeCards(), game.getUpperListBuilding(), game.getLowerListBuilding(), game.getDisconnectedPlayers().entrySet().stream().filter(Map.Entry::getValue).map(x -> x.getKey().getUserName()).collect(Collectors.toCollection(ArrayList::new)) )); Thread thread = new Thread(handler); diff --git a/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java b/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java index 3303a5e..0d61748 100644 --- a/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java +++ b/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java @@ -98,7 +98,7 @@ public class ServerLauncher { game.getPlayers(), game.getAvailableTotems(), game.getUpperListTribeCards(), game.getLowerListTribeCards(), game.getUpperListBuilding(), game.getLowerListBuilding(), - game.disconnectedPlayers.entrySet().stream() + game.getDisconnectedPlayers().entrySet().stream() .filter(Map.Entry::getValue) .map(e -> e.getKey().getUserName()) .collect(Collectors.toCollection(ArrayList::new)) @@ -161,7 +161,7 @@ public class ServerLauncher { Game game = saveManager.load(); if (game == null) return; - long disconnectedCount = game.disconnectedPlayers.entrySet().stream() + long disconnectedCount = game.getDisconnectedPlayers().entrySet().stream() .filter(Map.Entry::getValue).count(); if (disconnectedCount >= game.getNPlayers() - 1) { @@ -173,7 +173,7 @@ public class ServerLauncher { gameController.setModel(game); playerList.setLimit(game.getNPlayers()); - for (Map.Entry entry : game.disconnectedPlayers.entrySet()) { + for (Map.Entry entry : game.getDisconnectedPlayers().entrySet()) { if (entry.getValue()) { playerList.put(entry.getKey().getUserName(), false); } diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java index 30f6b1e..30a71a4 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java @@ -608,16 +608,16 @@ public class MainFXMLController { overlay.setPickOnBounds(false); overlay.setMouseTransparent(true); - for (int i = 0; i < controller.miniModel.orderLogicCard.playerList.size(); i++) { - OrderPlayer op = controller.miniModel.orderLogicCard.playerList.get(i); + for (int i = 0; i < controller.miniModel.orderLogicCard.getPlayerList().size(); i++) { + OrderPlayer op = controller.miniModel.orderLogicCard.getPlayerList().get(i); // Carica immagine totem come in createSlot ImageView totem = new ImageView(loadImage( - "/GUIImages/Totems/totem_" + op.player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png" + "/GUIImages/Totems/totem_" + op.getPlayer().getTotem().toString().toLowerCase(Locale.ROOT) + ".png" )); totem.setPreserveRatio(true); - if (op.played) { + if (op.isPlayed()) { totem.setVisible(false); } diff --git a/src/test/java/it/polimi/ingsw/gc14/Controller/GameControllerTest.java b/src/test/java/it/polimi/ingsw/gc14/Controller/GameControllerTest.java index 579c316..d861afe 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Controller/GameControllerTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Controller/GameControllerTest.java @@ -263,8 +263,8 @@ class GameControllerTest { assertTrue(controller.disconnectedPlayer(current.getUserName())); - assertTrue(game.disconnectedPlayers.containsKey(current)); - assertTrue(game.disconnectedPlayers.get(current)); + assertTrue(game.getDisconnectedPlayers().containsKey(current)); + assertTrue(game.getDisconnectedPlayers().get(current)); } @Test diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/GamePackage/BoardTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/GamePackage/BoardTest.java index a316ac8..476b426 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/GamePackage/BoardTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/GamePackage/BoardTest.java @@ -75,7 +75,7 @@ class BoardTest { Board bd3 = new Board(3); Board bd4 = new Board(4); Board bd5 = new Board(5); - for(TribeCard tribe : bd2.upperListTribe) + for(TribeCard tribe : bd2.getUpperListTribe()) { System.out.println(tribe.getIdIMG() +" "+tribe.toStringBoard()); assertNotEquals("-1",tribe.getIdIMG()); @@ -102,12 +102,12 @@ class BoardTest { assertEquals(96 - (numPlayer+4) - (numPlayer+1), bd.getTribeDeckSize()); // Verifica che dal mazzo TribeDeck venga pescato il numero corretto di carte - assertEquals(numPlayer+1, bd.lowerListTribe.size()); // Verifica che la dimensione della lista inferiore sia corretta - assertTrue(bd.lowerListTribe.stream().noneMatch(card -> card.isEventCard())); // Verifica che non ci siano EventCard dentro alla lista inferiore + assertEquals(numPlayer+1, bd.getLowerListTribe().size()); // Verifica che la dimensione della lista inferiore sia corretta + assertTrue(bd.getLowerListTribe().stream().noneMatch(card -> 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(numPlayer+4, bd.getUpperListTribe().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) + assertEquals(2, bd.getUpperListBuilding().size()); // Verifica che ci sia il giusto numero di buildings (2 edifici per 3+ giocatori) } @Test @@ -116,7 +116,7 @@ class BoardTest { Board bd = new Board(0); Queue eventQueue = new LinkedList<>(); - for (TribeCard card : bd.lowerListTribe) { + for (TribeCard card : bd.getLowerListTribe()) { if (card.isEventCard()) { eventQueue.add((EventCard) card); } @@ -130,13 +130,13 @@ class BoardTest { void removeUpperTribeCard() { Board bd = new Board(3); - List before = new ArrayList<>( bd.upperListTribe); + List before = new ArrayList<>( bd.getUpperListTribe()); TribeCard cardToRemove = before.get(0); assertEquals(cardToRemove, before.remove(0)); assertTrue( bd.removeUpperTribeCard(cardToRemove)); - assertEquals(before, bd.upperListTribe); + assertEquals(before, bd.getUpperListTribe()); } @Test @@ -144,13 +144,13 @@ class BoardTest { void removeLowerTribeCard() { Board bd = new Board(3); - List before = new ArrayList<>(bd.lowerListTribe); + List before = new ArrayList<>(bd.getLowerListTribe()); TribeCard cardToRemove = before.get(0); assertEquals(cardToRemove, before.remove(0)); assertTrue( bd.removeLowerTribeCard(cardToRemove)); - assertEquals(before, bd.lowerListTribe); + assertEquals(before, bd.getLowerListTribe()); } @Test @@ -158,13 +158,13 @@ class BoardTest { void removeUpperBuildingCard() { Board bd = new Board(3); - List before = new ArrayList<>(bd.upperListBuilding); + List before = new ArrayList<>(bd.getUpperListBuilding()); BuildingCard cardToRemove = before.get(0); assertEquals(cardToRemove, before.remove(0)); assertTrue( bd.removeUpperBuildingCard(cardToRemove)); - assertEquals(before, bd.upperListBuilding); + assertEquals(before, bd.getUpperListBuilding()); } @Test @@ -176,11 +176,11 @@ class BoardTest { bd.nextRound(); // Skip to era 2 } - List before = new ArrayList<>( bd.lowerListBuilding); + List before = new ArrayList<>( bd.getLowerListBuilding()); BuildingCard cardToRemove = before.get(0); assertEquals(cardToRemove, before.remove(0)); assertTrue(bd.removeLowerBuildingCard(cardToRemove)); - assertEquals(before, bd.lowerListBuilding); + assertEquals(before, bd.getLowerListBuilding()); } @Test @@ -188,13 +188,13 @@ class BoardTest { void nextRound() { int numPlayer = 3; Board bd = new Board(numPlayer); - assertTrue(!bd.lowerListTribe.isEmpty()); - List upperListBefore = new ArrayList<>(bd.upperListTribe); + assertTrue(!bd.getLowerListTribe().isEmpty()); + List upperListBefore = new ArrayList<>(bd.getUpperListTribe()); 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 + assertEquals(upperListBefore, bd.getLowerListTribe()); // Verifica che la lista superiore è stata spostata sotto + assertNotEquals(upperListBefore, bd.getUpperListTribe()); // Verifica che la lista superiore sia stata cambiata + assertEquals(numPlayer+4, bd.getUpperListTribe().size()); // Verifica che la nuova dimensione della lista superiore sia corretta } @Test @@ -209,31 +209,31 @@ class BoardTest { // Era 2, nTotem <= 3 numPlayer = 3; Board bd1 = new Board(numPlayer); - upperListBefore = new ArrayList<>(bd1.upperListBuilding); + upperListBefore = new ArrayList<>(bd1.getUpperListBuilding()); for (int i=0;i<3;i++) { bd1.nextRound(); // Skip to era 2 } assertEquals(2, bd1.getEra()); - assertEquals(upperListBefore, bd1.lowerListBuilding); - assertNotEquals(upperListBefore, bd1.upperListBuilding); - assertEquals(2, bd1.upperListBuilding.size()); - assertTrue(bd1.upperListBuilding.stream().allMatch(x->x.getEra()==2)); - assertTrue(bd1.lowerListBuilding.stream().allMatch(x->x.getEra()==1)); + assertEquals(upperListBefore, bd1.getLowerListBuilding()); + assertNotEquals(upperListBefore, bd1.getUpperListBuilding()); + assertEquals(2, bd1.getUpperListBuilding().size()); + assertTrue(bd1.getUpperListBuilding().stream().allMatch(x->x.getEra()==2)); + assertTrue(bd1.getLowerListBuilding().stream().allMatch(x->x.getEra()==1)); // Era 2, nTotem > 3 numPlayer = 4; Board bd2 = new Board(numPlayer); - upperListBefore = new ArrayList<>(bd2.upperListBuilding); + upperListBefore = new ArrayList<>(bd2.getUpperListBuilding()); for (int i=0;i<3;i++) { bd2.nextRound(); // Skip to era 2 } assertEquals(2, bd2.getEra()); - assertEquals(upperListBefore, bd2.lowerListBuilding); - assertNotEquals(upperListBefore, bd2.upperListBuilding); - assertEquals(3, bd2.upperListBuilding.size()); - assertTrue(bd2.upperListBuilding.stream().allMatch(x->x.getEra()==2)); - assertTrue(bd2.lowerListBuilding.stream().allMatch(x->x.getEra()==1)); + assertEquals(upperListBefore, bd2.getLowerListBuilding()); + assertNotEquals(upperListBefore, bd2.getUpperListBuilding()); + assertEquals(3, bd2.getUpperListBuilding().size()); + assertTrue(bd2.getUpperListBuilding().stream().allMatch(x->x.getEra()==2)); + assertTrue(bd2.getLowerListBuilding().stream().allMatch(x->x.getEra()==1)); // Era 3, nTotem == 2 numPlayer = 2; @@ -241,16 +241,16 @@ class BoardTest { for (int i=0;i<3;i++) { bd3.nextRound(); // Skip to era 2 } - upperListBefore = new ArrayList<>(bd3.upperListBuilding); // We need to take the list of the era 2 + upperListBefore = new ArrayList<>(bd3.getUpperListBuilding()); // We need to take the list of the era 2 for (int i=0;i<3;i++) { bd3.nextRound(); // Skip to era 3 } assertEquals(3, bd3.getEra()); - assertEquals(upperListBefore, bd3.lowerListBuilding); - assertNotEquals(upperListBefore, bd3.upperListBuilding); - assertEquals(3, bd3.upperListBuilding.size()); - assertTrue(bd3.upperListBuilding.stream().allMatch(x->x.getEra()==3)); - assertTrue(bd3.lowerListBuilding.stream().allMatch(x->x.getEra()==2)); + assertEquals(upperListBefore, bd3.getLowerListBuilding()); + assertNotEquals(upperListBefore, bd3.getUpperListBuilding()); + assertEquals(3, bd3.getUpperListBuilding().size()); + assertTrue(bd3.getUpperListBuilding().stream().allMatch(x->x.getEra()==3)); + assertTrue(bd3.getLowerListBuilding().stream().allMatch(x->x.getEra()==2)); // Era 3, nTotem == 5 @@ -259,16 +259,16 @@ class BoardTest { for (int i=0;i<3;i++) { bd4.nextRound(); // Skip to era 2 } - upperListBefore = new ArrayList<>(bd4.upperListBuilding); // We need to take the list of the era 2 + upperListBefore = new ArrayList<>(bd4.getUpperListBuilding()); // We need to take the list of the era 2 for (int i=0;i<3;i++) { bd4.nextRound(); // Skip to era 3 } assertEquals(3, bd4.getEra()); - assertEquals(upperListBefore, bd4.lowerListBuilding); - assertNotEquals(upperListBefore, bd4.upperListBuilding); - assertEquals(5, bd4.upperListBuilding.size()); - assertTrue(bd4.upperListBuilding.stream().allMatch(x->x.getEra()==3)); - assertTrue(bd4.lowerListBuilding.stream().allMatch(x->x.getEra()==2)); + assertEquals(upperListBefore, bd4.getLowerListBuilding()); + assertNotEquals(upperListBefore, bd4.getUpperListBuilding()); + assertEquals(5, bd4.getUpperListBuilding().size()); + assertTrue(bd4.getUpperListBuilding().stream().allMatch(x->x.getEra()==3)); + assertTrue(bd4.getLowerListBuilding().stream().allMatch(x->x.getEra()==2)); // Era 3, nTotem != 2, 5 @@ -277,16 +277,16 @@ class BoardTest { for (int i=0;i<3;i++) { bd5.nextRound(); // Skip to era 2 } - upperListBefore = new ArrayList<>(bd5.upperListBuilding); // We need to take the list of the era 2 + upperListBefore = new ArrayList<>(bd5.getUpperListBuilding()); // We need to take the list of the era 2 for (int i=0;i<3;i++) { bd5.nextRound(); // Skip to era 3 } assertEquals(3, bd5.getEra()); - assertEquals(upperListBefore, bd5.lowerListBuilding); - assertNotEquals(upperListBefore, bd5.upperListBuilding); - assertEquals(4, bd5.upperListBuilding.size()); - assertTrue(bd5.upperListBuilding.stream().allMatch(x->x.getEra()==3)); - assertTrue(bd5.lowerListBuilding.stream().allMatch(x->x.getEra()==2)); + assertEquals(upperListBefore, bd5.getLowerListBuilding()); + assertNotEquals(upperListBefore, bd5.getUpperListBuilding()); + assertEquals(4, bd5.getUpperListBuilding().size()); + assertTrue(bd5.getUpperListBuilding().stream().allMatch(x->x.getEra()==3)); + assertTrue(bd5.getLowerListBuilding().stream().allMatch(x->x.getEra()==2)); } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/GameTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/GameTest.java index c4881ec..668d85d 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/GameTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/GameTest.java @@ -1341,8 +1341,8 @@ class GameTest { assertTrue(game.disconnectedPlayer(current)); - assertTrue(game.disconnectedPlayers.containsKey(current)); - assertTrue(game.disconnectedPlayers.get(current)); + assertTrue(game.getDisconnectedPlayers().containsKey(current)); + assertTrue(game.getDisconnectedPlayers().get(current)); assertNotEquals(current, game.getCurrentState().getCurrentPlayer()); } @@ -1367,10 +1367,10 @@ class GameTest { Player current = game.getCurrentState().getCurrentPlayer(); assertTrue(game.disconnectedPlayer(current)); - assertTrue(game.disconnectedPlayers.containsKey(current)); + assertTrue(game.getDisconnectedPlayers().containsKey(current)); assertTrue(game.reconnectPlayer(current)); - assertFalse(game.disconnectedPlayers.containsKey(current)); + assertFalse(game.getDisconnectedPlayers().containsKey(current)); } @Test @@ -1382,11 +1382,11 @@ class GameTest { Player current = game.getCurrentState().getCurrentPlayer(); assertTrue(game.disconnectedPlayer(current)); - assertFalse(game.disconnectedPlayers.isEmpty()); + assertFalse(game.getDisconnectedPlayers().isEmpty()); game.clearDisconnected(); - assertTrue(game.disconnectedPlayers.isEmpty()); + assertTrue(game.getDisconnectedPlayers().isEmpty()); } @Test