Fix: Tui adapted to new input case
This commit is contained in:
@@ -9,13 +9,15 @@ import java.util.Scanner;
|
|||||||
|
|
||||||
public class ClientLauncherTUI {
|
public class ClientLauncherTUI {
|
||||||
//TODO Javadoc
|
//TODO Javadoc
|
||||||
|
TUI view;
|
||||||
public void main() throws InterruptedException {
|
public void main() throws InterruptedException {
|
||||||
TUI view=new TUI(null);
|
view=new TUI(null);
|
||||||
ClientController controller = new ClientController(view);
|
ClientController controller = new ClientController(view);
|
||||||
|
|
||||||
Scanner scanner = new Scanner(System.in);
|
Scanner scanner = new Scanner(System.in);
|
||||||
System.out.println("Selezionare nome utente: ");
|
System.out.println("Selezionare nome utente: ");
|
||||||
String username = scanner.next();
|
String username = scanner.next();
|
||||||
|
view.setUsername(username);
|
||||||
System.out.println("Selezionare numero di giocatori desiderato: ");
|
System.out.println("Selezionare numero di giocatori desiderato: ");
|
||||||
int proposedNumPlayers = scanner.nextInt();
|
int proposedNumPlayers = scanner.nextInt();
|
||||||
System.out.println("Selezionare RMI[0] o TCP[1]: ");
|
System.out.println("Selezionare RMI[0] o TCP[1]: ");
|
||||||
@@ -70,9 +72,10 @@ public class ClientLauncherTUI {
|
|||||||
private void getInput(Scanner scanner, ClientController controller, String username) {
|
private void getInput(Scanner scanner, ClientController controller, String username) {
|
||||||
String action = scanner.next();
|
String action = scanner.next();
|
||||||
int pos=-1;
|
int pos=-1;
|
||||||
if(!action.equals("8")) {
|
if(!action.equals("8")&&!action.equals("A")&&!action.equals("B")&&!action.equals("C")&&!action.equals("D")) {
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
System.out.println("Insert the required position:");
|
||||||
pos = scanner.nextInt();
|
pos = scanner.nextInt();
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
@@ -89,6 +92,9 @@ public class ClientLauncherTUI {
|
|||||||
case "6" -> controller.pickOptionalTribeCard(username, pos);
|
case "6" -> controller.pickOptionalTribeCard(username, pos);
|
||||||
case "7" -> controller.pickOptionalBuildingCard(username, pos);
|
case "7" -> controller.pickOptionalBuildingCard(username, pos);
|
||||||
case "8" -> controller.noOptionalCard(username);
|
case "8" -> controller.noOptionalCard(username);
|
||||||
|
case "A" -> view.fullRender();
|
||||||
|
case "B" -> view.renderBoard();
|
||||||
|
case "C" -> view.renderPlayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public abstract class EventCard extends TribeCard {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString()+" "+type.toString();
|
return super.toString()+"(Event)"+type.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,7 +77,7 @@ public abstract class EventCard extends TribeCard {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toStringBoard() {
|
public String toStringBoard() {
|
||||||
return super.toString()+" "+type.toString();
|
return super.toString()+"(Event)"+type.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -793,9 +793,10 @@ public class Game implements Serializable {
|
|||||||
List<String> stringUpOffer=new ArrayList<>();
|
List<String> stringUpOffer=new ArrayList<>();
|
||||||
List<String> stringDownOffer=new ArrayList<>();
|
List<String> stringDownOffer=new ArrayList<>();
|
||||||
|
|
||||||
|
int index=0;
|
||||||
for(Map.Entry<Slot,Player> entry:slotMap.entrySet())
|
for(Map.Entry<Slot,Player> entry:slotMap.entrySet())
|
||||||
{
|
{
|
||||||
stringDownOffer.add(entry.getKey().toStringTUI());
|
stringDownOffer.add((index++)+"."+entry.getKey().toStringTUI());
|
||||||
if(entry.getValue()!=null)
|
if(entry.getValue()!=null)
|
||||||
stringUpOffer.add(entry.getValue().getUserName());
|
stringUpOffer.add(entry.getValue().getUserName());
|
||||||
else
|
else
|
||||||
@@ -813,11 +814,11 @@ public class Game implements Serializable {
|
|||||||
{
|
{
|
||||||
if(i<getUpperListTribeCards().size())
|
if(i<getUpperListTribeCards().size())
|
||||||
{
|
{
|
||||||
stringUpperListTribe.add(getUpperListTribeCards().get(i).toStringBoard());
|
stringUpperListTribe.add(i+"-"+getUpperListTribeCards().get(i).toStringBoard());
|
||||||
}
|
}
|
||||||
if(i<getLowerListTribeCards().size())
|
if(i<getLowerListTribeCards().size())
|
||||||
{
|
{
|
||||||
stringLowerListTribe.add(getLowerListTribeCards().get(i).toStringBoard());
|
stringLowerListTribe.add(i+"-"+getLowerListTribeCards().get(i).toStringBoard());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var BuildTableUpper = new AsciiTable(BorderStyle.UNICODE,1);
|
var BuildTableUpper = new AsciiTable(BorderStyle.UNICODE,1);
|
||||||
@@ -829,11 +830,11 @@ public class Game implements Serializable {
|
|||||||
{
|
{
|
||||||
if(i<getUpperListBuilding().size())
|
if(i<getUpperListBuilding().size())
|
||||||
{
|
{
|
||||||
BuildTableUpper.addRow(getUpperListBuilding().get(i).toString());
|
BuildTableUpper.addRow(i+"-"+getUpperListBuilding().get(i).toString());
|
||||||
}
|
}
|
||||||
if(i<getLowerListBuilding().size())
|
if(i<getLowerListBuilding().size())
|
||||||
{
|
{
|
||||||
BuildTableLower.addRow(getLowerListBuilding().get(i).toString());
|
BuildTableLower.addRow(i+"-"+getLowerListBuilding().get(i).toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stringUpperListTribe.forEach(x->TribeTableUpper.addRow(x));
|
stringUpperListTribe.forEach(x->TribeTableUpper.addRow(x));
|
||||||
|
|||||||
@@ -58,24 +58,19 @@ public class Order2 extends OrderLogicCard {
|
|||||||
|
|
||||||
var table = new AsciiTable(BorderStyle.UNICODE, 2);
|
var table = new AsciiTable(BorderStyle.UNICODE, 2);
|
||||||
List<String> stringUp=new ArrayList<>();
|
List<String> stringUp=new ArrayList<>();
|
||||||
List<String> stringDown=new ArrayList<>();
|
|
||||||
for(int i=0;i<2;i++)
|
for(int i=0;i<2;i++)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
playerList.get(i);
|
|
||||||
stringUp.add(i+". "+playerList.get(i).player.getUserName());
|
|
||||||
if(playerList.get(i).played)
|
if(playerList.get(i).played)
|
||||||
stringDown.add(" Placed");
|
stringUp.add(" ");
|
||||||
else
|
else
|
||||||
stringDown.add(" Not Placed");
|
stringUp.add(i+". "+playerList.get(i).player.getUserName());
|
||||||
}
|
}
|
||||||
catch (IndexOutOfBoundsException e) {
|
catch (IndexOutOfBoundsException e) {
|
||||||
stringUp.add("");
|
stringUp.add("");
|
||||||
stringDown.add("");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
table.addRow(stringUp);
|
table.addRow(stringUp);
|
||||||
table.addRow(stringDown);
|
|
||||||
|
|
||||||
List<String> stringList=new ArrayList<>();
|
List<String> stringList=new ArrayList<>();
|
||||||
stringList.add("+1 Food");
|
stringList.add("+1 Food");
|
||||||
|
|||||||
@@ -60,24 +60,19 @@ public class Order3 extends OrderLogicCard {
|
|||||||
var table = new AsciiTable(BorderStyle.UNICODE, 3);
|
var table = new AsciiTable(BorderStyle.UNICODE, 3);
|
||||||
|
|
||||||
List<String> stringUp=new ArrayList<>();
|
List<String> stringUp=new ArrayList<>();
|
||||||
List<String> stringDown=new ArrayList<>();
|
|
||||||
for(int i=0;i<3;i++)
|
for(int i=0;i<3;i++)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
playerList.get(i);
|
|
||||||
stringUp.add(i+". "+playerList.get(i).player.getUserName());
|
|
||||||
if(playerList.get(i).played)
|
if(playerList.get(i).played)
|
||||||
stringDown.add(" Placed");
|
stringUp.add(" ");
|
||||||
else
|
else
|
||||||
stringDown.add(" Not Placed");
|
stringUp.add(i+". "+playerList.get(i).player.getUserName());
|
||||||
}
|
}
|
||||||
catch (IndexOutOfBoundsException e) {
|
catch (IndexOutOfBoundsException e) {
|
||||||
stringUp.add("");
|
stringUp.add("");
|
||||||
stringDown.add("");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
table.addRow(stringUp);
|
table.addRow(stringUp);
|
||||||
table.addRow(stringDown);
|
|
||||||
|
|
||||||
List<String> stringList=new ArrayList<>();
|
List<String> stringList=new ArrayList<>();
|
||||||
|
|
||||||
|
|||||||
@@ -66,24 +66,19 @@ public class Order4 extends OrderLogicCard {
|
|||||||
|
|
||||||
var table = new AsciiTable(BorderStyle.UNICODE, 4);
|
var table = new AsciiTable(BorderStyle.UNICODE, 4);
|
||||||
List<String> stringUp=new ArrayList<>();
|
List<String> stringUp=new ArrayList<>();
|
||||||
List<String> stringDown=new ArrayList<>();
|
|
||||||
for(int i=0;i<4;i++)
|
for(int i=0;i<4;i++)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
playerList.get(i);
|
|
||||||
stringUp.add(i+". "+playerList.get(i).player.getUserName());
|
|
||||||
if(playerList.get(i).played)
|
if(playerList.get(i).played)
|
||||||
stringDown.add(" Placed");
|
stringUp.add(" ");
|
||||||
else
|
else
|
||||||
stringDown.add(" Not Placed");
|
stringUp.add(i+". "+playerList.get(i).player.getUserName());
|
||||||
}
|
}
|
||||||
catch (IndexOutOfBoundsException e) {
|
catch (IndexOutOfBoundsException e) {
|
||||||
stringUp.add("");
|
stringUp.add("");
|
||||||
stringDown.add("");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
table.addRow(stringUp);
|
table.addRow(stringUp);
|
||||||
table.addRow(stringDown);
|
|
||||||
|
|
||||||
List<String> stringList=new ArrayList<>();
|
List<String> stringList=new ArrayList<>();
|
||||||
stringList.add("+2 Food");
|
stringList.add("+2 Food");
|
||||||
|
|||||||
@@ -67,24 +67,19 @@ public class Order5 extends OrderLogicCard {
|
|||||||
|
|
||||||
var table = new AsciiTable(BorderStyle.UNICODE, 5);
|
var table = new AsciiTable(BorderStyle.UNICODE, 5);
|
||||||
List<String> stringUp=new ArrayList<>();
|
List<String> stringUp=new ArrayList<>();
|
||||||
List<String> stringDown=new ArrayList<>();
|
|
||||||
for(int i=0;i<5;i++)
|
for(int i=0;i<5;i++)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
playerList.get(i);
|
|
||||||
stringUp.add(i+". "+playerList.get(i).player.getUserName());
|
|
||||||
if(playerList.get(i).played)
|
if(playerList.get(i).played)
|
||||||
stringDown.add(" Placed");
|
stringUp.add(" ");
|
||||||
else
|
else
|
||||||
stringDown.add(" Not Placed");
|
stringUp.add(i+". "+playerList.get(i).player.getUserName());
|
||||||
}
|
}
|
||||||
catch (IndexOutOfBoundsException e) {
|
catch (IndexOutOfBoundsException e) {
|
||||||
stringUp.add("");
|
stringUp.add("");
|
||||||
stringDown.add("");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
table.addRow(stringUp);
|
table.addRow(stringUp);
|
||||||
table.addRow(stringDown);
|
|
||||||
|
|
||||||
List<String> stringList=new ArrayList<>();
|
List<String> stringList=new ArrayList<>();
|
||||||
stringList.add("+3 Food");
|
stringList.add("+3 Food");
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ public class Slot implements Serializable {
|
|||||||
public String toStringTUI()
|
public String toStringTUI()
|
||||||
{
|
{
|
||||||
StringBuilder s = new StringBuilder();
|
StringBuilder s = new StringBuilder();
|
||||||
s.append(this.getSlotId()+" ");
|
//s.append(this.getSlotId()+" ");
|
||||||
for(int i=0;i<this.getNUpper();i++)
|
for(int i=0;i<this.getNUpper();i++)
|
||||||
{
|
{
|
||||||
s.append("↑");
|
s.append("↑");
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package it.polimi.ingsw.gc14.View.TUI;
|
|||||||
import it.polimi.ingsw.gc14.Model.Game;
|
import it.polimi.ingsw.gc14.Model.Game;
|
||||||
import it.polimi.ingsw.gc14.View.IView;
|
import it.polimi.ingsw.gc14.View.IView;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class TUI implements IView {
|
public class TUI implements IView {
|
||||||
|
|
||||||
// ── dati di stato ───────────────────────────────────────────
|
// ── dati di stato ───────────────────────────────────────────
|
||||||
@@ -23,6 +25,10 @@ public class TUI implements IView {
|
|||||||
|
|
||||||
// ── punto di ingresso ───────────────────────────────────────
|
// ── punto di ingresso ───────────────────────────────────────
|
||||||
public void render()
|
public void render()
|
||||||
|
{
|
||||||
|
renderBoard();
|
||||||
|
}
|
||||||
|
public void fullRender()
|
||||||
{
|
{
|
||||||
try{
|
try{
|
||||||
String os = System.getProperty("os.name").toLowerCase();
|
String os = System.getProperty("os.name").toLowerCase();
|
||||||
@@ -36,7 +42,10 @@ public class TUI implements IView {
|
|||||||
}
|
}
|
||||||
catch(Exception e){
|
catch(Exception e){
|
||||||
}
|
}
|
||||||
System.out.println(model.toString());
|
|
||||||
|
List<String>lines=List.of(model.BoardStamp().split("\n"));
|
||||||
|
List<String> lines2=List.of((PrintMenuOptions()+"\n"+model.getPlayerByUsername(username)).split("\n"));
|
||||||
|
System.out.println(model.PlayersStamp()+"\n"+ AsciiTable.sideBySide(lines,lines2,3));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void renderBoard()
|
public void renderBoard()
|
||||||
@@ -53,7 +62,9 @@ public class TUI implements IView {
|
|||||||
}
|
}
|
||||||
catch(Exception e){
|
catch(Exception e){
|
||||||
}
|
}
|
||||||
System.out.println(model.BoardStamp());
|
List<String>lines=List.of(model.BoardStamp().split("\n"));
|
||||||
|
List<String> lines2=List.of((PrintMenuOptions()+"\nYOUR HAND\n"+model.getPlayerByUsername(username)).split("\n"));
|
||||||
|
System.out.println(AsciiTable.sideBySide(lines,lines2,3));
|
||||||
}
|
}
|
||||||
public void renderPlayer()
|
public void renderPlayer()
|
||||||
{
|
{
|
||||||
@@ -69,25 +80,10 @@ public class TUI implements IView {
|
|||||||
}
|
}
|
||||||
catch(Exception e){
|
catch(Exception e){
|
||||||
}
|
}
|
||||||
System.out.println(model.BoardStamp());
|
List<String>lines=List.of(model.PlayersStamp().split("\n"));
|
||||||
|
List<String> lines2=List.of(PrintMenuOptions().split("\n"));
|
||||||
|
System.out.println(AsciiTable.sideBySide(lines,lines2,3));
|
||||||
}
|
}
|
||||||
public void renderMyHand()
|
|
||||||
{
|
|
||||||
try{
|
|
||||||
String os = System.getProperty("os.name").toLowerCase();
|
|
||||||
ProcessBuilder pb;
|
|
||||||
if (os.contains("win")) {
|
|
||||||
pb = new ProcessBuilder("cmd", "/c", "cls");
|
|
||||||
} else {
|
|
||||||
pb = new ProcessBuilder("clear");
|
|
||||||
}
|
|
||||||
pb.inheritIO().start().waitFor();
|
|
||||||
}
|
|
||||||
catch(Exception e){
|
|
||||||
}
|
|
||||||
System.out.println(model.getPlayerByUsername(username));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void showMessage(String message)
|
public void showMessage(String message)
|
||||||
{
|
{
|
||||||
@@ -100,4 +96,19 @@ public class TUI implements IView {
|
|||||||
System.out.println(message);
|
System.out.println(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String PrintMenuOptions()
|
||||||
|
{
|
||||||
|
var table=new AsciiTable(BorderStyle.ROUNDED,2);
|
||||||
|
table.addHeader( "Menu Options","Render Options");
|
||||||
|
table.addRow( List.of("1-SlotChoice(pos)","A-Full Render"));
|
||||||
|
table.addRow(List.of("2-DrawUpperTribe(pos)","B-Board Render"));
|
||||||
|
table.addRow(List.of("3-DrawUpperBuilding(pos)","C-Players Render"));
|
||||||
|
table.addRow(List.of("4-DrawLowerTribe(pos)",""));
|
||||||
|
table.addRow(List.of("5-DrawLowerBuilding(pos)",""));
|
||||||
|
table.addRow(List.of("6-PickOptionalTribe(pos)",""));
|
||||||
|
table.addRow(List.of("7-PickOptionalBuilding(pos)",""));
|
||||||
|
table.addRow(List.of("8-NoOptional",""));
|
||||||
|
return table.build();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user