Adivinar palabras con 3 dificultades
Publicado por Jesus Alberto (4 intervenciones) el 01/10/2018 03:30:50
hola que tal estoy haciendo un programa que me adivine palabras y que tenga 3 dificultades pero no logro hacer que me lea las letras que escribo porque directamente me manda a la excepcion que puse en el codigo
esto es lo que llevo actualmente

esto es lo que llevo actualmente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package adivinapalabras;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class AdivinarPalabras {
public static BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
private static Set correctas;
String Facil[]= {"reir","hola","jugo","papa","pala","pasa","para","alma","nada","casa","mama","tele","mira","tela","bala","cera","tira"};
String Normal[]={"apretado", "avestruz","ceramica","estimulo","amarillo","eleccion","estrecho","invierno","chatarra","estrella"};
String Dificil[]={"indiscutible","participante","personalismo","perturbacion","contundencia","supervisamos","buscapleitos","vinculandose"};
public String generaPalabra(int Facil)
{
int n;
n= (int)(Math.random()*4);
if(Facil==0)
return Normal[n];
else
return Dificil[n];
}
public boolean checarLetra (char letra,String palabra )
{
boolean mensaje=false;
for(int i=0;i<palabra.length();i++)
{
if(letra==palabra.charAt(i))
{
mensaje = true;
break;
}
}
return mensaje;
}
public Set letrasPalabra(String palabra)
{
Set letras = new HashSet();
for (int i=0;i<palabra.length() ;i++)
{
if(palabra.charAt(i) != ' ')
{
letras.add(palabra.charAt(i));
}
}
return letras;
}
public String actualizaVisible(Set correctas, String palabra, String visible)
{
visible =""; boolean bandera = false;
Iterator it = correctas.iterator();
for(int i=0; i<palabra.length() ;i++)
{
while(it.hasNext())
{
char a = it.next().toString().charAt(0);
System.out.println(" "+a+" "+palabra.trim().charAt(i) );
if ( a == palabra.trim().charAt(i) )
{
visible += a; bandera = true;
break;
}
}
if (bandera == false)
{
visible += "_";
}
bandera=false; it = correctas.iterator();
}
return visible;
}
public static void main(String[] args) throws Exception {
System.out.println("Establezca el nivel de dificultad: ");
System.out.println("Facil(f)");
System.out.println("Normal(n)");
System.out.println("Dificil(d)");
String dificultad = entrada.readLine();
switch(dificultad)
{
case "f":
AdivinarPalabras Operacion = new AdivinarPalabras ();
Operacion.generaPalabra(1);
System.out.println("Palabra generada: ****");
System.out.println("teclea una letra de la palabra");
String letra = entrada.readLine();
char l=letra.charAt(0);
try
{
Operacion.checarLetra(l, letra);
Operacion.letrasPalabra(letra);
Operacion.actualizaVisible( correctas,letra,letra);
}
catch(Exception ex)
{
System.out.println("No introdujo una letra valida "+ex.getMessage());
}
case "n":
}
}
}
Valora esta pregunta


0