Estoy volviendo a practicar un ejercicio para el examen (de recuperación) de programación y me está saliendo el mismo error que me salió en su día en el examen.
Os dejo el código, a ver si me podéis orientar. Gracias!
CODE
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;
public class Principal { public static void main(String[] args) throws IOException { BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
int numeroequipos, numeropartidos, i, respuesta, codigolocal, codigovisitante, gl, gv;
String nombre;
System.out.println("¿Cuántos equipos van a jugar?");
numeroequipos=Integer.parseInt(teclado.readLine());
Equipo listaequipos [] = new Equipo [numeroequipos];
for (i = 0; i < listaequipos.length ; i++) {
System.out.println("Nombre del equipo: ");
nombre=teclado.readLine();
listaequipos[i] = new Equipo(nombre);
}
System.out.println("¿Cuántos partidos se van a jugar?");
numeropartidos=Integer.parseInt(teclado.readLine());
Partido listapartidos[] = new Partido[(numeropartidos*2)-1];
do {
System.out.println("1. Jugar partidos mientras que quiera el usuario, verificando que existen los equipos y que" +
"no han jugado todavía y pidiendo el resultado (verificar que es mayor o igual a 0).\n2. Visualizar todos los partidos jugados.\n3 " +
". Visualizar la clasificación (ordena por puntos los equipos y visualiza la clasificación)" +
"\n4. Salir");
respuesta=Integer.parseInt(teclado.readLine());
switch (respuesta){
case 1:
// Soy consciente de que faltarían la comprobación de códigos y de si han jugado / terminado el partido
System.out.println("Codigo del equipo LOCAL: ");
codigolocal=Integer.parseInt(teclado.readLine());
System.out.println("Codigo del equipo VISITANTE: ");
codigovisitante=Integer.parseInt(teclado.readLine());
for (i = 0; i < listaequipos.length && listaequipos[i].getCodigo()!=codigolocal && listaequipos[i].getCodigo()!=codigovisitante; i++);
if (i<listaequipos.length) {
System.out.println("LOS EQUIPOS EXISTEN Y NO HAN JUGADO AÚN.");
System.out.println("GOLES del equipo LOCAL: ");
gl = Integer.parseInt(teclado.readLine());
System.out.println("GOLES del equipo VISITANTE: ");
gv = Integer.parseInt(teclado.readLine());
listapartidos[i].jugar(gl,gv); // Creo que me da error de NULLPOINTEREXCEPTION (igual que en el examen) por que aplico la listapartidos[i]
// como si estuviese usando el 'for' para recorrer listapartidos, pero no acabo de ver otra posibilidad
}
break;
case 2:
for (Partido ind:listapartidos) {
ind.visualizar();
}
case 3: // por hacer
}
}while (respuesta!=4);
}
}