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.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();
|
||||||
|
|||||||
Reference in New Issue
Block a user