Java - Ayuda para desplazarme en matrices (JAVA)

 
Vista:

Ayuda para desplazarme en matrices (JAVA)

Publicado por Alexander (3 intervenciones) el 13/09/2019 22:51:37
Se deberá crear un arreglo de X tamaño (cuadrado) que permita lo siguiente:

1. Generar aleatoriamente la carga de este arreglo, con valores que van del 1 al 9.
2. Pintar en pantalla el arreglo original de manera tabulada (tipo matriz).
3. Marcar la posición (0,0) en valor 0.
4. A partir de esa posición debe hacer el recorrido, de izquierda a derecha (→) y de arriba hacia abajo (), identificando el valor más alto entre las siguientes tres celdas:
a. Celda a la derecha de su posición.
b. Celda a la diagonal de su posición.
c. Celda bajo su posición.

5. Una vez identificado el valor más alto, debe caerle encima y reemplazar el valor por un 0.
6. Pintar en pantalla el “arreglo modificado” de manera tabulada (tipo matriz), esto para ir viendo por pantalla cada vez que logra resolver un valor mayor.
7. Esta nueva posición se va a convertir ahora en el nuevo punto de salida, para repetir los pasos 4 y 5.
8. Terminará una vez que haya llegado al final de alguno de los lados del cuadrado y haya completado el recorrido de los valores más altos.
9. Hay que considerar que, si indicó un arreglo de tamaño 8 al final tendrá 9 pantallas impresas, la original más los casos en que un valor paso a valor cero.


Ya se como realizar la matriz y llenarla con números aleatorios pero no se como desplazarme hacia las celdas que me pide, agradeceria la ayuda o ejemplos que me puedan brindar para realizar este ejercicio y comprenderlo de manera correcta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

[SOLUCION] Ayuda para desplazarme en matrices (JAVA)

Publicado por Billy Joel (876 intervenciones) el 16/09/2019 17:07:30
El problema lo resuelvo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import java.util.Random;
 
public class MatrizAlexander {
 
    /**
     * Devuelve un número aleatorio entre los límites
     *
     * @param min
     * @param max
     * @return
     */
    public static Integer getRandomNumber(int min, int max) {
        return new Random().nextInt(max - min + 1) + min;
    }
 
    /**
     * Metodo utilizado para imprimir la matriz
     *
     * @param matriz
     */
    public static void imprimirMatriz(int[][] matriz) {
        for (int i = 0; i < matriz.length; i++) {
            for (int j = 0; j < matriz.length; j++) {
                System.out.print(matriz[i][j] + "\t");
            }
            System.out.println();
        }
    }
 
    public static void main(String[] args) {
        int TAMANO_X = 8;
        int[][] matriz = new int[TAMANO_X][TAMANO_X];
 
        /**
         * Llenamos la matriz con valores aleatorios entre el 0 y el 9
         */
        for (int i = 0; i < TAMANO_X; i++) {
            for (int j = 0; j < TAMANO_X; j++) {
                matriz[i][j] = getRandomNumber(0, 9);
            }
        }
 
        /**
         * Imprimimos el estado inicial de la matriz
         */
        System.out.println("Pantalla 1");
        imprimirMatriz(matriz);
        System.out.println();
 
        //Ahora aplicamos el punto 3
        matriz[0][0] = 0;
        System.out.println("Pantalla 2");
        imprimirMatriz(matriz);
        System.out.println();
        /**
         * Ahora aplicamos los pasos 4, 5 y 6
         */
        for (int i = 0; i < TAMANO_X; i++) {
            if (i + 1 < TAMANO_X) {
                System.out.println("Pantalla: " + (i + 3));
                if (matriz[i][i + 1] > matriz[i + 1][i + 1] && matriz[i][i + 1] > matriz[i + 1][i]) {
                    matriz[i][i + 1] = 0;
                } else if (matriz[i + 1][i + 1] > matriz[i][i + 1] && matriz[i + 1][i + 1] > matriz[i + 1][i]) {
                    matriz[i + 1][i + 1] = 0;
                } else if (matriz[i + 1][i] > matriz[i][i + 1] && matriz[i + 1][i] > matriz[i + 1][i + 1]) {
                    matriz[i + 1][i] = 0;
                }
                imprimirMatriz(matriz);
                System.out.println();
            }
        }
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

[SOLUCION] Ayuda para desplazarme en matrices (JAVA)

Publicado por Alexander (3 intervenciones) el 16/09/2019 19:48:54
WOW muchisimas gracias me has ayudado mucho, voy a estudiar el código que me has mandado y voy a aprender a hacerlo a mi manera, te lo agradezco mucho enserio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar