elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda, problema ejercicio juego ahorcado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, problema ejercicio juego ahorcado  (Leído 2,190 veces)
Philips

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ayuda, problema ejercicio juego ahorcado
« en: 7 Marzo 2019, 19:04 pm »

Soy novato en programación, el problema es que no puedo es restar las vidas o intentos. si me pueden ayudar porfavor 


#include <stdio.h>
#include <string.h>
int vidas=6;
int correctas=0;
main (){
void lineas(int n, char a[]);
char palabra[100];
char letra;
char guiones[100];
int longitud;
void buscar_letra(char p[], int n, char l, char g[]);
printf ("Digite la palabra a adivinar: ");
scanf ("%s", palabra);
fflush(stdin);
system("cls");
longitud= strlen(palabra);
lineas(longitud,guiones);
printf ("\n");
   printf("\n\t||===== ");                 
   printf("\n\t||    | ");
    printf("\n\t||      ");
    printf("\n\t||      ");
    printf("\n\t||      ");
   printf("\n\t||      ");
while (vidas>0){
printf ("\nDigite la letra: ");
scanf("%c",&letra);
fflush(stdin);
if (letra>= 'a'&& letra<='z'){
buscar_letra(palabra,longitud,letra,guiones);
}
else {
   printf ("\nNo es una letra o la letra es mayuscula (digite una letra minuscula)");
}
}
}



void buscar_letra(char p[100], int n, char l,char g[]){
int i;
for(i=0;i<n;i++){
   if ()
   if(p==l){
      printf ("%c", l);
   correctas++;
}else {
   printf ("*");
}

}

if (correctas==n){
   printf ("\n ADIVINASTE LA PALABRA!!!");
   printf ("\n Ganaste...");
}
}

void lineas(int n, char a[]) {
   int i;
for (i=0;i<n;i++){
   printf("* ", a);
}
}


En línea

digimikeh

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Ayuda, problema ejercicio juego ahorcado
« Respuesta #1 en: 7 Marzo 2019, 19:30 pm »

Hola, este es tu código usando el tag de código del sitio...

No comprendo mucho de C, pero tu código no da algún error antes de compilar ?


Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int vidas=6;
  5. int correctas=0;
  6.  
  7. main (){
  8.     void lineas(int n, char a[]);
  9.     char palabra[100];
  10.     char letra;
  11.     char guiones[100];
  12.     int longitud;
  13.     void buscar_letra(char p[], int n, char l, char g[]);
  14.  
  15.     printf ("Digite la palabra a adivinar: ");
  16.     scanf ("%s", palabra);
  17.     fflush(stdin);
  18.     system("cls");
  19.     longitud= strlen(palabra);
  20.     lineas(longitud,guiones);
  21.     printf ("\n");
  22.     printf("\n\t||===== ");                
  23.     printf("\n\t||    | ");
  24.     printf("\n\t||      ");
  25.     printf("\n\t||      ");
  26.     printf("\n\t||      ");
  27.     printf("\n\t||      ");
  28.  
  29.     while (vidas>0){
  30.          printf ("\nDigite la letra: ");
  31.          scanf("%c",&letra);
  32.          fflush(stdin);
  33.  
  34.          if (letra>= 'a'&& letra<='z'){
  35.               buscar_letra(palabra,longitud,letra,guiones);
  36.          } else {
  37.               printf ("\nNo es una letra o la letra es mayuscula (digite una letra minuscula)");
  38.          }
  39.     }
  40. }
  41.  
  42.  
  43. void buscar_letra(char p[100], int n, char l,char g[]){
  44.     int i;
  45.  
  46.     for(i=0;i<n;i++){
  47.          if(p==l){
  48.          printf ("%c", l);
  49.          correctas++;
  50.  
  51.     }else {
  52.          printf ("*");
  53.     }
  54.  
  55. }
  56.  
  57. if (correctas==n){
  58.  
  59.      printf ("\n ADIVINASTE LA PALABRA!!!");
  60.      printf ("\n Ganaste...");
  61.  
  62. }
  63.  
  64.  
  65. void lineas(int n, char a[]) {
  66.       int i;
  67.  
  68.       for (i=0;i<n;i++){
  69.           printf("* ", a);
  70.       }
  71. }
  72.  
  73.  


En línea

Dungeons & dragons;
dragons.Attack();
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda, problema ejercicio juego ahorcado
« Respuesta #2 en: 7 Marzo 2019, 19:53 pm »

EDITO: No había visto el último mensaje pero como he añadido los comentarios al código, lo dejo para que se puedan ver, si no es necesario lo modifico y lo quito... :-\

El código entre etiquetas de código GeSHi (tienes un desplegable encima del cuadro de texto cuando escribes o modificas un mensaje)... :rolleyes:
Además de eso, lo suyo es tabular el código para que sea más fácil identificar cada bloque y ver rápidamente a qué nivel está.
Te dejo el código con las etiquetas, más o menos tabulado y con comentarios de las cosas que hay que cambiar/mejorar:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int vidas=6; // variable global, no recomendado
  5. int correctas=0; // variable global, no recomendado
  6. main (){ // main es una funcion, tiene que devolver algo. Devuelve un int, es decir, int main(){...}
  7.    void lineas(int n, char a[]); // las funciones se declaran fuera del main
  8.    char palabra[100]; // mejor usar una constante para controlar la longitud
  9.    char letra;
  10.    char guiones[100]; // lo mismo que dos lineas atras
  11.    int longitud;
  12.    void buscar_letra(char p[], int n, char l, char g[]); // funcion -> fuera del main
  13.    printf ("Digite la palabra a adivinar: ");
  14.    scanf ("%s", palabra); // no es muy seguro para cadenas. Mejor fgets()
  15.    fflush(stdin); // nada recomendado usar fflush para stdin
  16.    system("cls"); // innecesario si estas empezando
  17.    longitud= strlen(palabra);
  18.    lineas(longitud,guiones);
  19.  
  20. // si estas empezando, el dibujo para cuando ya funcione lo importante
  21.   printf ("\n");
  22.   printf("\n\t||===== ");                
  23.   printf("\n\t||    | ");
  24.   printf("\n\t||      ");
  25.   printf("\n\t||      ");
  26.   printf("\n\t||      ");
  27.   printf("\n\t||      ");
  28.  
  29.    while (vidas>0){ // no puedes ganar nunca si solo acaba cuando te quedas sin vidas
  30.        printf ("\nDigite la letra: ");
  31.        scanf("%c",&letra);
  32.        fflush(stdin); // otra vez, nada recomendado
  33.        if (letra>= 'a'&& letra<='z'){ // ponselo facil al usuario, convierte tu la letra a minuscula o mayuscula siempre
  34.            buscar_letra(palabra,longitud,letra,guiones);
  35.        }
  36.        else{
  37.            printf ("\nNo es una letra o la letra es mayuscula (digite una letra minuscula)");
  38.        }
  39.    }
  40. }
  41.  
  42. void buscar_letra(char p[100], int n, char l,char g[]){ // mejor usar nombres que ayuden a seguir el funcionamiento
  43.    int i;
  44.    for(i=0;i<n;i++){
  45.        if () // esto no pinta nada
  46.        if(p==l){
  47.            printf ("%c", l);
  48.            correctas++;
  49.        }else {
  50.            printf ("*");
  51.        }
  52.    }
  53.  
  54.    if(correctas==n){
  55.        printf ("\n ADIVINASTE LA PALABRA!!!");
  56.        printf ("\n Ganaste...");
  57.    }
  58. }
  59.  
  60. void lineas(int n, char a[]) { // usar mejores nombres de variables
  61.    int i;
  62.    for (i=0;i<n;i++){
  63.       printf("* ", a); // este formato no es correcto
  64.    }
  65. }

Y como veo que el <while> no funciona muy bien te pongo aquí los pasos que tienes que seguir:
Código:
letras_solucion := contarLetras(palabra_solucion)
mientras (vidas > 0 || !acertado)
    letra := pedirCaracter()
    si (existe(caracter, palabra_solucion))
        letras_acertadas := letras_acertadas + 1
        acertado := (letras_acertadas == letras_solucion)
    sino
        vidas := vidas - 1
    fin si
fin mientras

si (acertado)
    Has ganado
sino
    Has perdido
fin si
Ahora tienes que intentar traducir esto a lenguaje C. Puedes usar las funciones que he escrito yo o usar otras si así lo prefieres, pero tienes que implementarlas tú. Suerte :-X
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
lola linares

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Ayuda, problema ejercicio juego ahorcado
« Respuesta #3 en: 8 Abril 2019, 04:50 am »

Una gran sugerencia en este juego es que haya tres pistas (letras) ,lo cual te ayudaran a ir relacionando y formando las palabras de una manera más sencilla ,y cada vez que se progrese ir disminuyendolas
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
treblatp 3 12,925 Último mensaje 3 Febrero 2011, 20:18 pm
por Khronos14
Ayuda con el juego el ahorcado
Programación C/C++
Classic77 4 4,107 Último mensaje 7 Diciembre 2012, 15:21 pm
por durasno
Ayuda con juego el ahorcado en lenguaje c
Programación C/C++
KIDRAP1 4 8,295 Último mensaje 27 Junio 2013, 13:24 pm
por satu
Problema con juego del ahorcado
Programación C/C++
Nic88_bhba 2 2,044 Último mensaje 27 Diciembre 2014, 00:09 am
por patilanz
Alguien me podría ayudar con este problema sobre el juego de Ahorcado C++
Programación C/C++
DrummerVG 0 2,825 Último mensaje 4 Junio 2018, 21:21 pm
por DrummerVG
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines