Jogo da Forca criação
Boa noite aos colegas programadores de plantão:
O professor desafiou a sala a fazer um jogo da forca e durante alguns dias programando cheguei a este formato abaixo, que ainda falta alguns detalhes a serem tratados como quando errar uma letra seja descontado da nVida que são 7 no total, ou quando acertar a palavra que o jogo mostre que foi acertado do tipo: Parabéns a palavra secreta era: --- uva! e pergunte se jogador deseja sair ou jogar novamente, caso seja jogar novamente que o jogo recomece. Não precisa ter o boneco ,apenas as palavras e caso esteja errado tire uma chance.
Outro erro que até o momento não consegui decifrar foi que após digitar dica, jogo começa e exibe as informações de vida,tamanho da palavra e dica, porém ao informar letra certa ou errada a dica não é mais exibida. Se alguém souber e puder ajudar serei grato!!
Linguagem C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void MenuInfo (int tamanhoPalavra,char InfoDica[100],int nChances)
{
printf("\n=======================================================================================================\n\n");
printf("\t\tVAMOS COMECAR!!\n");
printf("A palavra Secreta tem %d letras\n",tamanhoPalavra);
printf("\n\nDica da Palavra Secreta: %s\n",InfoDica,strupr(InfoDica));//comando strupr transforma letras digitas em maiusculas, ao exibir dica
printf("Numero de tentativas %d\n",nChances);
}int main()
{
int nVida=7,cont,tamPalavra; //variaveis inteiras que contam vida,tracos
char palavra[15],dica[100],letra='0';//variaveis onde são guardados a palvra secreta dica e qntidade de letras para preencher as linhas
printf("========================================== JOGO DA FORCA ================================================\n\n");
printf("\n@ Digite a Palavra Secreta.\n");//informação ao usuário
printf("@ A palavra deve conter, no maximo 15 caracteres.\n");
printf("@ Somente serao aceitos caracteres minusculos\n\n");
scanf("\n%s",&palavra);//variavel que recebe a palavra digitada pelo jogador
fflush(stdin);//limpeza de memoria
printf("\n\nDigite a Dica: ");
fgets(dica,100,stdin);//ler dica com espacos
fflush(stdin);//limpeza de memoria
system("cls");//comando para limpar a tela
tamPalavra=strlen(palavra); //quantidade caracteres que tem a palavra digitada atribuido ao tamPalavra
MenuInfo (tamPalavra,dica,nVida);//menu void para retornar tamanho da palvra, dicas,numero de vidas
char linha[tamPalavra+1];//variavel linha do tipo char para receber o numero de linhas com + 1
for(cont=0; cont<tamPalavra; cont++)//laco de repetição para executar enqnto tracos menor que tamanho da palavra.
{
linha[cont]= '_';
fflush(stdin);//limpeza de memoria
}
linha[tamPalavra+1] = '\0';//linha recebe tamanho da palavra e preenche com tracinhos até encontrar o \0 que marca o fim.
printf("%s\n",linha);
while (nVida!=0)//repete enqnto as chances forem diferentes de 0
{
int existe=0;// variavel que no laco for valida se letra existe na palavra
printf("\nDigite uma letra: ");//informação ao usuario para informar a letra da palavra secreta
fflush(stdin);//limpeza de memoria
scanf("%s",&letra);//leitura da letra informada
//system("cls");
for(cont=0; cont<tamPalavra; cont++)//laco de repetição para executar enqnto tracos menor que tamanho da palavra.
{
if (palavra[cont]==letra)
{
linha[cont]=letra;//atribuição da qntidade de letras a linha//se letras (3) linha(3)
existe=1;
}
}
MenuInfo (tamPalavra,dica,nVida);//menu void para retornar tamanho da palvra, dicas,numero de vida
printf("%s",linha);//tracos
if (existe == 0 && letra != palavra)
{
nVida--;
}
}
}Discussão (2)
Carregando comentários...