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
|
||||
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
|
||||
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
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public class Builder extends Character
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + " RV: " + String.valueOf(reductionValue) + " PV: " + String.valueOf(prestigeValue);
|
||||
return super.toString() + " RV:" + String.valueOf(reductionValue) + " PV:" + String.valueOf(prestigeValue);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -49,7 +49,7 @@ public class Hunter extends Character {
|
||||
public String toString() {
|
||||
String toPrint = super.toString();
|
||||
if(this.icon){
|
||||
toPrint += " 🏹";
|
||||
toPrint += " I";
|
||||
}
|
||||
return toPrint;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ public class Shaman extends Character {
|
||||
*/
|
||||
@Override
|
||||
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
|
||||
public String toString() {
|
||||
return "⌛:"+String.valueOf(Era);
|
||||
return "⎕:";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,93 +1,93 @@
|
||||
package it.polimi.ingsw.gc14.View.TUI;
|
||||
import it.polimi.ingsw.gc14.Model.Game;
|
||||
|
||||
public class TUI {
|
||||
|
||||
// ── dati di stato ───────────────────────────────────────────
|
||||
private BorderStyle style = BorderStyle.UNICODE;
|
||||
private Game model;
|
||||
// ── punto di ingresso ───────────────────────────────────────
|
||||
public String render() {
|
||||
var sb = new StringBuilder();
|
||||
sb.append(renderHeader());
|
||||
sb.append(renderTurnOrder());
|
||||
sb.append(renderOfferTrack());
|
||||
sb.append(renderCardRows());
|
||||
sb.append(renderTableaux());
|
||||
sb.append(renderFooter());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
// ── sezioni ─────────────────────────────────────────────────
|
||||
private String renderTurnOrder() {
|
||||
var table = new AsciiTable(style, 4, 10); // 4 colonne, largh 10
|
||||
table.addRow(model.getPlayers().stream()
|
||||
.map(p -> + ". " + p.getUserName())
|
||||
.toList());
|
||||
table.addRow(state.getPlayers().stream()
|
||||
.map(p -> p.getTotemPosition() != null
|
||||
? "totem: " + p.getTotemPosition()
|
||||
: "(da piaz)")
|
||||
.toList());
|
||||
return " TURN ORDER\n" + table.build() + "\n";
|
||||
}
|
||||
|
||||
private String renderOfferTrack() {
|
||||
var table = new AsciiTable(style, 5, 14);
|
||||
table.addRow(state.getOfferTiles().stream()
|
||||
.map(t -> t.getId() + ": " + t.getLabel()).toList());
|
||||
table.addRow(state.getOfferTiles().stream()
|
||||
.map(OfferTile::getRowsLabel).toList());
|
||||
table.addRow(state.getOfferTiles().stream()
|
||||
.map(t -> state.getTotemOnTile(t.getId())).toList());
|
||||
return " OFFER TRACK\n" + table.build() + "\n";
|
||||
}
|
||||
|
||||
private String renderCardRows() {
|
||||
int cols = state.getTopRow().size();
|
||||
var table = new AsciiTable(style, cols, 13);
|
||||
table.addRow(state.getTopRow().stream()
|
||||
.map(c -> "[" + c.getTypeLabel() + "]").toList());
|
||||
table.addRow(state.getTopRow().stream()
|
||||
.map(Card::getName).toList());
|
||||
table.addSeparator();
|
||||
table.addRow(state.getBotRow().stream()
|
||||
.map(c -> "[" + c.getTypeLabel() + "]").toList());
|
||||
table.addRow(state.getBotRow().stream()
|
||||
.map(Card::getName).toList());
|
||||
return " CARTE IN GIOCO\n" + prefix("TOP ", "BOT ", table.build()) + "\n";
|
||||
}
|
||||
|
||||
private String renderTableaux() {
|
||||
var sb = new StringBuilder(" TABLEAU GIOCATORI\n\n");
|
||||
for (Player p : state.getPlayers()) {
|
||||
String marker = p.isActive() ? ">>>" : " ";
|
||||
sb.append(String.format(" %s %s%s Food:%d PP:%d%n",
|
||||
marker, p.getName(),
|
||||
p.isActive() ? " [TUO TURNO]" : "",
|
||||
p.getFood(), p.getPP()));
|
||||
sb.append(renderPlayerTableau(p));
|
||||
sb.append("\n");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private String renderPlayerTableau(Player p) {
|
||||
var table = new AsciiTable(style, 3, 14);
|
||||
table.addHeader("PERSONAGGI", "EDIFICI", "RISORSE");
|
||||
int rows = Math.max(p.getChars().size(),
|
||||
Math.max(p.getBuildings().size(), 3));
|
||||
for (int i = 0; i < rows; i++) {
|
||||
String ch = i < p.getChars().size() ? p.getChars().get(i) : "";
|
||||
String bd = i < p.getBuildings().size() ? p.getBuildings().get(i) : "";
|
||||
String rs = switch (i) {
|
||||
case 0 -> "Food: " + "O".repeat(p.getFood());
|
||||
case 1 -> "PP: " + p.getPP();
|
||||
case 2 -> "Chars:" + p.getChars().size() + " Edif:" + p.getBuildings().size();
|
||||
default -> "";
|
||||
};
|
||||
table.addRow(ch, bd, rs);
|
||||
}
|
||||
return " " + table.build().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
//package it.polimi.ingsw.gc14.View.TUI;
|
||||
//import it.polimi.ingsw.gc14.Model.Game;
|
||||
//
|
||||
//public class TUI {
|
||||
//
|
||||
// // ── dati di stato ───────────────────────────────────────────
|
||||
// private BorderStyle style = BorderStyle.UNICODE;
|
||||
// private Game model;
|
||||
// // ── punto di ingresso ───────────────────────────────────────
|
||||
// public String render() {
|
||||
// var sb = new StringBuilder();
|
||||
// sb.append(renderHeader());
|
||||
// sb.append(renderTurnOrder());
|
||||
// sb.append(renderOfferTrack());
|
||||
// sb.append(renderCardRows());
|
||||
// sb.append(renderTableaux());
|
||||
// sb.append(renderFooter());
|
||||
// return sb.toString();
|
||||
// }
|
||||
//
|
||||
// // ── sezioni ─────────────────────────────────────────────────
|
||||
// private String renderTurnOrder() {
|
||||
// var table = new AsciiTable(style, 4, 10); // 4 colonne, largh 10
|
||||
// table.addRow(model.getPlayers().stream()
|
||||
// .map(p -> + ". " + p.getUserName())
|
||||
// .toList());
|
||||
// table.addRow(state.getPlayers().stream()
|
||||
// .map(p -> p.getTotemPosition() != null
|
||||
// ? "totem: " + p.getTotemPosition()
|
||||
// : "(da piaz)")
|
||||
// .toList());
|
||||
// return " TURN ORDER\n" + table.build() + "\n";
|
||||
// }
|
||||
//
|
||||
// private String renderOfferTrack() {
|
||||
// var table = new AsciiTable(style, 5, 14);
|
||||
// table.addRow(state.getOfferTiles().stream()
|
||||
// .map(t -> t.getId() + ": " + t.getLabel()).toList());
|
||||
// table.addRow(state.getOfferTiles().stream()
|
||||
// .map(OfferTile::getRowsLabel).toList());
|
||||
// table.addRow(state.getOfferTiles().stream()
|
||||
// .map(t -> state.getTotemOnTile(t.getId())).toList());
|
||||
// return " OFFER TRACK\n" + table.build() + "\n";
|
||||
// }
|
||||
//
|
||||
// private String renderCardRows() {
|
||||
// int cols = state.getTopRow().size();
|
||||
// var table = new AsciiTable(style, cols, 13);
|
||||
// table.addRow(state.getTopRow().stream()
|
||||
// .map(c -> "[" + c.getTypeLabel() + "]").toList());
|
||||
// table.addRow(state.getTopRow().stream()
|
||||
// .map(Card::getName).toList());
|
||||
// table.addSeparator();
|
||||
// table.addRow(state.getBotRow().stream()
|
||||
// .map(c -> "[" + c.getTypeLabel() + "]").toList());
|
||||
// table.addRow(state.getBotRow().stream()
|
||||
// .map(Card::getName).toList());
|
||||
// return " CARTE IN GIOCO\n" + prefix("TOP ", "BOT ", table.build()) + "\n";
|
||||
// }
|
||||
//
|
||||
// private String renderTableaux() {
|
||||
// var sb = new StringBuilder(" TABLEAU GIOCATORI\n\n");
|
||||
// for (Player p : state.getPlayers()) {
|
||||
// String marker = p.isActive() ? ">>>" : " ";
|
||||
// sb.append(String.format(" %s %s%s Food:%d PP:%d%n",
|
||||
// marker, p.getName(),
|
||||
// p.isActive() ? " [TUO TURNO]" : "",
|
||||
// p.getFood(), p.getPP()));
|
||||
// sb.append(renderPlayerTableau(p));
|
||||
// sb.append("\n");
|
||||
// }
|
||||
// return sb.toString();
|
||||
// }
|
||||
//
|
||||
// private String renderPlayerTableau(Player p) {
|
||||
// var table = new AsciiTable(style, 3, 14);
|
||||
// table.addHeader("PERSONAGGI", "EDIFICI", "RISORSE");
|
||||
// int rows = Math.max(p.getChars().size(),
|
||||
// Math.max(p.getBuildings().size(), 3));
|
||||
// for (int i = 0; i < rows; i++) {
|
||||
// String ch = i < p.getChars().size() ? p.getChars().get(i) : "";
|
||||
// String bd = i < p.getBuildings().size() ? p.getBuildings().get(i) : "";
|
||||
// String rs = switch (i) {
|
||||
// case 0 -> "Food: " + "O".repeat(p.getFood());
|
||||
// case 1 -> "PP: " + p.getPP();
|
||||
// case 2 -> "Chars:" + p.getChars().size() + " Edif:" + p.getBuildings().size();
|
||||
// default -> "";
|
||||
// };
|
||||
// table.addRow(ch, bd, rs);
|
||||
// }
|
||||
// return " " + table.build().replace("\n", "\n ");
|
||||
// }
|
||||
//}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
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.TribeCards.CharacterType;
|
||||
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(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, 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