Autor
|
Tema: Ayuda, programa en C .. El ahorcado.... (Leído 4,885 veces)
|
TopoJunior
Desconectado
Mensajes: 40
|
El código hasta ahora me va bien. Explico : Van a ser 3 palabras, no solo uno, por eso creé el aleatorio. El caso es qué, como veis, si introducimos una tecla f, lo que el programa hará va a ser esto . F _ _ _ _ _ _ Bien... Si introducimos u , lo que correctamente debería hacer sería, F U _ _ _ _, pero claro, de esta manera, lo que hace es borrar F y poner U. ¿Cómo haría para que Si pongo por ejemplo, primero U . Salga _ U _ _ _ _ y luego, introduzco F y siga con la palabra y no diga que no está. F u _ _ _ _ __ ? Gracias de antemano:D #include <stdio.h> #include <time.h> #include <conio.h> main() { char ch; char ch1; int errores1; errores1 = 0; srand (time(NULL)); int aleatorio; aleatorio = rand() % 3+1; if(aleatorio == 2) { printf("Te ha tocado esta palabra\n"); // La palabra es FUTBOL printf("_ _ _ _ _ _"); printf("Ve escribiendo las letras\n"); ch=getchar(); if(ch == 'f') { printf("Bien, has acertado. F _ _ _ _ _\n"); } else if(ch == 'u') { printf("Has acertado. _ U _ _ _ _\n"); } } else { errores1++; printf("Has fallado. Llevas %d errores.", errores1); } while(1); }
|
|
|
En línea
|
|
|
|
Al-hazred
Desconectado
Mensajes: 2
|
Incluyes una cabecera que no usas (conio.h) y te falta la cabecera stdlib.h para poder usar las funciones de generación de números aleatorios. En la linea 34 usas un while infinito sin usar do anteriormente, lo cual en sí no es un error pero quiero creer que tu intención no es que se quede colgado tu juego. Trata de implementar un do-while que cheque el número de oportunidades gastadas, y definir cuantas oportunidades tiene el usuario. Incluye la cabecera ctype.h para convertir las letras introducidas por el usuario a minúsculas y compararlas en un bucle for con, en este caso, la palabra futbol, la cual puede ser un array de char previamente definida.
|
|
|
En línea
|
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
Creas una variable que será la de la palabra, de tipo char o string; char palabra_padre[128] = "_ _ _ _ _ _ _"; Entonces haces los if's normales tal cual los has hecho pero ahora se modificara la variable y no se pondrá directamente un output escrito; palabra_padre[0] = F; cout << palabra_padre; Y así saldrá F _ _ _ _ _ _ ... ¿Era esto?, Saludos
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
El código hasta ahora me va bien. Explico : Van a ser 3 palabras, no solo uno, por eso creé el aleatorio.
Pues yo te he puesto cuatro . Era para que una de ellas tuviera repetida alguna letra .
Es un código muy mejorable, pero así tienes donde fijarte:#include <stdio.h> #include <stdlib.h> #include <time.h> #include <ctype.h> #include <string.h> int main(){ char ch; char palabra[10]={0},palabras[4][10]={"futbol","pala","balon","pelota"} ;/*con letra repetida*/ int i,j,cont=0,errores=0,intentos=0,flag=0; srand (time(NULL)); int aleatorio; aleatorio =rand() % 3; for (i=0;i<3;i++) printf("%s ",palabras[i]); /*para que veas las palabras*/ printf("\n\nTe ha tocado esta palabra: \n\n"); for (i=0;palabras[aleatorio][i]!='\0';i++){ printf("_ ");palabra[i]='_'; } palabra[i]='\0'; printf("\n\n Tienes 10 intentos.\n\n"); do{ intentos++; printf("\n\nVe escribiendo las letras. Intento %d\n",intentos); ch=getchar(); while (getchar ()!='\n'); for (i=0;palabra[i]!='\0';i++){ if(ch == palabras[aleatorio][i] && palabra[i]=='_') { palabra[i]=toupper(ch); puts("\n"); for (j=0;j<strlen (palabra);j++) printf("%c ",palabra[j]); flag=1;cont++; } } if (flag ==0) { errores++; printf("Has fallado. Llevas %d errores.\n", errores); } else { printf(" Bien, has acertado.\n"); flag=0; } if (cont==strlen (palabra)){ if (errores==0) printf("\n\n TOTAL ACIERTO.\n\n"); else printf("\n\n ACIERTO con %d errores.\n\n",errores); return 1; } } while (intentos<10); return EXIT_SUCCESS; }
Saluditos!.
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
C# el ahorcado
.NET (C#, VB.NET, ASP)
|
Err...
|
7
|
15,846
|
10 Enero 2011, 15:24 pm
por Khronos14
|
|
|
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
|
treblatp
|
3
|
12,925
|
3 Febrero 2011, 20:18 pm
por Khronos14
|
|
|
ahorcado
Programación C/C++
|
[JudasTeam]-BUG
|
8
|
6,017
|
18 Junio 2011, 03:54 am
por BlackZeroX
|
|
|
necesito ayuda con el ahorcado en pascal
Programación General
|
savag
|
7
|
6,520
|
8 Octubre 2011, 20:27 pm
por savag
|
|
|
ahorcado en c
Programación C/C++
|
chivis cristian
|
1
|
3,111
|
11 Diciembre 2011, 20:26 pm
por [L]ord [R]NA
|
|