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 bef8cbd..8a79130 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Player.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Player.java @@ -3,10 +3,14 @@ package it.polimi.ingsw.gc14.Model; import it.polimi.ingsw.gc14.Model.Cards.BuildingCard; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.CharacterType; import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*; +import it.polimi.ingsw.gc14.View.TUI.AsciiTable; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; + +import static it.polimi.ingsw.gc14.View.TUI.BorderStyle.*; /** * Default Player class; contains all identifiers and methods needed. @@ -224,21 +228,47 @@ public class Player implements Serializable { // endregion constructors // region Functions - // TODO tostring usr + food + prestige \n tab foreach(characters.cards + spazio) @Override public String toString() { - String toPrint = ""; - toPrint = this.getUserName() - + ":\n\tFood: " + this.getFoodValue() - + "\n\tPrestige: " + this.getPrestigeValue() - + "\n\tArtists: " + this.artists.toString() - + "\n\tBuilders: " + this.builders.toString() - + "\n\tGatherers: " + this.gatherers.toString() - + "\n\tShamans: " + this.shamans.toString() - + "\n\tHunters: " + this.hunters.toString() - + "\n\tBuildings: " - + this.buildingCards.toString(); - return toPrint; + var table = new AsciiTable(UNICODE, 1); + + table.addHeader(this.getUserName()); + table.addRow("RESOURCES:"); + table.addRow("Food: " + this.getFoodValue()); + table.addSeparator(); + table.addRow("Prestige: " + this.getPrestigeValue()); + + + table.addRow("CHARACTERS:"); + if(!this.artists.isEmpty()){ + table.addRow("Artists: " + this.artists.toString()); + } + + if(!this.builders.isEmpty()){ + table.addRow("Builders: " + this.builders.toString()); + } + + if(!this.gatherers.isEmpty()){ + table.addRow("Gatherers: " + this.gatherers.toString()); + } + + if(!this.shamans.isEmpty()){ + table.addRow("Shamans: " + this.shamans.toString()); + } + + if(!this.hunters.isEmpty()){ + table.addRow("Hunters: " + this.hunters.toString()); + } + + //TODO fix ? + table.addSeparator(); + table.addRow("BUILDING CARDS:"); + + if(!this.buildingCards.isEmpty()){ + table.addRow("Buildings: " + this.buildingCards.toString()); + } + + return table.build(); } // endregion functions } diff --git a/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java b/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java index 79990ec..9696ec7 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java @@ -200,17 +200,14 @@ class PlayerTest { p.addPrestige(15); p.addFood(7); p.artists.add(new Artist(1)); + p.artists.add(new Artist(1)); + p.artists.add(new Artist(1)); + p.artists.add(new Artist(1)); + p.artists.add(new Artist(1)); + p.artists.add(new Artist(1)); p.artists.add(new Artist(2)); p.buildingCards.add(new BuildingCard(2, 1,2, 5)); p.buildingCards.add(new BuildingCard(2, 2,3, 6)); - assertEquals("test_usr:"+ "\n\t" + - "Food: 7" + "\n\t" + - "Prestige: 15" + "\n\t" + - "Artists: [Era:1 ARTIST, Era:2 ARTIST]" + "\n\t" + "Builders: []" + "\n\t" + - "Gatherers: []" + "\n\t" + - "Shamans: []" + "\n\t" + - "Hunters: []" + "\n\t" + - "Buildings: [Era:1 Price:2 Prestige:5, Era:2 Price:3 Prestige:6]", - p.toString()); + System.out.println(p.toString()); } } \ No newline at end of file