Problema sencillo en eclipse

Iniciado por usernovell, 14 Marzo 2013, 18:53 PM

0 Miembros y 1 Visitante están viendo este tema.

usernovell

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);
}

}

Kenkox

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.

1mpuls0

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
abc