ahorcado
Publicado por Jose (13 intervenciones) el 19/12/2016 21:54:26
Buenas tardes gente.
Tengo un problema, tengo que hacer un ahorcado con las siguientes variables. Se que es basico, pero sigo teniendo errores, y quiero afianzar bien el tema. Dejo las variables y abajo el codigo que hice para ver si me pueden dar una mano porque no me doy cuenta de los errores que hice.
1.palabraSecreta: se pide que un jugador ingrese una palabra a adivinar. La misma se
debe leer por teclado sin tener en cuenta espacios en blanco, tabulaciones o saltos de
línea.
2.letrasElegidas: se deben guardar las letras que el jugador utiiza para encontrar la palabra
secreta para asegurarnos que no se repita la letra elegida. Para esto tenemos un array
de char con un máximo de 27 letras.
3.cantidadIntentos: se debe iniciar en 0 y, se incrementa cada vez que se propone una
letra que no está en la palabraSecreta. Cuando su valor llega a 7 se termina el juego
habiendo perdido el jugador que intentaba adivinar.
4.palabraDescubierta: esta palabra debe tener la longitud de la palabraSecreta e, inicial-
mente, debe estar formada por guiones. En la medida que se vayan proponiendo letras
que existan en la palabraSecreta se deben ir develando en palabraDescubierta.
Ejemplo: si palabraSecreta es "cohete", inicialmente palabraDescubierta va a ser "——".
Si se propusiera la letra e, palabraDescubierta pasaría a ser: "—e-e".
Desde ya muchas gracias
Tengo un problema, tengo que hacer un ahorcado con las siguientes variables. Se que es basico, pero sigo teniendo errores, y quiero afianzar bien el tema. Dejo las variables y abajo el codigo que hice para ver si me pueden dar una mano porque no me doy cuenta de los errores que hice.
1.palabraSecreta: se pide que un jugador ingrese una palabra a adivinar. La misma se
debe leer por teclado sin tener en cuenta espacios en blanco, tabulaciones o saltos de
línea.
2.letrasElegidas: se deben guardar las letras que el jugador utiiza para encontrar la palabra
secreta para asegurarnos que no se repita la letra elegida. Para esto tenemos un array
de char con un máximo de 27 letras.
3.cantidadIntentos: se debe iniciar en 0 y, se incrementa cada vez que se propone una
letra que no está en la palabraSecreta. Cuando su valor llega a 7 se termina el juego
habiendo perdido el jugador que intentaba adivinar.
4.palabraDescubierta: esta palabra debe tener la longitud de la palabraSecreta e, inicial-
mente, debe estar formada por guiones. En la medida que se vayan proponiendo letras
que existan en la palabraSecreta se deben ir develando en palabraDescubierta.
Ejemplo: si palabraSecreta es "cohete", inicialmente palabraDescubierta va a ser "——".
Si se propusiera la letra e, palabraDescubierta pasaría a ser: "—e-e".
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char c, longit, *palabraSecreta,*palabraDescubierta, *letra, *letrasElegidas;
int i,cantidadIntentos=0,succ=0;
letrasElegidas=malloc(sizeof(char)*27);
printf("Ingrese longitud: ");
scanf("%d",&longit);
palabraSecreta=malloc(sizeof(char)*longit);
printf("Elija palabra: ");
for (i = 0;(c=getchar())!=EOF && c!='\n'; ++i)
{
palabraSecreta[i]=c;
}
palabraDescubierta=malloc(strlen(palabraSecreta)*sizeof(char));
for (i = 0; i < strlen(palabraSecreta); ++i)
{
palabraDescubierta[i]='-';
}
letra=malloc(sizeof(char));
while(cantidadIntentos<7){
printf("Ingrese letra: ");
scanf("%s",letra);
verificarLetra(letrasElegidas,letra);
for (i = 0; i < strlen(palabraSecreta); ++i)
{
if (strcmp(palabraSecreta[i],letra)==0)
{
palabraDescubierta[i]=letra;
succ=1;
}
}
if (succ != 1)
{
cantidadIntentos++;
}
if (strcmp(palabraSecreta,palabraDescubierta)==0)
{
printf("Adivinaste\n");
break;
}
}
}
void verificarLetra(char *s, char *l){
int i,esta=0;
for (i = 0; i < strlen(s); ++i)
{
if (strcmp(s[i],l)==0)
{
printf("La letra ya fue probada, pruebe otra: ");
scanf("%s", l);
verificarLetra(s,l);
esta=1;
}
}
if(esta == 0){
s[i]=l;
}
}
Desde ya muchas gracias
Valora esta pregunta
0