please format code with </> button * homework policy * asking questions
help. How do I get the text input code to choose one of the two options and show the game board
import java.util.Random;
import java.util.ArrayList;
import java.util.Scanner;
class Jugador {
String nombre_;
String color_;
boolean logroForma1;
boolean logroForma2;
Jugador(String n,String c){
this.nombre_ = n;
this.color_ = c;
this.logroForma1 = false;
this.logroForma2 = false;
}
boolean gane() {
return logroForma1 && logroForma2;
}
}
class Ficha {
Jugador jugador;
String valor;
Ficha(Jugador jugador, String tipo) {
this.jugador = jugador;
this.valor = tipo;
}
String getColor() {
return jugador.color_;
}
void voltear() {
if("D".equals(valor)){
valor = "F";
}else{
valor = "D";
}
}
@Override
boolean equals(Object obj) {
if(!(obj instanceof Ficha)){
return false;
}
Ficha ficha = (Ficha)obj;
if(!ficha.valor.equals(this.valor)){
return false;
}
return ficha.jugador == this.jugador;
}
}
class Cancha {
static final String ANSI_BLACK = "\u001B[30m";
Ficha [][] fichas;
int dimencionX;
int dimencionY;
Cancha(int x, int y){
fichas = new Ficha[x][y];
dimencionX = x;
dimencionY = y;
}
void llenarRandom(Jugador jugador, int cantidad){
Random random = new Random();
for(int i = 0;i < cantidad;i++){
String tipo;
if(random.nextBoolean()){
tipo = "D";
}else{
tipo = "F";
}
Ficha ficha = new Ficha(jugador,tipo);
int x,y;
do{
x = random.nextInt(dimencionX);
y = random.nextInt(dimencionY);
if(fichas[x][y] == null){
fichas[x][y] = ficha;
break;
}
}while(true);
}
}
void llenarPredefinida1(Jugador jugador){
Ficha ficha1 = new Ficha(jugador,"F");
Ficha ficha2 = new Ficha(jugador,"F");
Ficha ficha3 = new Ficha(jugador,"D");
Ficha ficha4 = new Ficha(jugador,"F");
fichas[0][0] = ficha1;
fichas[0][3] = ficha2;
fichas[2][1] = ficha3;
fichas[2][2] = ficha4;
}
void llenarPredefinida2(Jugador jugador){
Ficha ficha1 = new Ficha(jugador,"D");
Ficha ficha2 = new Ficha(jugador,"F");
Ficha ficha3 = new Ficha(jugador,"D");
Ficha ficha4 = new Ficha(jugador,"F");
fichas[0][2] = ficha1;
fichas[3][0] = ficha2;
fichas[3][1] = ficha3;
fichas[3][2] = ficha4;
}
void mostrar() {
System.out.print(" ");
for(int i = 0;i < dimencionX;i++){
System.out.print("|"+(i+1));
}
System.out.println("");
String separacion = "";
for(int i = 0;i < dimencionX;i++){
separacion += "-+";
}
separacion +="-";
System.out.println(separacion);
for(int i = 0;i < dimencionX;i++){
System.out.print(ANSI_BLACK + (char)(i+'A'));
for(int j = 0;j < dimencionY;j++){
Ficha ficha = fichas[i][j];
if(ficha == null){
System.out.print("| ");
}else{
System.out.print("|");
System.out.print(ficha.getColor() + ficha.valor);
}
}
System.out.println("");
System.out.println(separacion);
}
}
}
class Control {
Jugador jugador1;
Jugador jugador2;
Cancha cancha;
Control(Jugador jugador1, Jugador jugador2,Cancha cancha){
this.jugador1 = jugador1;
this.jugador2 = jugador2;
this.cancha = cancha;
}
boolean hayGanador() {
return jugador1.gane() || jugador2.gane();
}
int[] convertir(String es){
int x = (int)(es.charAt(0)-'A');
int y = (int)(es.charAt(1)-'1');
return new int[]{x,y};
}
boolean entradaValida(String arg){
char letra = arg.charAt(0);
char numero = arg.charAt(1);
if('A' <= letra && letra < (cancha.dimencionY+'A')){
if('1' <= numero && numero < (cancha.dimencionX+'1')){
return true;
}
}
return false;
}
boolean jugadaValida(String jugada) {
String [] res = jugada.split(" ");
for(int i = 1;i < res.length;i++){
if(!entradaValida(res[i])){
return false;
}
}
return true;
}
boolean jugadaPermitida(Jugador jugador, String jugada) {
String [] res = jugada.split(" ");
System.out.println(res.length);
if("I".equals(res[0])){
int a[] = convertir(res[1]);
int x = a[0];
int y = a[1];
if(cancha.fichas[x][y] != null){
if(cancha.fichas[x][y].jugador == jugador){
cancha.fichas[x][y].voltear();
return true;
}
}
}
if("M".equals(res[0])){
int a[] = convertir(res[1]);
int b[] = convertir(res[2]);
int x1 = a[0];
int y1 = a[1];
int x2 = b[0];
int y2 = b[1];
Ficha fichas [][] = cancha.fichas;
if(fichas[x1][y1] != null){
if(fichas[x1][y1].jugador == jugador){
if(Math.abs(x1-x2) <= 1 && Math.abs(y1-y2) <= 1){
Ficha ayuda = fichas[x2][y2];
fichas[x2][y2] = fichas[x1][y1];
fichas[x1][y1] = ayuda;
return true;
}
}
}
}
return false;
}
int[][][] ganadoras = {
{
{1,1,1,1},
{0,0,0,0},
{0,0,0,0},
{0,0,0,0}
},
{
{1,0,0,0},
{1,0,0,0},
{1,0,0,0},
{1,0,0,0}
},
{
{1,1,0,0},
{1,1,0,0},
{0,0,0,0},
{0,0,0,0}
}
};
void jugadasGanadoras() {
for(int i = 0;i < cancha.dimencionX;i++){
for(int j = 0;j < cancha.dimencionY;j++){
for (int ll = 0;ll < ganadoras.length;ll++) {
int[][] ganadora = ganadoras[ll];
Ficha ficha = null;
int conteo = 0;
for(int x = 0;x < ganadora.length && i+x < cancha.dimencionX;x++){
for(int y = 0;y < ganadora[0].length && j+y < cancha.dimencionY;y++){
if(ganadora[x][y] == 0){
continue;
}
Ficha esg = cancha.fichas[i+x][j+y];
if(esg == null){
continue;
}
if(ficha == null){
ficha = esg;
conteo++;
}else{
if(ficha.equals(esg)){
conteo++;
}
}
}
}
if(conteo == 4){
if(ficha != null){
System.out.println(ficha.jugador.color_+"El jugador:"+ficha.jugador.nombre_);
System.out.println(ficha.jugador.color_+"logro una figura");
if(ll == 2){
ficha.jugador.logroForma2 = true;
}else{
ficha.jugador.logroForma1 = true;
}
}
}
}
}
}
}
}
String ANSI_GREEN = "\u001B[32m";
String ANSI_BLUE = "\u001B[34m";
void draw(){
ArrayList<String> usuarios = new ArrayList<String>();
String nombre1 = "";
String nombre2 = "";
Scanner leer = new Scanner(System.in);
boolean pasar = true;
int opcion;
String ayuda;
do{
System.out.println("ingresa la opcion");
System.out.println("1) registrar un usuario");
System.out.println("2) escoger un usuario");
opcion = leer.nextInt();
switch(opcion){
case 1:{
System.out.println("ingresa el nombre del jugador");
ayuda = leer.next();
System.out.println("usuario registrado");
usuarios.add(ayuda);
break;
}
case 2:{
if(usuarios.size() >= 2){
System.out.println("Listando usuarios");
int i = 0;
for(String es:usuarios){
System.out.println(i + ") " + es);
i++;
}
System.out.println("ingresa dos numeros para escoger los usuarios");
int a,b;
a = leer.nextInt();
b = leer.nextInt();
if(a == b){
System.out.println("escoge dos usuarios diferentes");
break;
}
if(a >= usuarios.size() || b >= usuarios.size()){
System.out.println("ingresa indices dentro de la lista de usuarios");
break;
}
nombre1 = usuarios.get(a);
nombre2 = usuarios.get(b);
pasar = false;
}else{
System.out.println("no hay usuarios suficientes registrados");
}
break;
}
}
}while(pasar);
System.out.println("los jugadores son");
System.out.println(ANSI_GREEN+"jugador1:"+nombre1);
System.out.println(ANSI_BLUE +"jugador2:"+nombre2);
Jugador jugador1 = new Jugador(nombre1,ANSI_GREEN);
Jugador jugador2 = new Jugador(nombre2,ANSI_BLUE);
Cancha cancha = new Cancha(4,4);
System.out.println("desea jugar con una cancha random?(S/N)");
String n = leer.next();
if("S".equals(n)){
cancha.llenarRandom(jugador1, 4);
cancha.llenarRandom(jugador2, 4);
}else{
cancha.llenarPredefinida2(jugador1);
cancha.llenarPredefinida1(jugador2);
}
cancha.mostrar();
Control control = new Control(jugador1,jugador2,cancha);
boolean turno = true;
Jugador jug;
while(!control.hayGanador()){
if(turno){
jug = jugador1;
System.out.println("El turno del jugador:"+jugador1.nombre_);
System.out.println(jugador1.color_+"Escribe una jugada");
}else{
System.out.println("El turno del jugador:"+jugador2.nombre_);
System.out.println(jugador2.color_+"Escribe una jugada");
jug = jugador2;
}
String jugada;
do{
jugada = leer.nextLine();
if(control.jugadaValida(jugada)){
if(control.jugadaPermitida(jug,jugada)){
break;
}
}
System.out.println(jug.color_+"jugada no valida");
}while(true);
turno=!turno;
control.jugadasGanadoras();
cancha.mostrar();
}
if(jugador1.gane()){
System.out.println(jugador1.color_+"GANO el jugador:"+jugador1.nombre_);
}else{
System.out.println(jugador2.color_+"GANO el jugador:"+jugador2.nombre_);
}
leer.close();
}