Autor
|
Tema: Ayuda, problema ejercicio juego ahorcado (Leído 2,190 veces)
|
Philips
Desconectado
Mensajes: 3
|
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
Mensajes: 191
|
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 ? #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: "); lineas(longitud,guiones); while (vidas>0){ printf ("\nDigite la letra: "); 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(p==l){ correctas++; }else { } } if (correctas==n){ printf ("\n ADIVINASTE LA PALABRA!!!"); } void lineas(int n, char a[]) { int i; for (i=0;i<n;i++){ } }
|
|
|
En línea
|
Dungeons & dragons; dragons.Attack();
|
|
|
K-YreX
|
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)... 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: #include <stdio.h> #include <string.h> int vidas=6; // variable global, no recomendado int correctas=0; // variable global, no recomendado main (){ // main es una funcion, tiene que devolver algo. Devuelve un int, es decir, int main(){...} void lineas(int n, char a[]); // las funciones se declaran fuera del main char palabra[100]; // mejor usar una constante para controlar la longitud char letra; char guiones[100]; // lo mismo que dos lineas atras int longitud; void buscar_letra(char p[], int n, char l, char g[]); // funcion -> fuera del main printf ("Digite la palabra a adivinar: "); scanf ("%s", palabra); // no es muy seguro para cadenas. Mejor fgets() fflush(stdin); // nada recomendado usar fflush para stdin system("cls"); // innecesario si estas empezando longitud= strlen(palabra); lineas(longitud,guiones); // si estas empezando, el dibujo para cuando ya funcione lo importante printf ("\n"); printf("\n\t||===== "); printf("\n\t|| | "); printf("\n\t|| "); printf("\n\t|| "); printf("\n\t|| "); printf("\n\t|| "); while (vidas>0){ // no puedes ganar nunca si solo acaba cuando te quedas sin vidas printf ("\nDigite la letra: "); scanf("%c",&letra); fflush(stdin); // otra vez, nada recomendado if (letra>= 'a'&& letra<='z'){ // ponselo facil al usuario, convierte tu la letra a minuscula o mayuscula siempre 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[]){ // mejor usar nombres que ayuden a seguir el funcionamiento int i; for(i=0;i<n;i++){ if () // esto no pinta nada 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[]) { // usar mejores nombres de variables int i; for (i=0;i<n;i++){ printf("* ", a); // este formato no es correcto } }
Y como veo que el <while> no funciona muy bien te pongo aquí los pasos que tienes que seguir: 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
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
lola linares
Desconectado
Mensajes: 1
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
|
treblatp
|
3
|
12,925
|
3 Febrero 2011, 20:18 pm
por Khronos14
|
|
|
Ayuda con el juego el ahorcado
Programación C/C++
|
Classic77
|
4
|
4,107
|
7 Diciembre 2012, 15:21 pm
por durasno
|
|
|
Ayuda con juego el ahorcado en lenguaje c
Programación C/C++
|
KIDRAP1
|
4
|
8,295
|
27 Junio 2013, 13:24 pm
por satu
|
|
|
Problema con juego del ahorcado
Programación C/C++
|
Nic88_bhba
|
2
|
2,044
|
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
|
4 Junio 2018, 21:21 pm
por DrummerVG
|
|