Last active
May 13, 2020 17:26
-
-
Save raphahramos/988dccec4837997cddc4a3120dd531ee to your computer and use it in GitHub Desktop.
forca
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#include <locale.h> | |
#include <time.h> | |
#include <string.h> | |
#include <stdbool.h> | |
void imprimeMenu(); | |
bool opcaoValida(); | |
void jogo(); | |
int menu(); | |
int menuInstrucoes(); | |
void jogo() { | |
srand(time(NULL)); | |
char letra; | |
int volta; | |
int vida=6; | |
int contador=0; | |
char palavra[20][20] = {"fermento", "farofa", "sabonete", "ratazana", "tijolo", "concreto", "lajota", "telhado", "perfume", "sorvete", "holanda", "cerveja", "abacaxi", "janeiro", "picanha", "chapecoense", "feministas", "mulher", "bicicleta"}; | |
char dica[20][50] = {"Dica: usado em padarias", "Dica: tempero de comida", "Dica: usado no banho", "Dica: tem nos esgotos", "Dica: usado para fazer paredes", "Dica: usado em construções", "Dica: tem nas ruas", "Dica: usado para cobrir casas", "Dica: usado para estetica", "Dica: consumido no calor", "Dica: um pais da europa", "Dica: bebida pra esquecer problemas", "Dica: fruta", "Dica: mes do ano", "Dica: corte de carne", "Dica: melhor time do Brasil", "Dica: grupo de pessoas peludas", "Dica: serve pra lavar roupa", "Dica: meio de transporte"}; | |
int i = rand() % 19; | |
int tamanho_palavra = strlen(palavra[i]); | |
int achou1=0,achou=0; | |
char *vetor_p = (char *)calloc(tamanho_palavra, sizeof(char)); | |
for(contador=0; contador<tamanho_palavra; contador++) | |
vetor_p[contador]='_'; | |
system("cls"); | |
printf("________\n| |\n|\n|\n|\n|\n|\n--\n"); | |
contador=0; | |
printf("tamanho da palavra: %d letras\n ", tamanho_palavra); | |
while (contador<=tamanho_palavra) { | |
contador++; | |
printf(" _ "); | |
} | |
while(vida>0 && achou1 < tamanho_palavra) { | |
achou=0; | |
printf("\nDigite uma letra: "); | |
scanf (" %c", &letra); | |
for(contador=0; contador<tamanho_palavra; contador++) { | |
if(palavra[i][contador]==letra) { | |
achou++; | |
achou1++; | |
vetor_p[contador] = letra; | |
} | |
} | |
if(achou) { | |
system("cls"); | |
switch(vida){ | |
case 6: | |
system("cls"); | |
printf("________\n| |\n|\n|\n|\n|\n|\n--\n"); | |
break; | |
case 5: | |
system("cls"); | |
printf("________\n| |\n| O\n|\n|\n|\n|\n--\n"); | |
break; | |
case 4: | |
system("cls"); | |
printf("________\n| |\n| O\n| |\n|\n|\n|\n--\n"); | |
break; | |
case 3: | |
system("cls"); | |
printf("________\n| |\n| O\n| -|\n|\n|\n|\n--\n"); | |
break; | |
case 2: | |
system("cls"); | |
printf("________\n| |\n| O\n| -|-\n|\n|\n|\n--\n"); | |
break; | |
case 1: | |
system("cls"); | |
printf("________\n| |\n| O\n| -|-\n| |\n| /\n|\n--\n"); | |
printf("%s\n",dica[i]); | |
break; | |
case 0: | |
system("cls"); | |
printf("________\n| |\n| O\n| -|-\n| |\n| / \\\n|\n--\n"); | |
break; } | |
printf("\nParabéns! Você achou a letra %c\n", letra); | |
for(contador=0; contador<tamanho_palavra; contador++) | |
printf(" %c ", vetor_p[contador]); | |
} | |
else { | |
vida--; | |
switch(vida){ | |
case 6: | |
system("cls"); | |
printf("________\n| |\n|\n|\n|\n|\n|\n--\n"); | |
break; | |
case 5: | |
system("cls"); | |
printf("________\n| |\n| O\n|\n|\n|\n|\n--\n"); | |
break; | |
case 4: | |
system("cls"); | |
printf("________\n| |\n| O\n| |\n|\n|\n|\n--\n"); | |
break; | |
case 3: | |
system("cls"); | |
printf("________\n| |\n| O\n| -|\n|\n|\n|\n--\n"); | |
break; | |
case 2: | |
system("cls"); | |
printf("________\n| |\n| O\n| -|-\n|\n|\n|\n--\n"); | |
break; | |
case 1: | |
system("cls"); | |
printf("________\n| |\n| O\n| -|-\n| |\n| /\n|\n--\n"); | |
printf("%s\n",dica[i]); | |
break; | |
case 0: | |
system("cls"); | |
printf("________\n| |\n| O\n| -|-\n| |\n| / \\\n|\n--\n"); | |
break; } | |
printf("\nEita! Você não encontrou a letra %c, você tem %d de vida", letra, vida); | |
if(vida==1) | |
printf(" \n"); | |
else | |
printf("s \n"); | |
for(contador=0; contador<tamanho_palavra; contador++) | |
printf(" %c ", vetor_p[contador]); | |
} | |
} | |
if(achou1==tamanho_palavra){ | |
printf("\n\nParabéns, você encontrou a palavra %s\n\n", palavra[i]); | |
}else | |
printf("\n\nDerrota, você não encontrou a palavra %s\n\n", palavra[i]); | |
printf("\nSe quiser jogar novamente, digite 1\nPara voltar ao menu, digite 2\n"); | |
scanf("%d",&volta); | |
switch(volta){ | |
case 1: | |
jogo(); | |
break; | |
case 2: | |
system("cls"); | |
menu(); | |
break; | |
} | |
} | |
void imprimeMenu(){ | |
printf("------------Bem vindo ao jogo da forca.------------\n"); | |
printf("Digite 1 para começar a jogar.\nDigite 2 para instruções de jogo.\nDigite outro numero para sair do jogo\n"); | |
} | |
bool opcaoValida(int option){ | |
if(option > 0 && option < 3){ | |
return true; | |
} | |
return false; | |
} | |
int menuInstrucoes(){ | |
int opcao; | |
system("cls"); | |
printf("*O objetivo do jogo é você descobrir qual a palavra oculta.\n*Você escolhe uma letra por rodada.\n"); | |
printf("*Caso a palavra possua a letra digitada será mostrada em sua posição.\n*Se a letra estiver errada será desenhada uma parte do corpo do boneco.\n*Se todas as 6 partes do boneco estiverem desenhadas você perde o jogo.\n"); | |
printf("\nDigite 1 para começar a jogar.\n"); | |
printf("\nDigite 2 para voltar ao menu principal.\n"); | |
scanf("%d",&opcao); | |
return opcao; | |
} | |
int menu(){ | |
int option = 1; | |
while(opcaoValida(option)){ | |
imprimeMenu(); | |
scanf("%d",&option); | |
switch(option){ | |
case 1: | |
system("cls"); | |
jogo(); | |
return 0; | |
case 2: | |
Cleanup: ; | |
int opcao = menuInstrucoes(); | |
if(opcao == 1){ | |
jogo(); | |
return 0; | |
}else if(opcao == 2){ | |
system("cls"); | |
break; | |
}else{ | |
menuInstrucoes(); | |
} | |
} | |
} | |
} | |
int main(){ | |
setlocale(LC_ALL,"Portuguese"); | |
menu(); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment