10/11/2013, 09:05
|
| | Fecha de Ingreso: octubre-2013 Ubicación: Valencia
Mensajes: 5
Antigüedad: 11 años, 2 meses Puntos: 0 | |
Respuesta: ¿Alguien me puede ayudar con este ejercicio de programación en java? Yo he pensado algo así
public class CalculadorDePalabras {
private ArrayList<String> listaPalabras;
private int n;
private char[][]tabla;
public CalculadorDePalabras(int n, char[][]tabla){
this.n=n;
this.tabla=tabla;
}
public int movimientos(int i, int j,int indice){
return 0;
}
public void comprobarCamino(int i, int j, int dir, String palabra, int n)
{
int sig_i=0 ,sig_j=0;
// Calculamos la posicion del siguiente elemento en funcion de la posicion
switch(dir)
{
case 1: // Arriba
sig_i = i;
sig_j = j-1;
break;
case 2: // Diagonal arriba derecha
sig_i = i+1;
sig_j = j-1;
break;
case 3: // derecha
sig_i = i+1;
sig_j = j;
break;
case 4: // Diagonal abajo derecha
sig_i = i+1;
sig_j = j+1;
break;
case 5: // Abajo
sig_i = i;
sig_j = j+1;
break;
case 6: // Diagonal abajo izquierda
sig_i = i-1;
sig_j = j+1;
break;
case 7: // izquiera
sig_i = i-1;
sig_j = j;
break;
case 8: // Diagonal arriba izquierda
sig_i = i-1;
sig_j = j-1;
break;
}
if ( ((sig_i >= 0 && sig_i < this.n) && (sig_j >= 0 && sig_j < this.n)))
{
// Existe siguiente elemento
if ((int)this.tabla[i][j]< (int)this.tabla[sig_i] [sig_j]){
// Correcto
palabra = palabra + this.tabla[sig_i][ sig_j];
System.out.println(palabra);
comprobarCamino(sig_i, sig_j, dir, palabra, n);
}
else
{
if (palabra.length() >= 3)
{
// Palabra correcta
listaPalabras.add(palabra);
System.out.println(palabra);
}
}
}}
public ArrayList<String> getListaPalabras() {
return listaPalabras;
}
} |