Foro de elhacker.net

Programación => Java => Mensaje iniciado por: usernovell en 14 Marzo 2013, 18:53 pm



Título: Problema sencillo en eclipse
Publicado por: usernovell en 14 Marzo 2013, 18:53 pm
Hola

Bueno me presento soy nuevo en este foro y espero asi como obtener ayuda de uds tambien poder ayudarlos, soy estudiante de 3 semestre de ing de sistemas.

ahora bien tengo un problema con este codigo y no he podido resolverlo y es que cuando el usuario digite una letra por ejemplo en este caso "L" el suma un acierto y continua pero si vuelve a ingresar l no he podido hacer que no sume aciertos y que me salga un mensaje diciendo que la palabra ya esta.

El programa de estar asi lo mas sencillo posible ya que es programa de pricipiantes.

import java.io.*;
public class Ahorcado {
public static void main(String[]args)throws IOException{
   BufferedReader lectura=new BufferedReader(new InputStreamReader(System.in));
   String temp;
   String palabra="lorenz";
   char c;
char []secreta=palabra.toCharArray();
int n=palabra.length();
int aciertos=0;
System.out.println("la longitud de la palabra es " +n);
char []copia=new char[n];
for (int i=0;i<n;i++)
copia='-';
do{
for (int i=0;i<n;i++)
System.out.print(copia);
 System.out.println(" ingrese una letra ");
 temp=lectura.readLine();
 c=temp.toCharArray()[0];
 
 for (int i=0;i<n;i++)
  if(secreta==c)
  {
    copia=c;
    aciertos++;
  }
   
     
     System.out.println("Esta palabra no es intenta con otra ");
     
  
  
  
}while(aciertos<n);

System.out.println("felicitaciones la palabra es " +palabra);
}

}


Título: Re: Problema sencillo en eclipse
Publicado por: Kenkox en 15 Marzo 2013, 05:19 am
Lo que podrias hacer es crear un arreglo que contenga las letras que el usuario ya haya tecleado... y justo antes de que compruebe de si la letra esta contenida en la palabra, iterar atraves del arreglo, si la letra que tecleo es igual a alguna letra contenida en el arreglo, entonces no sumas aciertos y mandas un mensaje de que ya ha puesto esa letra... en caso contrario, continua normalmente, es decir comprobando si la letra esta contenida en la palabra y blblabla. el tamño ddel arreglo que contiene las letras ya tecladas puede ser de tamaño = 27.... u otra opcion es que en lugar de manejar el "juego" con arreglos, lo manejes con arraylist

 Suerte.


Título: Re: Problema sencillo en eclipse
Publicado por: 1mpuls0 en 15 Marzo 2013, 17:27 pm
Lo que dice el compañero es muy correcto, tendría que ser algo así.

Código
  1. List letras = new ArrayList<char[]>();
  2.  
  3.        //Se leen las letras
  4.  
  5.        //Se buscan dentro del arraylist
  6.        if(letras.contains('L')) {
  7.            System.out.print("La letra ya fue ingresada\n");
  8.        }else {
  9.            //Si no se encontro dentro del arraylist se agrega
  10.            letras.add('L');
  11.  
  12.            //Buscar la letra dentro del arreglo de la palabra
  13.        }
  14.  

Solo es un ejemplo de como puede ser, ya depende que ti que tipo de datos primitivos manejes.

Saludos