Hola, se me pidió hacer un ahorcado y me surgieron un par de problemas a la hora de la ejecución. el programa es el siguiente:
1er problema: los espacios de la palabra se generan bien, (ej: mama. = _ _ _ _) pero al ingresar una letra (sea o no correcta) me escribe dos veces seguidas (printf("\n%s", juego); printf("\nJugador 2, digite una letra: ")) esos printf.... por qué?
2do problema: cuando el admin ingresa la palabra (ej: foro el hacker.)los espacios salen normal. pero cuando ingreso santiago o jeronimo (no he encontrado mas ejemplos donde me ocurra esto) aparecen los espacios seguidos de simbolos (ej: santiago.= _ _ _ _ _ _ _ _ 1'@).
AYUDA
GRACIAS.
MOD: Etiquetas GeSHi.
Código (c) [Seleccionar]
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 100
int main ()
{
/*Declaracion de variables*/
int i, j, k, espacios ,fallidos, exito, letras, si, no;
char letra;
char palabra[N], juego[N];
k=0;
letras=0;
exito=0;
si=0;
no=0;
printf("Bievenido, esto es ahorcado, un juego para dos donde un administrador escribe una palabra/frase y el otro tendra que adivinarla.");
printf("\nADVERTENCIA: cada vez que hagas un intento fallido, estaras mas cerca de ser ahorcado y perder el juego.");
printf("\nComenzemos, administrador, ingrese la palabra/frase y finalice con un punto: ");
gets (palabra);
/*escribir espacios iniciales*/
while(palabra[k]!='.'){
if(palabra[k]!=32){
juego[k]='_';
letras=letras+1;
}else{
juego[k]=' ';
}
k=k+1;
}
espacios=k;
/*recibir letra y rellenar si es correcto*/
while(fallidos<8 && exito!=1){
printf("\n%s", juego);
printf("\nJugador 2, digite una letra: ");
scanf("%c", &letra);
for (i=0;i<=espacios;i++){
if(letra==palabra[i]){
juego[i]=letra;
si=si+1;
if(si==letras){
exito=1;
}
}
if(letra!=palabra[i]){
no=no+1;
if(no==espacios){
fallidos=fallidos+1;
no=0;
}
}
}
}
if(fallidos==8){
printf("\nHas perdido. Fin.\n");
}
if(exito==1){
printf("\nHas ganado. Felicitaciones!\n");
}
system("pause");
return(0);
}
1er problema: los espacios de la palabra se generan bien, (ej: mama. = _ _ _ _) pero al ingresar una letra (sea o no correcta) me escribe dos veces seguidas (printf("\n%s", juego); printf("\nJugador 2, digite una letra: ")) esos printf.... por qué?
2do problema: cuando el admin ingresa la palabra (ej: foro el hacker.)los espacios salen normal. pero cuando ingreso santiago o jeronimo (no he encontrado mas ejemplos donde me ocurra esto) aparecen los espacios seguidos de simbolos (ej: santiago.= _ _ _ _ _ _ _ _ 1'@).
AYUDA
GRACIAS.
MOD: Etiquetas GeSHi.