temp
This commit is contained in:
@@ -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 ");
|
||||
// }
|
||||
//}
|
||||
|
||||
Reference in New Issue
Block a user