Ayuda en programa

Iniciado por dartsoker, 13 Diciembre 2015, 01:00 AM

0 Miembros y 1 Visitante están viendo este tema.

dartsoker

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.



#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.

SnzCeb

En este hilo que tiene chincheta se explica la implementación de un menú, es una pregunta muy común, hay que esforzarse un poco más en buscar  :rolleyes:

http://foro.elhacker.net/programacion_cc/para_que_dejeis_de_preguntar_de_una_vez_por_los_menus-t276719.0.html