Merge pull request #51 from rubenpirreram/toString-fixes
To string fixes
This commit is contained in:
@@ -46,6 +46,6 @@ public class Building1 extends BuildingCard {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " Icon: " + this.icon.toString();
|
return super.toString() + " Icon: " + this.icon.toString().charAt(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,6 @@ public class Building11 extends BuildingCard {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " Icon: " + this.icon.toString();
|
return super.toString() + " Icon: " + this.icon.toString().charAt(0) + " MP: " + this.PrestigeMul;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -182,6 +182,6 @@ public class BuildingCard extends PlayableCard implements Cloneable , BuildingEf
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Era:"+String.valueOf(getEra())+" P:"+String.valueOf(getPrice())+" PR:"+String.valueOf(getPrestigeValue());
|
return "⎕:" + " ID:" + String.valueOf(getEffectId())+ " $:"+String.valueOf(getPrice())+" PV:"+String.valueOf(getPrestigeValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class Hunter extends Character {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
String toPrint = super.toString();
|
String toPrint = super.toString();
|
||||||
if(this.icon){
|
if(this.icon){
|
||||||
toPrint += " 🏹";
|
toPrint += " I";
|
||||||
}
|
}
|
||||||
return toPrint;
|
return toPrint;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class Shaman extends Character {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " ★: " + String.valueOf(icon);
|
return super.toString() + " *:" + String.valueOf(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -43,6 +43,6 @@ public abstract class PlayableCard implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "⌛:"+String.valueOf(Era);
|
return "⎕:";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,93 +1,93 @@
|
|||||||
package it.polimi.ingsw.gc14.View.TUI;
|
//package it.polimi.ingsw.gc14.View.TUI;
|
||||||
import it.polimi.ingsw.gc14.Model.Game;
|
//import it.polimi.ingsw.gc14.Model.Game;
|
||||||
|
//
|
||||||
public class TUI {
|
//public class TUI {
|
||||||
|
//
|
||||||
// ── dati di stato ───────────────────────────────────────────
|
// // ── dati di stato ───────────────────────────────────────────
|
||||||
private BorderStyle style = BorderStyle.UNICODE;
|
// private BorderStyle style = BorderStyle.UNICODE;
|
||||||
private Game model;
|
// private Game model;
|
||||||
// ── punto di ingresso ───────────────────────────────────────
|
// // ── punto di ingresso ───────────────────────────────────────
|
||||||
public String render() {
|
// public String render() {
|
||||||
var sb = new StringBuilder();
|
// var sb = new StringBuilder();
|
||||||
sb.append(renderHeader());
|
// sb.append(renderHeader());
|
||||||
sb.append(renderTurnOrder());
|
// sb.append(renderTurnOrder());
|
||||||
sb.append(renderOfferTrack());
|
// sb.append(renderOfferTrack());
|
||||||
sb.append(renderCardRows());
|
// sb.append(renderCardRows());
|
||||||
sb.append(renderTableaux());
|
// sb.append(renderTableaux());
|
||||||
sb.append(renderFooter());
|
// sb.append(renderFooter());
|
||||||
return sb.toString();
|
// return sb.toString();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// ── sezioni ─────────────────────────────────────────────────
|
// // ── sezioni ─────────────────────────────────────────────────
|
||||||
private String renderTurnOrder() {
|
// private String renderTurnOrder() {
|
||||||
var table = new AsciiTable(style, 4, 10); // 4 colonne, largh 10
|
// var table = new AsciiTable(style, 4, 10); // 4 colonne, largh 10
|
||||||
table.addRow(model.getPlayers().stream()
|
// table.addRow(model.getPlayers().stream()
|
||||||
.map(p -> + ". " + p.getUserName())
|
// .map(p -> + ". " + p.getUserName())
|
||||||
.toList());
|
// .toList());
|
||||||
table.addRow(state.getPlayers().stream()
|
// table.addRow(state.getPlayers().stream()
|
||||||
.map(p -> p.getTotemPosition() != null
|
// .map(p -> p.getTotemPosition() != null
|
||||||
? "totem: " + p.getTotemPosition()
|
// ? "totem: " + p.getTotemPosition()
|
||||||
: "(da piaz)")
|
// : "(da piaz)")
|
||||||
.toList());
|
// .toList());
|
||||||
return " TURN ORDER\n" + table.build() + "\n";
|
// return " TURN ORDER\n" + table.build() + "\n";
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
private String renderOfferTrack() {
|
// private String renderOfferTrack() {
|
||||||
var table = new AsciiTable(style, 5, 14);
|
// var table = new AsciiTable(style, 5, 14);
|
||||||
table.addRow(state.getOfferTiles().stream()
|
// table.addRow(state.getOfferTiles().stream()
|
||||||
.map(t -> t.getId() + ": " + t.getLabel()).toList());
|
// .map(t -> t.getId() + ": " + t.getLabel()).toList());
|
||||||
table.addRow(state.getOfferTiles().stream()
|
// table.addRow(state.getOfferTiles().stream()
|
||||||
.map(OfferTile::getRowsLabel).toList());
|
// .map(OfferTile::getRowsLabel).toList());
|
||||||
table.addRow(state.getOfferTiles().stream()
|
// table.addRow(state.getOfferTiles().stream()
|
||||||
.map(t -> state.getTotemOnTile(t.getId())).toList());
|
// .map(t -> state.getTotemOnTile(t.getId())).toList());
|
||||||
return " OFFER TRACK\n" + table.build() + "\n";
|
// return " OFFER TRACK\n" + table.build() + "\n";
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
private String renderCardRows() {
|
// private String renderCardRows() {
|
||||||
int cols = state.getTopRow().size();
|
// int cols = state.getTopRow().size();
|
||||||
var table = new AsciiTable(style, cols, 13);
|
// var table = new AsciiTable(style, cols, 13);
|
||||||
table.addRow(state.getTopRow().stream()
|
// table.addRow(state.getTopRow().stream()
|
||||||
.map(c -> "[" + c.getTypeLabel() + "]").toList());
|
// .map(c -> "[" + c.getTypeLabel() + "]").toList());
|
||||||
table.addRow(state.getTopRow().stream()
|
// table.addRow(state.getTopRow().stream()
|
||||||
.map(Card::getName).toList());
|
// .map(Card::getName).toList());
|
||||||
table.addSeparator();
|
// table.addSeparator();
|
||||||
table.addRow(state.getBotRow().stream()
|
// table.addRow(state.getBotRow().stream()
|
||||||
.map(c -> "[" + c.getTypeLabel() + "]").toList());
|
// .map(c -> "[" + c.getTypeLabel() + "]").toList());
|
||||||
table.addRow(state.getBotRow().stream()
|
// table.addRow(state.getBotRow().stream()
|
||||||
.map(Card::getName).toList());
|
// .map(Card::getName).toList());
|
||||||
return " CARTE IN GIOCO\n" + prefix("TOP ", "BOT ", table.build()) + "\n";
|
// return " CARTE IN GIOCO\n" + prefix("TOP ", "BOT ", table.build()) + "\n";
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
private String renderTableaux() {
|
// private String renderTableaux() {
|
||||||
var sb = new StringBuilder(" TABLEAU GIOCATORI\n\n");
|
// var sb = new StringBuilder(" TABLEAU GIOCATORI\n\n");
|
||||||
for (Player p : state.getPlayers()) {
|
// for (Player p : state.getPlayers()) {
|
||||||
String marker = p.isActive() ? ">>>" : " ";
|
// String marker = p.isActive() ? ">>>" : " ";
|
||||||
sb.append(String.format(" %s %s%s Food:%d PP:%d%n",
|
// sb.append(String.format(" %s %s%s Food:%d PP:%d%n",
|
||||||
marker, p.getName(),
|
// marker, p.getName(),
|
||||||
p.isActive() ? " [TUO TURNO]" : "",
|
// p.isActive() ? " [TUO TURNO]" : "",
|
||||||
p.getFood(), p.getPP()));
|
// p.getFood(), p.getPP()));
|
||||||
sb.append(renderPlayerTableau(p));
|
// sb.append(renderPlayerTableau(p));
|
||||||
sb.append("\n");
|
// sb.append("\n");
|
||||||
}
|
// }
|
||||||
return sb.toString();
|
// return sb.toString();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
private String renderPlayerTableau(Player p) {
|
// private String renderPlayerTableau(Player p) {
|
||||||
var table = new AsciiTable(style, 3, 14);
|
// var table = new AsciiTable(style, 3, 14);
|
||||||
table.addHeader("PERSONAGGI", "EDIFICI", "RISORSE");
|
// table.addHeader("PERSONAGGI", "EDIFICI", "RISORSE");
|
||||||
int rows = Math.max(p.getChars().size(),
|
// int rows = Math.max(p.getChars().size(),
|
||||||
Math.max(p.getBuildings().size(), 3));
|
// Math.max(p.getBuildings().size(), 3));
|
||||||
for (int i = 0; i < rows; i++) {
|
// for (int i = 0; i < rows; i++) {
|
||||||
String ch = i < p.getChars().size() ? p.getChars().get(i) : "";
|
// String ch = i < p.getChars().size() ? p.getChars().get(i) : "";
|
||||||
String bd = i < p.getBuildings().size() ? p.getBuildings().get(i) : "";
|
// String bd = i < p.getBuildings().size() ? p.getBuildings().get(i) : "";
|
||||||
String rs = switch (i) {
|
// String rs = switch (i) {
|
||||||
case 0 -> "Food: " + "O".repeat(p.getFood());
|
// case 0 -> "Food: " + "O".repeat(p.getFood());
|
||||||
case 1 -> "PP: " + p.getPP();
|
// case 1 -> "PP: " + p.getPP();
|
||||||
case 2 -> "Chars:" + p.getChars().size() + " Edif:" + p.getBuildings().size();
|
// case 2 -> "Chars:" + p.getChars().size() + " Edif:" + p.getBuildings().size();
|
||||||
default -> "";
|
// default -> "";
|
||||||
};
|
// };
|
||||||
table.addRow(ch, bd, rs);
|
// table.addRow(ch, bd, rs);
|
||||||
}
|
// }
|
||||||
return " " + table.build().replace("\n", "\n ");
|
// return " " + table.build().replace("\n", "\n ");
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.polimi.ingsw.gc14.Model;
|
package it.polimi.ingsw.gc14.Model;
|
||||||
|
|
||||||
|
import it.polimi.ingsw.gc14.Model.Cards.Building.Effects.*;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
|
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.CharacterType;
|
||||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*;
|
import it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters.*;
|
||||||
@@ -206,8 +207,38 @@ class PlayerTest {
|
|||||||
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.artists.add(new Artist(2));
|
||||||
|
p.builders.add(new Builder(2, 5, 1));
|
||||||
|
p.gatherers.add(new Gatherer(1, 3));
|
||||||
|
p.shamans.add(new Shaman(2, 3, 3));
|
||||||
|
p.shamans.add(new Shaman(2, 3, 4));
|
||||||
|
p.inventors.add(new Inventor(3, 1));
|
||||||
|
p.hunters.add(new Hunter(3, true));
|
||||||
|
p.hunters.add(new Hunter(2, false));
|
||||||
|
|
||||||
p.buildingCards.add(new BuildingCard(2, 1,2, 5));
|
p.buildingCards.add(new BuildingCard(2, 1,2, 5));
|
||||||
p.buildingCards.add(new BuildingCard(2, 2,3, 6));
|
p.buildingCards.add(new BuildingCard(2, 2,3, 6));
|
||||||
System.out.println(p.toString());
|
p.buildingCards.add(new Building1(2, 5, 5, CharacterType.INVENTOR));
|
||||||
|
p.buildingCards.add(new Building1(2, 5, 5, CharacterType.SHAMAN));
|
||||||
|
p.buildingCards.add(new Building11(1, 5, 7, CharacterType.ARTIST , 3));
|
||||||
|
//System.out.println(p.toString());
|
||||||
|
assertEquals(""+
|
||||||
|
"╔═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗\n" +
|
||||||
|
"║ test_usr ║\n" +
|
||||||
|
"├═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════┤\n" +
|
||||||
|
"║ RESOURCES: ║\n" +
|
||||||
|
"║ Food: 7 ║\n" +
|
||||||
|
"║ Prestige: 15 ║\n" +
|
||||||
|
"├═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════┤\n" +
|
||||||
|
"║ CHARACTERS: ║\n" +
|
||||||
|
"║ Artists: [⎕:, ⎕:, ⎕:, ⎕:, ⎕:, ⎕:, ⎕:] ║\n" +
|
||||||
|
"║ Builders: [⎕: RV:5 PV:1] ║\n" +
|
||||||
|
"║ Gatherers: [⎕:] ║\n" +
|
||||||
|
"║ Shamans: [⎕: *:3, ⎕: *:3] ║\n" +
|
||||||
|
"║ Inventors: [⎕: I_ID:1] ║\n" +
|
||||||
|
"║ Hunters: [⎕: I, ⎕:] ║\n" +
|
||||||
|
"├═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════┤\n" +
|
||||||
|
"║ BUILDING CARDS: ║\n" +
|
||||||
|
"║ Buildings: [⎕: ID:2 $:2 PV:5, ⎕: ID:2 $:3 PV:6, ⎕: ID:1 $:5 PV:5 Icon: I, ⎕: ID:1 $:5 PV:5 Icon: S, ⎕: ID:11 $:5 PV:7 Icon: A MP: 3]║\n" +
|
||||||
|
"╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝", p.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user