[ Foro de Java ]

Ayuda de clases

24-Jul-2021 17:39
Invitado (Aprendiz)
0 Respuestas

Estoy haciendo un problema para ejercitar las clases. Mi intención es que al introducir lo que se pide en el main, el programa me distinga dos situaciones
1. introduzco sólo los datos de un jugador y me diga si este está eliminado
2. después de introducir lso datos del primer jugador, detecte que sigo introduciendo datos referentes al segundo, y en este caso, me diga cuál de los dos es mejor (en base a unos puntos que ponderan según sea c1, c2,c3 etc)
El problema es que la salida se queda en blanco cuando estoy haciendo 1. y si hago 2. me aparecere error al introducir el nombre del segundo jugador. Un saludo y gracias por su tiempo!

import java.util.Scanner;

public class ProblemaBaloncesto {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Introduzca nombre del jugador, las canastas de tipo 1,2,3 y el nº de faltas");
Jugador j1 = new Jugador(input.nextLine(), input.nextInt(), input.nextInt(), input.nextInt(), input.nextInt());

if (input.hasNextLine()) {
Jugador j2 = new Jugador(input.nextLine(), input.nextInt(), input.nextInt(), input.nextInt(),
input.nextInt());

if (j1.eliminado(j1) || j2.c1 + j2.c2 * 2 + j2.c3 * 3 > j1.c1 + j1.c2 * 2 + j1.c3 * 3) {
System.out.println(j2.nomb + "es mejor que " + j1.nomb);

} else if (j2.c1 + j2.c2 * 2 + j2.c3 * 3 < j1.c1 + j1.c2 * 2 + j1.c3 * 3 || j2.eliminado(j2)) {
System.out.println(j1.nomb + "es mejor que " + j2.nomb);

} else {
System.out.println("Están empate");
}

} else {

if (j1.eliminado(j1)) {
System.out.println(j1.nomb + "está eliminado");
} else {
System.out.println(j1.nomb + "no está eliminado");
}
}
}
}
//y la otra clase//

public class Jugador {
public String nomb;
public int c1;
public int c2;
public int c3;
public int faltas;

public Jugador(String nombre, int _c1, int _c2, int _c3, int fault) {
nomb = nombre;
c1 = _c1;
c2 = _c2;
c3 = _c3;
faltas = fault;

}

public boolean eliminado(Jugador j) {

if (j.faltas < 5) {
return false;
} else {
return true;
}
}
}







(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)