[ Foro de Java ]

BuscarDiagonal(matriz java)

10-Sep-2022 21:50
Invitado (Juanse)
0 Respuestas

Buenas, necesito crear un codigo que genere una matriz y una palabra, y verifica si la palabra se encuentra en la matriz, puede estar de forma horizontal, vertical o en diagonal.
esto es lo que voy haciendo:

public static void main(String[] args) {
       
       Scanner in = new Scanner (System.in);
       char [][] mat =formarMatriz(in);
       String palabra = in.nextLine();
       Boolean validar = false;
       if (buscarHorizontal(mat,palabra)){
           validar = true;
           
       }
       if (buscarVertical(mat,palabra)){
           validar = true;
           
       }
       if (validar){
           System.out.println("SI");
       } else{
           System.out.println("NO");
       }
       
   }
   
   public static char[][] formarMatriz(Scanner in){
       int filas;
       int columnas;
       filas=in.nextInt();
       columnas=in.nextInt();
       in.nextLine();
       char[][] mat =new char [filas][columnas];
       for(char [] mat1 : mat){
           String dato =in.nextLine();
           for (int j=0;j< mat[0].length; j++){
               mat1[j]=dato.charAt(j);
           }
       }
       return mat;
   }
   public static Boolean buscarHorizontal (char [][] mat, String palabra){
       Boolean esta= false;
       int cantFilas= mat.length;
       int cantColumnas = mat[0].length;
       for (int i=0; i<cantFilas; i++){
           String str ="";
           for (int j=0; j<cantColumnas;j++){
               if (str.length() <= cantColumnas){
                   str += mat[i][j];
                   
               }
               if(str.contains(palabra)){
                   esta=true;
               }
           }
       } return esta;
   }
    public static Boolean buscarVertical (char [][] mat, String palabra){
       Boolean Esta= false;
       int cantFilas= mat.length;
       int cantColumnas = mat[0].length;
       for (int i=0; i<cantFilas; i++){
           String str ="";
           for (int j=0; j<cantColumnas;j++){
               if (str.length() <= cantColumnas){
                   str += mat[j][i];
                   
               }
               if(str.contains(palabra)){
                   Esta=true;
               }
           }
       } return Esta;
   }
   
Como puedo hacer el metodo que busca la matriz en diagonal? graciass




(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.)