Java - Mover letras dentro de una matrix

 
Vista:

Mover letras dentro de una matrix

Publicado por Z (2 intervenciones) el 08/10/2019 22:34:16
Buenas, estoy moviendo letras aleatoriamente dentro de una matriz, cada que encuentra una letra se mueve sea para arriba, abajo, derecha o izquierda, el problema que tengo es que por ejemplo si la letra esta en matriz[0][0] solo podria moverla para abajo o derecha pero aveces el random de las posiciones me sale que mueva hacia arriba y se me cae el programa, igual si la letra esta el el limite de la matriz y se mueve hacia la derecha. Como podría validar esos casos. gracias. no quiero código, sino alguna sugerencia que me ayude a pensar.

Estoy usando DR.Java
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

Mover letras dentro de una matrix

Publicado por Billy Joel (875 intervenciones) el 08/10/2019 23:56:16
Se me ocurre que antes de mover valides los posibles movimientos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public boolean canMoveToLeft(String[][] matriz, int fila, int columna) {
    return columna > 0;
}
 
public boolean canMoveToRight(String[][] matriz, int fila, int columna) {
    return columna < matriz[0].length - 1;
}
 
public boolean canMoveToUp(String[][] matriz, int fila, int columna) {
    return fila > 0;
}
 
public boolean canMoveToDown(String[][] matriz, int fila, int columna) {
    return fila < matriz.length - 1;
}

Depende de tu lógica, aleatoriamente puedes escoger el movimiento pero antes de ejecutarlo puedes validar si el movimiento es válido.
En caso de no ser válido entonces se reinicia el proceso aleatorio hasta que el movimiento sea válido.

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
0
Comentar

Mover letras dentro de una matrix

Publicado por Z (2 intervenciones) el 09/10/2019 01:13:58
no me ha quedado muy ckaro, de igual modo gracias.
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
Imágen de perfil de Rene
Val: 25
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Mover letras dentro de una matrix

Publicado por Rene (6 intervenciones) el 10/10/2019 07:01:15
Vamos a tomar una Matriz M de oreden m x n para m, n cualesquiera.

Necesito mover el valor que se encuentra en el elemento (i, j) hacia otro punto de la matriz de manera aleatoria (intercambiando los valores). Llamemos a este elemento r, asi definamos:

El r-ésimo elemento de la matriz se localiza en el elemento a(i,j) como sigue:

REGLA

r/n da como resultado: R residuo de la división y p como el cociente de la división, entonces definimos:

i = { p si R = 0
{ p+1 si R > 0

j = { n Si R = 0
{ R si R > 0

El elemento r-esimo lo elegimos aleatorio de la siguiente manera r = random((m x n) - 1) + 1

Veamos un ejemplo:

Sea una matriz M de orden 4 x 6
y los elementos r-ésimos que nos dio la aleatorizacion serian: 9, 17, 21 y 24

Para r =9 hacemos:
r/n = 9/6 nos da cociente = 1 y residuo = 3 aplicamos la regla y concluimos que corresponde con el elemento a(2,3).
Para r =17 hacemos:
r/n = 17/6 nos da cociente = 2 y residuo = 5 aplicamos la regla y concluimos que corresponde con el elemento a(3,5).
Para r =21 hacemos:
r/n = 21/6 nos da cociente = 3 y residuo = 3 aplicamos la regla y concluimos que corresponde con el elemento a(4,3).
Para r =24 hacemos:
r/n = 24/6 nos da cociente = 4 y residuo = 0 aplicamos la regla y concluimos que corresponde con el elemento a(4,6).

Tarea: determine el elemento a(i,j) para r = 3 y n = 5.

Recomendación: Leer en wikipedia sobre "matriz de las permutaciones cíclicas σ(a1,a2,…..an)"

Suerte René
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