elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con mi Sopa de Letra
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con mi Sopa de Letra  (Leído 2,206 veces)
Rijhording

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Ayuda con mi Sopa de Letra
« en: 17 Mayo 2010, 20:18 pm »

el error es como debo de cargar mi texto que lo tengo guardado en mi disco duro no lo abre solo me sale que dice abierto mas no me lo muestra para verlo ;D:\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 porfavor
esto 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
  1. import java.io.*;
  2.  
  3.  
  4. public class BusquedaPalabras
  5. {
  6. private static final int MAX_FILAS    =                10;
  7. private static final int MAX_COLUMNAS =           10;
  8. private static final int MAX_PALABRAS =        100000;
  9. private int filas;
  10. private int columnas;
  11. private int numPalbras;
  12. private String [] palabras=new String[MAX_PALABRAS];
  13. private BufferedReader sopaStream;
  14. private BufferedReader palabraStream;
  15. private char sopa[][]= new char[MAX_FILAS][MAX_COLUMNAS];
  16.  
  17. public BusquedaPalabras()
  18. {
  19. sopaStream = abreFichero("introduzca Fichero de la Sopa");
  20. palabraStream = abreFichero("y el del diccionario");
  21. leeSopa();
  22. leePalabras();
  23. }
  24.  
  25. private BufferedReader abreFichero(String mensaje)
  26. {
  27. String nombreFichero = " ";
  28. FileReader fichero;
  29. BufferedReader fichEntrada = null;
  30.  
  31. do
  32. {
  33.    System.out.println(mensaje + ":");
  34.  
  35.    try
  36.    {
  37.      nombreFichero=in.readLine();
  38.      if(nombreFichero==null)
  39.          System.exit(0);
  40.      fichero = new FileReader(nombreFichero);
  41.      fichEntrada= new BufferedReader(fichero);
  42.    }
  43.    catch(IOException e)
  44.    {System.err.println("No se puede abrir"+nombreFichero);}
  45. }while(fichEntrada==null);
  46.  
  47. System.out.println("Abierto" + nombreFichero);
  48. return fichEntrada;
  49. }
  50.  
  51. private void leePalabras()
  52. {
  53.  
  54. int numPalabras=0;
  55.  
  56. try
  57. {
  58.    while((palabras[numPalabras]= palabraStream.readLine())!=null)
  59.         {
  60.                if(numPalabras!=0 && palabras[numPalbras].compareTo(palabras[numPalbras-1])<0)
  61.                {
  62.                 System.err.println("El Diccionario no esta"+"ordenado-saliendo");
  63.                 continue;
  64.                }
  65.                else if(++numPalbras>=MAX_PALABRAS)
  66.                break;
  67.         }
  68.  
  69.            if(palabraStream.ready())
  70.              System.err.println("Aviso: no se han leido los "+"datos-incremente MAX_PALABRAS");
  71. }
  72. catch(IOException e)
  73. {}
  74. }
  75.  
  76.  
  77. private void leeSopa()
  78. {
  79. String unaLinea;
  80.    try {
  81.    int i=0;
  82.    while((unaLinea = sopaStream.readLine())!=null){
  83.    String t = unaLinea.replace(" ", "");
  84.    columnas = t.length();
  85.     for(int j=0;j<columnas;j++)
  86.         sopa[i][j]=t.charAt(j);
  87.         i++;
  88.     }
  89.     }
  90.        catch(IOException e){
  91.         e.printStackTrace();
  92.        }
  93.   }
  94. /*
  95.  private void leeSopa()
  96. {
  97. String unaLinea;
  98.  
  99.     try
  100.     {
  101.     unaLinea=sopaStream.readLine();
  102.         if(unaLinea==null)
  103.         {
  104.             filas=0;
  105.             return;
  106.         }
  107.         columnas=unaLinea.length();
  108.         for(int i=0;i<columnas;i++)
  109.             sopa[0][i]=unaLinea.charAt(i);
  110.  
  111.         for(filas=1;
  112.             (unaLinea=sopaStream.readLine())!=null;filas++)
  113.         {
  114.             if(unaLinea.length()!=columnas)
  115.                 System.err.println("La sopa es incorrecta");
  116.  
  117.         for(int i=0;i<columnas;i++)
  118.             sopa[filas][i]=unaLinea.charAt(i);
  119.         }
  120.       }
  121.         catch(IOException e)
  122.         {}
  123. }
  124. */
  125. private int resolverDireccion(int filaBase,int colBase,int filaDelta,int colDelta)
  126. {
  127.  
  128.    String secuencia=" ";
  129.    int numPal=0;
  130.    int resultadoBusqueda;
  131.  
  132.    secuencia+=sopa[filaBase][colBase];
  133.    for(int i=filaBase+filaDelta,j=colBase+colDelta;
  134.            i>=0&& j>=0 && i<filas && j< columnas;
  135.            i+=filaDelta,j+=colDelta)
  136.    {
  137.         secuencia+=sopa[j];
  138.         resultadoBusqueda=busquedaPrefijo(palabras,secuencia,numPal);
  139.  
  140.         if(!palabras[resultadoBusqueda].startsWith(secuencia))
  141.         break;
  142.  
  143.         if(palabras[resultadoBusqueda].equals(secuencia) )
  144.         {
  145.         numPal++;
  146.         System.out.println("Encontrada"+secuencia + "de" + filaBase + "" + colBase +
  147.                            "a" + i + "" + j);
  148.         }
  149.  
  150.    }
  151.    return numPal;
  152.  
  153. }
  154.  
  155. private static int busquedaPrefijo(String [] a,String x,int n)
  156. {
  157. int inf=0;
  158. int sup=n-1;
  159. while(inf<sup)
  160. {
  161.    int med=(inf+sup)/2;
  162.    if(a[med].compareTo(x)<0)
  163.    {
  164.        inf=med+1;
  165.    }
  166.    else
  167.        sup=med;
  168. }
  169. return inf;
  170.  
  171. }
  172.  
  173.  
  174. public int resolverSopa()
  175. {
  176. int numPal=0;
  177. for(int f=0;f<filas;f++)
  178. {
  179.        for(int c=0;c<columnas;c++)
  180.        {
  181.            for(int df=-1;df<=1;df++)
  182.            {
  183.                for(int dc=-1;dc<=1;dc++)
  184.                {
  185.                    if(df!=0 || dc!=0)
  186.                    {numPal=numPal+resolverDireccion(f,c,df,dc);
  187. }
  188.                }
  189.            }
  190.  
  191.        }
  192.  
  193.  
  194. }
  195. return numPal;
  196. }
  197.  
  198.  
  199.  
  200. }
  201.  
  202. /*Void main*/
  203. public class Main {
  204.  
  205.    /**
  206.      * @param args the command line arguments
  207.      */
  208.    public static void main(String[] args)
  209.    {
  210.    BusquedaPalabras p=new BusquedaPalabras();
  211.    System.out.println("Resolviendo....");
  212.    p.resolverSopa();
  213.    }
  214.  
  215. }
  216.  
  217.  
  218. [code=/java]
[/code]


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿A favor o en contra de Joomla hasta la sopa?
Desarrollo Web
dimitrix 9 6,199 Último mensaje 20 Abril 2011, 09:46 am
por dimitrix
ley SOPA « 1 2 3 4 »
Foro Libre
peib0l 34 14,241 Último mensaje 11 Febrero 2012, 01:36 am
por mariarea
El Congreso de EE UU congela la ley SOPA hasta encontrar consenso
Noticias
wolfbcn 1 1,807 Último mensaje 16 Enero 2012, 18:54 pm
por cker
Ley SOPA como nos jodera?
Dudas Generales
Sapote 6 5,555 Último mensaje 29 Enero 2012, 20:53 pm
por Software Download
Wikipedia y SOPA?
Foro Libre
Embusterillo de bolsillo 1 1,956 Último mensaje 19 Enero 2012, 03:28 am
por .:UND3R:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines