This commit is contained in:
GabrieleRadice
2026-04-25 18:42:34 +02:00
2 changed files with 39 additions and 6 deletions
@@ -2,8 +2,11 @@ package it.polimi.ingsw.gc14.Model.Orders;
import it.polimi.ingsw.gc14.Model.OrderLogicCard; import it.polimi.ingsw.gc14.Model.OrderLogicCard;
import it.polimi.ingsw.gc14.Model.Player; import it.polimi.ingsw.gc14.Model.Player;
import it.polimi.ingsw.gc14.View.TUI.AsciiTable;
import it.polimi.ingsw.gc14.View.TUI.BorderStyle;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
public class Order3 extends OrderLogicCard { public class Order3 extends OrderLogicCard {
@@ -49,4 +52,32 @@ public class Order3 extends OrderLogicCard {
} }
} }
} }
@Override
public String toString()
{
var table = new AsciiTable(BorderStyle.UNICODE, 3);
List<Player> tempPlayer=new ArrayList<>(players);
List<String> stringList=new ArrayList<>();
for(int i=0;i<3;i++)
{
try {
tempPlayer.get(i);
stringList.add(i+". "+tempPlayer.get(i).getUserName());
}
catch (IndexOutOfBoundsException e) {
stringList.add(i+". ");
}
}
table.addRow(stringList);
stringList=new ArrayList<>();
stringList.add("+2 Food");
stringList.add(" --");
stringList.add("-1 Food / -2 Prestige");
table.addRow(stringList);
return "TURN ORDER\n" + table.build() + "\n";
}
} }
@@ -19,23 +19,25 @@ public class AsciiTable {
public String build() { public String build() {
var sb = new StringBuilder(); var sb = new StringBuilder();
sb.append(hline(s.tl(), s.mt(), s.tr())).append('\n'); int maxWidth = rows.stream().mapToInt(x->x.stream().mapToInt(y->y.length()).max().getAsInt()).max().getAsInt()+1;
sb.append(hline(s.tl(), s.mt(), s.tr(),maxWidth)).append('\n');
for (int i = 0; i < rows.size(); i++) { for (int i = 0; i < rows.size(); i++) {
sb.append(s.v()); sb.append(s.v());
for (String cell : rows.get(i)) for (String cell : rows.get(i))
sb.append(rpad(" " + cell, colWidth)).append(s.v()); sb.append(rpad(" " + cell, maxWidth)).append(s.v());
sb.append('\n'); sb.append('\n');
if (separators.contains(i) && i < rows.size() - 1) if (separators.contains(i) && i < rows.size() - 1)
sb.append(hline(s.sl(), s.sx(), s.sr())).append('\n'); sb.append(hline(s.sl(), s.sx(), s.sr(),maxWidth)).append('\n');
} }
sb.append(hline(s.bl(), s.mb(), s.br())); sb.append(hline(s.bl(), s.mb(), s.br(), maxWidth));
return sb.toString(); return sb.toString();
} }
private String hline(String l, String m, String r) { private String hline(String l, String m, String r,int maxWidth) {
var sb = new StringBuilder(l); var sb = new StringBuilder(l);
for (int i = 0; i < cols; i++) { for (int i = 0; i < cols; i++) {
sb.append(s.h().repeat(colWidth)); sb.append(s.h().repeat(maxWidth));
if (i < cols - 1) sb.append(m); if (i < cols - 1) sb.append(m);
} }
return sb.append(r).toString(); return sb.append(r).toString();