diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java index fc7f6d2..3eb13b9 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Orders/Order3.java @@ -2,8 +2,11 @@ package it.polimi.ingsw.gc14.Model.Orders; import it.polimi.ingsw.gc14.Model.OrderLogicCard; 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.List; import java.util.NoSuchElementException; 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 tempPlayer=new ArrayList<>(players); + List 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"; + } } \ No newline at end of file diff --git a/src/main/java/it/polimi/ingsw/gc14/View/TUI/AsciiTable.java b/src/main/java/it/polimi/ingsw/gc14/View/TUI/AsciiTable.java index 7f6b1fc..0688727 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/TUI/AsciiTable.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/TUI/AsciiTable.java @@ -19,23 +19,25 @@ public class AsciiTable { public String build() { 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++) { sb.append(s.v()); 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'); 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(); } - 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); 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); } return sb.append(r).toString();