Axel Ramone
Larva
- Mensagens
- 2
- Reações
- 0
- Pontos
- 1
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main ()
{
int i, cont, numero;
int numero_caracter,certo; //variáveis inteiras
int letra_errada1, letra_errada2,letra_errada3,letra_errada4,letra_errada5;
char palavra[20], resp[20];
char chance, validar, prosseguir; // variáveis de tipo char
do{ // inicio do laço de repetição
system("color 3");
system("cls"); // limpar a tela após rodar o programa
puts("\t\t\t === JOGO DA FORCA ===\n\n\n\n");
// ^ tela inicial
printf("---------------------------------------------------------------\n\n");
puts("(1) - O usuario digitara uma palavra.\n(Sem letra maiuscula)\n");
puts("(2) - O proximo usuario ira descobrir a palavra.\n");
printf("---------------------------------------------------------------");
// ^ instrução do jogo
validar = 'n';// utilizado para colocar um caractere na saida de dados
while(validar != 'S') // caso o usuario digitar 's' vai executar o laço
{
certo = 0; // contador de letras certas irá zerar
numero_caracter=0; // contador de letras digitas irá zerar
numero = 0;
i=0;
cont = 0;
letra_errada1 = ' '; // ira limpar a 1 letra armazenada
letra_errada2 = ' ';// ira limpar a 2 letra armazenada
letra_errada3 = ' ';// ira limpar a 3 letra armazenada
letra_errada4 = ' ';// ira limpar a 4 letra armazenada
letra_errada5 = ' ';// ira limpar a 5 letra armazenada
printf("\n\nDigite uma palavra (nao permita que o outro usuario veja): "); //informação
fflush(stdin); // limpar cache
gets (palavra); // ira armazenar a palavra escolhida
printf("\nA palavra digitada foi ( %s ), confirmar? (digite 's' para confirmar e 'n' para digitar novamente): ", palavra);
//condição para iniciar o jogo, confirma com o usuario se realmente de
fflush(stdin); // limpar cache
scanf("%c", &validar); // armazenar a letra, caso seja 'n' ele repete o codigo para digitar outra frase
// caso seja 's' dará continuidade ao programa
switch(validar) // switch de confirmação, caso o usuario digitar s
{
case 's': // dará inicio ao jogo
printf("O jogo sera iniciado...\n");
system("PAUSE"); // para as execuções
system("CLS"); // limpa a tela
for(i = 0; i < 20; i++) //laçõ de repetição para saber a resposta
{
resp='_'; // aparece na tela os tracinhos para saber quantas letras tem, etc
}
while(cont < 6) // laço de repetiçao para a quantidade de chances
{
numero=0;
certo=0;
switch(cont)// verificar as chances, bonequinho da forca
{
case 0: printf("___________ \n| | \n| _|_\n| \n| \ \n| \n| \n| \n| \n\n");
break;
// caso a chance for 0 irá aparecer esse desenho na tela
case 1: printf("___________ \n| | \n| _|_\n| O \n| \n| \n| \n| \n| \n\n");
break;
// caso a chance for 1 irá aparecer esse desenho na tela
case 2: printf("___________ \n| | \n| _|_\n| O \n| | \n| \n| \n| \n| \n\n");
break;
// caso a chance for 2 irá aparecer esse desenho na tela
case 3: printf("___________ \n| | \n| _|_\n| O \n| /| \n| \n| \n| \n| \n\n");
break;
// caso a chance for 3 irá aparecer esse desenho na tela
case 4: printf("___________ \n| | \n| _|_\n| O \n| /|\\ \n| \n| \n| \n| \n\n");
break;
// caso a chance for 4 irá aparecer esse desenho na tela
case 5: printf("___________ \n| | \n| _|_\n| O \n| /|\\ \n| / \n| \n| \n| \n\n");
break;
// caso a chance for 5 irá aparecer esse desenho na tela
}
for(i=0; i < 20; i++)
{
if(palavra=='\0') // ira separar a frase por letras
{
numero_caracter = i;// ira armazenar a letra
break;
}
else
{
if(palavra==' ')// caso frase contenha espaço
{
resp=' '; // vai receber espaço
printf("%c", resp);
}
else
{
if(palavra==chance) // se a frase digitada for igual a tentativa digitada
{
resp=palavra; // resposta vai armazenar a frase
}
}
}
printf("%c ", resp); // ira mostrar a resposta
}
printf("\n\n%c %c %c %c %c\n", letra_errada1, letra_errada2, letra_errada3, letra_errada4, letra_errada5); // armazenar as letras erradas, pra não digitar dnv
switch(cont) // serve para quantidade de vezes que o usuario errar
// cada vez que errar aparecerá uma msg para informar quantas chances restam
{
case 0: puts("\n\nVoce pode errar 5 vezes");
break;
case 1: puts("\n\nVoce pode errar 4 vezes");
break;
case 2: puts("\n\nVoce pode errar 3 vezes");
break;
case 3: puts("\n\nVoce pode errar 2 vezes");
break;
case 4: puts("\n\nVoce pode errar apenas mais uma vez");
break;
case 5: puts("\n\nUltima chance !!!");
}
for(i = 0; i <= numero_caracter; i++)
{
if(chance!=' ')
{
if(resp!='_')
{
certo++;
if(certo==numero_caracter)
{
cont=7;
break;
}
}
}
}
if(certo!=numero_caracter)
{
printf("\n\nDigite uma letra: ");// usuario irá digitar uma letra
fflush(stdin);
scanf("%c", &chance);
chance = tolower(chance); //Converte o caracter em minúsculo
}
for(i = 0; i < numero_caracter; i++) // laço que ira verificar na string as letras
{
if(chance!=palavra) // se tentativa for diferente de frase
{
numero++; // incrementa mais 1 no contador n
if(numero==numero_caracter) // se n for igual nchar
{
cont++; // incrementa mais 1
if(cont==1) //contador for igual a 1
{
letra_errada1 = chance; // vai armazenar a letra na variavel letra_errada1
}
if(cont==2)
{
letra_errada2 = chance;// vai armazenar a letra na variavel letra_errada2
}
if(cont==3)
{
letra_errada3 = chance;// vai armazenar a letra na variavel letra_errada3
}
if(cont==4)
{
letra_errada4 = chance;// vai armazenar a letra na variavel letra_errada4
}
if(cont==5)
{
letra_errada5 = chance;// vai armazenar a letra na variavel letra_errada5
}
}
}
}
system("cls"); // ira limpar a tela
}
default: validar = 'n';
}
if(cont==6) // se o contador for igual a 6, o usuario perde
{
printf("___________ \n| | \n| _|_\n| O \n| /|\\ \n| / \\ \n| \n| \n| \n\n");
for(i = 0; i < numero_caracter; i++) // numero de caracteres digitados for menor que o contador
{
if(resp==palavra) // caso a palavra digitada for igual
{
printf("%c ", resp); //ira apresentar a resposta correta no campo do jogo
}
else
{
printf("(%c) ", palavra); // irá mostrar as letras que estão faltando no campo do jogo
}
}
system("color 4");
printf("\n\n%c %c %c %c %c %c\n", letra_errada1, letra_errada2,letra_errada3, letra_errada4, letra_errada5, chance); // irá mostrar as letras que foram digitadas
printf("\n\n\n ----- Voce Perdeu !!! -----\n\n");
system("PAUSE");//encerrando a execução
}
if(cont==7)
{
system("color 5");
printf("------------------------------------------------------\n\t\t ===== YOU WIN =====\t\t\n------------------------------------------------------\n\n\n\n");
}
validar = 'S';
printf("\n==\t\tInsert coins to play again !\t\t== \n\n \n\t\tPressione 'S' para inserir !\n\n\t\t\t\t");
printf("> ");
fflush(stdin); // limpar cache
prosseguir = toupper(getchar()); //Converte caracter minúsculo em maiúsculo
// verifica se usuario digitar 's' ira repetir o programa
//caso digite qualquer outro valor ira sair
}
}while(prosseguir=='S'); // final do primeiro laço, caso usuario digite s o jogo irá iniciar novamente
system("PAUSE");
return 0;
}
#include <stdlib.h>
#include <ctype.h>
int main ()
{
int i, cont, numero;
int numero_caracter,certo; //variáveis inteiras
int letra_errada1, letra_errada2,letra_errada3,letra_errada4,letra_errada5;
char palavra[20], resp[20];
char chance, validar, prosseguir; // variáveis de tipo char
do{ // inicio do laço de repetição
system("color 3");
system("cls"); // limpar a tela após rodar o programa
puts("\t\t\t === JOGO DA FORCA ===\n\n\n\n");
// ^ tela inicial
printf("---------------------------------------------------------------\n\n");
puts("(1) - O usuario digitara uma palavra.\n(Sem letra maiuscula)\n");
puts("(2) - O proximo usuario ira descobrir a palavra.\n");
printf("---------------------------------------------------------------");
// ^ instrução do jogo
validar = 'n';// utilizado para colocar um caractere na saida de dados
while(validar != 'S') // caso o usuario digitar 's' vai executar o laço
{
certo = 0; // contador de letras certas irá zerar
numero_caracter=0; // contador de letras digitas irá zerar
numero = 0;
i=0;
cont = 0;
letra_errada1 = ' '; // ira limpar a 1 letra armazenada
letra_errada2 = ' ';// ira limpar a 2 letra armazenada
letra_errada3 = ' ';// ira limpar a 3 letra armazenada
letra_errada4 = ' ';// ira limpar a 4 letra armazenada
letra_errada5 = ' ';// ira limpar a 5 letra armazenada
printf("\n\nDigite uma palavra (nao permita que o outro usuario veja): "); //informação
fflush(stdin); // limpar cache
gets (palavra); // ira armazenar a palavra escolhida
printf("\nA palavra digitada foi ( %s ), confirmar? (digite 's' para confirmar e 'n' para digitar novamente): ", palavra);
//condição para iniciar o jogo, confirma com o usuario se realmente de
fflush(stdin); // limpar cache
scanf("%c", &validar); // armazenar a letra, caso seja 'n' ele repete o codigo para digitar outra frase
// caso seja 's' dará continuidade ao programa
switch(validar) // switch de confirmação, caso o usuario digitar s
{
case 's': // dará inicio ao jogo
printf("O jogo sera iniciado...\n");
system("PAUSE"); // para as execuções
system("CLS"); // limpa a tela
for(i = 0; i < 20; i++) //laçõ de repetição para saber a resposta
{
resp='_'; // aparece na tela os tracinhos para saber quantas letras tem, etc
}
while(cont < 6) // laço de repetiçao para a quantidade de chances
{
numero=0;
certo=0;
switch(cont)// verificar as chances, bonequinho da forca
{
case 0: printf("___________ \n| | \n| _|_\n| \n| \ \n| \n| \n| \n| \n\n");
break;
// caso a chance for 0 irá aparecer esse desenho na tela
case 1: printf("___________ \n| | \n| _|_\n| O \n| \n| \n| \n| \n| \n\n");
break;
// caso a chance for 1 irá aparecer esse desenho na tela
case 2: printf("___________ \n| | \n| _|_\n| O \n| | \n| \n| \n| \n| \n\n");
break;
// caso a chance for 2 irá aparecer esse desenho na tela
case 3: printf("___________ \n| | \n| _|_\n| O \n| /| \n| \n| \n| \n| \n\n");
break;
// caso a chance for 3 irá aparecer esse desenho na tela
case 4: printf("___________ \n| | \n| _|_\n| O \n| /|\\ \n| \n| \n| \n| \n\n");
break;
// caso a chance for 4 irá aparecer esse desenho na tela
case 5: printf("___________ \n| | \n| _|_\n| O \n| /|\\ \n| / \n| \n| \n| \n\n");
break;
// caso a chance for 5 irá aparecer esse desenho na tela
}
for(i=0; i < 20; i++)
{
if(palavra=='\0') // ira separar a frase por letras
{
numero_caracter = i;// ira armazenar a letra
break;
}
else
{
if(palavra==' ')// caso frase contenha espaço
{
resp=' '; // vai receber espaço
printf("%c", resp);
}
else
{
if(palavra==chance) // se a frase digitada for igual a tentativa digitada
{
resp=palavra; // resposta vai armazenar a frase
}
}
}
printf("%c ", resp); // ira mostrar a resposta
}
printf("\n\n%c %c %c %c %c\n", letra_errada1, letra_errada2, letra_errada3, letra_errada4, letra_errada5); // armazenar as letras erradas, pra não digitar dnv
switch(cont) // serve para quantidade de vezes que o usuario errar
// cada vez que errar aparecerá uma msg para informar quantas chances restam
{
case 0: puts("\n\nVoce pode errar 5 vezes");
break;
case 1: puts("\n\nVoce pode errar 4 vezes");
break;
case 2: puts("\n\nVoce pode errar 3 vezes");
break;
case 3: puts("\n\nVoce pode errar 2 vezes");
break;
case 4: puts("\n\nVoce pode errar apenas mais uma vez");
break;
case 5: puts("\n\nUltima chance !!!");
}
for(i = 0; i <= numero_caracter; i++)
{
if(chance!=' ')
{
if(resp!='_')
{
certo++;
if(certo==numero_caracter)
{
cont=7;
break;
}
}
}
}
if(certo!=numero_caracter)
{
printf("\n\nDigite uma letra: ");// usuario irá digitar uma letra
fflush(stdin);
scanf("%c", &chance);
chance = tolower(chance); //Converte o caracter em minúsculo
}
for(i = 0; i < numero_caracter; i++) // laço que ira verificar na string as letras
{
if(chance!=palavra) // se tentativa for diferente de frase
{
numero++; // incrementa mais 1 no contador n
if(numero==numero_caracter) // se n for igual nchar
{
cont++; // incrementa mais 1
if(cont==1) //contador for igual a 1
{
letra_errada1 = chance; // vai armazenar a letra na variavel letra_errada1
}
if(cont==2)
{
letra_errada2 = chance;// vai armazenar a letra na variavel letra_errada2
}
if(cont==3)
{
letra_errada3 = chance;// vai armazenar a letra na variavel letra_errada3
}
if(cont==4)
{
letra_errada4 = chance;// vai armazenar a letra na variavel letra_errada4
}
if(cont==5)
{
letra_errada5 = chance;// vai armazenar a letra na variavel letra_errada5
}
}
}
}
system("cls"); // ira limpar a tela
}
default: validar = 'n';
}
if(cont==6) // se o contador for igual a 6, o usuario perde
{
printf("___________ \n| | \n| _|_\n| O \n| /|\\ \n| / \\ \n| \n| \n| \n\n");
for(i = 0; i < numero_caracter; i++) // numero de caracteres digitados for menor que o contador
{
if(resp==palavra) // caso a palavra digitada for igual
{
printf("%c ", resp); //ira apresentar a resposta correta no campo do jogo
}
else
{
printf("(%c) ", palavra); // irá mostrar as letras que estão faltando no campo do jogo
}
}
system("color 4");
printf("\n\n%c %c %c %c %c %c\n", letra_errada1, letra_errada2,letra_errada3, letra_errada4, letra_errada5, chance); // irá mostrar as letras que foram digitadas
printf("\n\n\n ----- Voce Perdeu !!! -----\n\n");
system("PAUSE");//encerrando a execução
}
if(cont==7)
{
system("color 5");
printf("------------------------------------------------------\n\t\t ===== YOU WIN =====\t\t\n------------------------------------------------------\n\n\n\n");
}
validar = 'S';
printf("\n==\t\tInsert coins to play again !\t\t== \n\n \n\t\tPressione 'S' para inserir !\n\n\t\t\t\t");
printf("> ");
fflush(stdin); // limpar cache
prosseguir = toupper(getchar()); //Converte caracter minúsculo em maiúsculo
// verifica se usuario digitar 's' ira repetir o programa
//caso digite qualquer outro valor ira sair
}
}while(prosseguir=='S'); // final do primeiro laço, caso usuario digite s o jogo irá iniciar novamente
system("PAUSE");
return 0;
}