From 23c155d0b1df84e88d85ac9a14aafadddb90ccb5 Mon Sep 17 00:00:00 2001 From: GabrieleRadice <265572328+GabrieleRadice@users.noreply.github.com> Date: Sun, 26 Apr 2026 17:15:47 +0200 Subject: [PATCH] temp --- .../it/polimi/ingsw/gc14/View/TUI/TUI.java | 186 +++++++++--------- .../polimi/ingsw/gc14/Model/PlayerTest.java | 10 + 2 files changed, 103 insertions(+), 93 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/View/TUI/TUI.java b/src/main/java/it/polimi/ingsw/gc14/View/TUI/TUI.java index 1880c51..8d25fa3 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/TUI/TUI.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/TUI/TUI.java @@ -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 "); +// } +//} 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 9696ec7..d0544df 100644 --- a/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java +++ b/src/test/java/it/polimi/ingsw/gc14/Model/PlayerTest.java @@ -1,5 +1,6 @@ package it.polimi.ingsw.gc14.Model; +import it.polimi.ingsw.gc14.Model.Cards.Building.Effects.Building1; 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,17 @@ 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)); + p.buildingCards.add(new Building1(2, 5, 5, CharacterType.INVENTOR)); System.out.println(p.toString()); } } \ No newline at end of file