SoloCodigo

Programación General => Java => Mensaje iniciado por: sterlingdiazd en Martes 5 de Julio de 2011, 01:09

Título: Problema de logica con sopa
Publicado por: sterlingdiazd en Martes 5 de Julio de 2011, 01:09
Saludos a Todos.

Estoy haciendo un programa de una sopa de letras compuesta por una matriz 9*9. He desarrollado el siguiente codigo y suplico su ayuda para terminarlo. Lo que hace es sustituir las letras de primera linea de del documento sopa.txt, y la sustituye por la misma letra cubierta por chorchetes. Asi si la primera linea se muestra asi:

Citar
F O M Q R X L O B O

El codigo que tengo hasta ahora la mostrara asi:

Citar
F
  • M Q R X [L]
Eso es lo que tiene que hacer el programa. Pero en la parte que estoy varado en en la logica. Ya que como muestra el codigo anterior, la segunda letra no deberia mostrarse con el corchete aunque esa letra este incluida en la palabra que debe buscar, sino que solo se deben "encorchetar" palabras completas que sean igual a la que se busca y no cada letra que coincida.

Como ven, el problema por el momento no es el codigo, sino la logica. No tengo las ideas de como hacerlo. Cualquier ayuda o sugerencia seria grandemente agradecida. Gracias!!!

Código: Java
  1.  
  2. import java.io.*;
  3. import java.util.LinkedList;
  4.  
  5. public class Lector {
  6.     public static void main(String[]args) throws FileNotFoundException, IOException{
  7.         try {
  8.            
  9.             FileReader archivo = new FileReader("sopa.txt");
  10.             BufferedReader buff = new BufferedReader(archivo);
  11.             LinkedList caracteresLinea = new LinkedList();
  12.             LinkedList animalCorchetado = new LinkedList();
  13.             String linea = buff.readLine();
  14.             char [] charLinea = linea.toCharArray();
  15.             archivo.close();
  16.            
  17.             //GUARDA CADA LETRA EN UN OBJETO STRING EN UN LINKEDLIST
  18.             for (int i = 0; i < charLinea.length; i++){
  19.                 String x = charLinea[i] +"";
  20.                 caracteresLinea.add(x);
  21.                 System.out.print(x);
  22.             }
  23.             System.out.print("n");
  24.              
  25.             String [] animal = {"L", "O", "B", "O"};
  26.             //String [] animalCorchetado = {"[L]", "[O]", "[B]", "[O]"};
  27.            
  28.             for (int i = 0; i < charLinea.length; i++){
  29.                 String x = "[" + charLinea[i] + "]";
  30.                 animalCorchetado.add(x);
  31.                 System.out.print(x);
  32.             }
  33.  
  34.             /*
  35.             for  (int x = 0; x < animal.length; x++) {
  36.                 for (int i = 0; i < caracteresLinea.size(); i++){
  37.                
  38.                    
  39.                     if ( caracteresLinea.get(i).equals(animal[x])  ){
  40.                         caracteresLinea.set(i, animalCorchetado[x]);
  41.                         break;
  42.                     }
  43.                 }
  44.             }
  45.             */
  46.  
  47.             //Muestra las letras String del LinkedList
  48.             for (int i = 0; i < caracteresLinea.size(); i++){
  49.                 System.out.print(caracteresLinea.get(i));
  50.             }
  51.             System.out.print("n");
  52.            
  53.         } catch (IOException ex) {
  54.             System.out.println("Error: " + ex.toString());
  55.         }
  56.        
  57.     }
  58. }
  59.