Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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 (java) [Seleccionar]

List letras = new ArrayList<char[]>();
       
        //Se leen las letras
       
        //Se buscan dentro del arraylist
        if(letras.contains('L')) {
            System.out.print("La letra ya fue ingresada\n");
        }else {
            //Si no se encontro dentro del arraylist se agrega
            letras.add('L');
           
            //Buscar la letra dentro del arreglo de la palabra
        }


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

Saludos