Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/11/2013, 09:05
carlos12345678909
 
Fecha de Ingreso: octubre-2013
Ubicación: Valencia
Mensajes: 5
Antigüedad: 10 años, 7 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;
}


}