:\texto.txt y D:\diccionario.txt estos son mis archivos que tengo que cargar para que pueda ver la sopa de letras pero aun asi no me hace la busqueda para mi mi codigo esta bien pero nose en que me estoy equivocando necesito de su ayuda porfavoresto es lo que hay en mi archivo texto.txt que esta guardado en mi disco D
AIBMOLOCN
RNESPAÑAI
OCIXEMPRC
GUATEMALA
CBPANAMAR
HAYILEAPA
IOCIXEGEG
LHYAUGURU
ECUADORUA
y esto es lo que dice en diccionario.txt que tambien esta guardado en mi disco D:
Argentina
Chile
Colombia
Cuba
Ecuador
Espana
Guatemala
Mexico
Nicaragua
Panamá
Peru
Uruguay
Este es mi codigo
Código
[/code]
import java.io.*; public class BusquedaPalabras { private static final int MAX_FILAS = 10; private static final int MAX_COLUMNAS = 10; private static final int MAX_PALABRAS = 100000; private int filas; private int columnas; private int numPalbras; private char sopa[][]= new char[MAX_FILAS][MAX_COLUMNAS]; public BusquedaPalabras() { sopaStream = abreFichero("introduzca Fichero de la Sopa"); palabraStream = abreFichero("y el del diccionario"); leeSopa(); leePalabras(); } { FileReader fichero; do { try { nombreFichero=in.readLine(); if(nombreFichero==null) } }while(fichEntrada==null); return fichEntrada; } private void leePalabras() { int numPalabras=0; try { while((palabras[numPalabras]= palabraStream.readLine())!=null) { if(numPalabras!=0 && palabras[numPalbras].compareTo(palabras[numPalbras-1])<0) { continue; } else if(++numPalbras>=MAX_PALABRAS) break; } if(palabraStream.ready()) } {} } private void leeSopa() { String unaLinea; try { int i=0; while((unaLinea = sopaStream.readLine())!=null){ columnas = t.length(); for(int j=0;j<columnas;j++) sopa[i][j]=t.charAt(j); i++; } } e.printStackTrace(); } } /* private void leeSopa() { String unaLinea; try { unaLinea=sopaStream.readLine(); if(unaLinea==null) { filas=0; return; } columnas=unaLinea.length(); for(int i=0;i<columnas;i++) sopa[0][i]=unaLinea.charAt(i); for(filas=1; (unaLinea=sopaStream.readLine())!=null;filas++) { if(unaLinea.length()!=columnas) System.err.println("La sopa es incorrecta"); for(int i=0;i<columnas;i++) sopa[filas][i]=unaLinea.charAt(i); } } catch(IOException e) {} } */ private int resolverDireccion(int filaBase,int colBase,int filaDelta,int colDelta) { int numPal=0; int resultadoBusqueda; secuencia+=sopa[filaBase][colBase]; for(int i=filaBase+filaDelta,j=colBase+colDelta; i>=0&& j>=0 && i<filas && j< columnas; i+=filaDelta,j+=colDelta) { secuencia+=sopa[j]; resultadoBusqueda=busquedaPrefijo(palabras,secuencia,numPal); if(!palabras[resultadoBusqueda].startsWith(secuencia)) break; if(palabras[resultadoBusqueda].equals(secuencia) ) { numPal++; "a" + i + "" + j); } } return numPal; } { int inf=0; int sup=n-1; while(inf<sup) { int med=(inf+sup)/2; if(a[med].compareTo(x)<0) { inf=med+1; } else sup=med; } return inf; } public int resolverSopa() { int numPal=0; for(int f=0;f<filas;f++) { for(int c=0;c<columnas;c++) { for(int df=-1;df<=1;df++) { for(int dc=-1;dc<=1;dc++) { if(df!=0 || dc!=0) {numPal=numPal+resolverDireccion(f,c,df,dc); } } } } } return numPal; } } /*Void main*/ public class Main { /** * @param args the command line arguments */ { BusquedaPalabras p=new BusquedaPalabras(); p.resolverSopa(); } } [code=/java]





Autor


En línea
