Fix: ASCII Builder
This commit is contained in:
@@ -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<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() {
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user