1

tengo un problema ya que estoy modelando el tradicional juego tateti en java , con una matriz sencilla 3x3 , el tema es que tengo que crear una función que me permita saber si hay un ganador y que me devuelva si gano "X" o gano "0" pero dicha función me da un error, y no se que es lo que esta fallando. me da un nullpoint exception pero no veo tal error en el arreglo.

public class Tablero{

String tablero[][]=new String[3][3];

public void inicializar(){
    for(int x=0;x<tablero.length;x++){
        for(int y=0;y<tablero.length;y++){
            tablero[x][y]=null;
        }
    }


}

public boolean marcarCruz(int a, int b){
    boolean resultado=false;
            if(tablero[a][b]!=null){
                resultado=false;
            }else{
                tablero[a][b]="X";
                resultado=true;
            }
        return resultado;

}

public boolean marcarCero(int a, int b){
    boolean resultado=false;
            if(tablero[a][b]!=null){
                resultado=false;
            }else{
                tablero[a][b]="0";
                resultado=true;
            }
        return resultado;

}

public boolean completo(){
    boolean completo=false;
    for(int x=0;x<tablero.length;x++){
            for(int y=0;y<tablero.length;y++){
                if(tablero[x][y]!=null){
                    completo=true;
                }else{
                    completo=false;
                }
            }
        }
        return completo;
}

public String indicarSiGanoAlgunJugador(){
    String ganador=null;
    for(int x=0;x<tablero.length;x++){
        if(tablero[0][x].equals("X")){
            ganador="X";
        }
        if(tablero[1][x].equals("X")){
            ganador="X";
        }
        if(tablero[2][x].equals("X")){
            ganador="X";
        }
        if(tablero[1][x].equals("X")){
            ganador="0";
        }
        if(tablero[2][x].equals("X")){
            ganador="0";
        }
        if(tablero[0][x].equals("X")){
            ganador="0";
        }
    for(int y=0;y<tablero.length;y++){
        if(tablero[y][1].equals("X")){
            ganador="X";
            }
        if(tablero[y][2].equals("X")){
            ganador="X";
            }
        if(tablero[y][0].equals("X")){
            ganador="X";
            }
        if(tablero[y][1].equals("X")){
            ganador="0";
            }
        if(tablero[y][2].equals("X")){
            ganador="0";
            }
        if(tablero[y][0].equals("X")){
            ganador="0";
            }
        }
    }
    return ganador;

}

}

Floppy
  • 73
  • 1
  • 3
  • 8
  • 1
    ¿Qué error te da? – Pablo Lozano Dec 13 '18 at 16:54
  • Exception in thread "main" java.lang.NullPointerException at Tablero.indicarSiGanoAlgunJugador(Tablero.java:57) at Tateti.main(Tateti.java:15) – Floppy Dec 13 '18 at 17:01
  • Me da ese error pero verifique el array pero no encuentro el error – Floppy Dec 13 '18 at 17:01
  • 1
    Estás usando equals para comparar strings (lo cual es correcto), pero esos strings pueden ser null y eso no lo estás comprobando. Quizá deberías inicializar todo el tablero con strings vacíos... – Pablo Lozano Dec 13 '18 at 17:42
  • Segui el codigo paso a paso y te vas a dar cuenta donde esta el error. fijate la pregunta que te marcamos como duplicado, y lo que dice @PabloLozano – gbianchi Dec 13 '18 at 18:43

0 Answers0