Tengo el siguiente código del juego del ahorcado, y quisiera pedir ayuda para dos cosas:
1. Que al terminar el juego (ya sea ganando o perdiendo) el programa te pregunte que si deseas jugar de nuevo y decir sí o no, y empezar a jugar otra vez. Ejemplo:
printf("Desea jugar de nuevo (S/N)?")
Al ingresar la s (o en mayúscula S) se reinicie y con n (o N) se termine.
2. En el código, en la línea donde se escribe la letra para adivinar la palabra se queden guardadas las que ya se han utilizado. Ejemplo:
printf("\t\t\t %s\n",texto);
printf("\n\t\t\tIngrese una letra: ");
scanf("%s",&tmp);
printf("letras utilizadas") <--- Que aquí despliegue todas las que se han utilizado.
Por favor, y muchas gracias.
Saludos.
1. Que al terminar el juego (ya sea ganando o perdiendo) el programa te pregunte que si deseas jugar de nuevo y decir sí o no, y empezar a jugar otra vez. Ejemplo:
printf("Desea jugar de nuevo (S/N)?")
Al ingresar la s (o en mayúscula S) se reinicie y con n (o N) se termine.
2. En el código, en la línea donde se escribe la letra para adivinar la palabra se queden guardadas las que ya se han utilizado. Ejemplo:
printf("\t\t\t %s\n",texto);
printf("\n\t\t\tIngrese una letra: ");
scanf("%s",&tmp);
printf("letras utilizadas") <--- Que aquí despliegue todas las que se han utilizado.
Código [Seleccionar]
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#define N 38
char texto[33];
char palabras[N][34] = {"multidimensional","compilacion","parangaricutirimicuaro","caterpillar","chiquilicuatro","divisibilidad","efemerides",
"otorrinolaringologo","programatico","diptongo","osteoporosis","hepatomegalia","cartilaginoso","pronosupinador",
"paracetamol","boulevard","ornitorrinco","apuntador","primacia","esplenomegalia","pericarpio","tecnologico","programacion",
"concavidad","ferrocarril","futbol","perro","trabalenguas","lollypopguildofobia","natas","fotosintesis","octaedro",
"pararrayos","electromecanica","alternador","bobina","hipopotomonstrosesquipedaliofobia"};
char dibuj[9][7]={
"____",
"| |",
"| |",
"|",
"|",
"|",
"|",
"|",
"----" };
struct pst{
int pos;
char part[5];
}
parts[7]={{3," O"},{4," /"},{4,"|"}, {4,"\\"},{5," |"},{6," /"},{6," \\"}};
int main(int argc, char *argv[]){
int n,m,o,p,i,j,r,eq=0;
char lc,tmp[10];
srand(time(NULL));
o=rand()%N;
m=strlen(palabras[o]);p=m-2;
texto[0]=palabras[o][0];texto[m-1]=palabras[o][m-1];
for(n=1;n<m-1;n++)
texto[n]='_';texto[m]=0;
printf("\t\t\tJuego del ahorcado\n\n");
tmp[0]=0;
for(i=0;i<9;i++)
printf("\t%s\n",dibuj[i]);
do{
for(j=0;j<strlen(tmp);j++){
lc=tolower(tmp[j]);
r=p;
for(n=1;n<m-1;n++)
if(palabras[o][n]==lc){
texto[n]=lc;palabras[o][n]='_';
p--;
}
if(r==p){
strcat(dibuj[parts[eq].pos],parts[eq].part);
eq++;
}
for(i=0;i<9;i++)
printf("\t%s\n",dibuj[i]);
}
if(eq>=7)
break;
if(p>0){
printf("\t\t\t %s\n",texto);
printf("\n\t\t\tIngrese una letra: ");
scanf("%s",&tmp);
}
lc=tmp[0];
system("cls");
}
while(lc!='*'&&p);
if(!p){
printf("\n\tPalabra: %s\n\n",texto);
puts("\n\t\tGanaste!");
}
else if(eq>=7)printf("\n\t\tPerdiste\n\n");
return 0;
}
Por favor, y muchas gracias.
Saludos.