Ir para conteúdo

Jogo Da Forca Em C++


robson47

Posts Recomendados

Jogo da Forca 1.0 em C++

 

\/ CODE \/

# include <stdio.h>

# include <stdlib.h>

# include <conio.h>

# include <string.h>

# include <ctype.h>

 

char letras_usadas (char arquivo[20], int i_arquivo);

void mostra_forca (char corpo[20], int credito);

void mostra_achou (char achou[20], int tam_palavra);

 

int main () {

char jogador[20], palavra[20], dica[20], corpo[20], achou[20], arquivo[20], aux_letra[20], letra;

int creditos, pontos, flag, tam_palavra, tam_letra, i_arquivo, i;

 

/*

Índice de Variáveis

jogador: Nome do participante

palavra: Palavra chave do jogo

dica: Dica relacionada a palavra

corpo: Recebe as partes do corpo do boneco

achou: Letras acertadas pelo jogador

arquivo: Letras usadas pelo jogador

aux_letra: Válida se a letra que o jogador usou é válida na rodada

letra: Letra que o jogador usou na rodada

créditos: Inicia-se com 6, se igual a 0 índica que o jogador perdeu o jogo

pontos: Soma as letras que já foram acertadas

flag: Se flag igual a 1 índica que jogador errou ou a letra digitada não é válida, se 0 índica que acertou

tam_palavra: Tamanho da Palavra

tam_letra: Tamanho da Letra

i_arquivo: índice do arquivo

i: contador

*/

 

// Apresentação

printf("\n\n");

printf(" XXXXX XXXXX XXXX XXXXX XXXX XXXXX \n");

printf(" XX XX XX XX XX XX XX X XX XX \n");

printf(" XX XX XX XX XX XX XX X XX XX \n");

printf(" XX XX XX XX XX XX XX X XXXXXXX \n");

printf(" XX XX XX XX XX XX XX XX X XX XX \n");

printf(" X XX XX XX XX X XX XX XX X XX XX \n");

printf(" XXXX XXXXX XXXX XXXXX XXXX XX XX \n");

printf("\n");

printf(" XXXXXXX XXXXX XXXXX XXXX XXXXX \n");

printf(" XX XX XX XX X XX XX XX \n");

printf(" XX XX XX XX X XX XX XX \n");

printf(" XXXXXXX XX XX XXXXX XX XXXXXXX \n");

printf(" XX XX XX XX X XX XX XX \n");

printf(" XX XX XX XX X XX XX XX \n");

printf(" XX XXXXX XX X XXXX XX XX \n");

printf("\n\n");

printf("\n\n");

printf (" START");

getch ();

 

system ("cls");

printf ("JOGO DA FORCA 1.0\n\n");

printf("\n\n");

printf("\n\n");

printf (" NOME DO JOGADOR: ");

gets (jogador);

printf("\n\n");

printf (" PE%cA PARA ALGUEM DIGITAR OS SEGUINTES ITENS ABAIXO!", 128);

getch ();

printf("\n\n\n");

printf (" PALAVRA Para Adivinhação: ");

gets (palavra);

printf("\n\n");

printf (" DICA: ");

gets (dica);

printf("\n\n");

 

// Reset de variáveis

i_arquivo=0;

creditos=6;

pontos=0;

tam_palavra=strlen(palavra);

for (i=0; i<tam_palavra; i++) {

if (palavra==' ') {

achou=' ';

pontos++;

}

else {

palavra=toupper(palavra);

achou='_';

}

}

for (i=0; i<20; i++) {

arquivo=' ';

}

for (i=0; i<6; i++) {

corpo=' ';

}

for (i=0; jogador!='\0'; i++) {

jogador=toupper(jogador);

}

for (i=0; dica!='\0'; i++) {

dica=toupper(dica);

}

 

system ("cls");

printf ("JOGO DA FORCA 1.0\n\n");

mostra_forca(corpo, creditos);

printf ("\n\n");

mostra_achou(achou, tam_palavra);

printf ("\n\n");

puts (dica);

printf ("\n");

 

while ((creditos>0)&&(pontos<tam_palavra)) {

flag=0;

printf ("LETRA: ");

gets (aux_letra);

tam_letra=strlen(aux_letra);

if (tam_letra!=1) {

printf ("DIGITE \"UMA\" LETRA!\n");

getch ();

flag=1;

}

else {

letra=toupper(aux_letra[0]);

arquivo[i_arquivo]=letra;

if (letras_usadas (arquivo, i_arquivo)) {

printf ("ESTA LETRA JA FOI!");

getch ();

arquivo[i_arquivo]=' ';

flag=1;

}

else {

arquivo[i_arquivo]=letra;

i_arquivo++;

for (i=0; i<tam_palavra; i++) {

if (letra==palavra) {

achou=letra;

flag=1;

pontos++;

}

}

}

}

 

if (flag==0) {

printf ("ESTA LETRA NAO TEM!", jogador);

getch ();

creditos--;

switch (creditos) {

case 0: corpo[0]='\\'; break;

case 1: corpo[1]='/'; break;

case 2: corpo[2]='-'; break;

case 3: corpo[3]='-'; break;

case 4: corpo[4]='|'; break;

case 5: corpo[5]='O'; break;

}

}

 

//Status do jogo

system ("cls");

printf ("JOGO DA FORCA 1.0\n\n");

mostra_forca(corpo, creditos);

printf ("\n\n");

mostra_achou(achou, tam_palavra);

printf ("\n\n");

puts (dica);

printf ("\n");

printf ("LETRAS JA USADAS: ");

for (i=0; i<=i_arquivo; i++) {

printf ("%c ", toupper(arquivo));

}

printf ("\n\n");

 

//Resultado Final

if (pontos==tam_palavra) {

printf ("%s, VOCE GANHOU!\n", jogador);

}

if (creditos==0) {

printf ("%s, VOCE PERDEU!\n", jogador);

printf ("A PALAVRA ERA ");

puts (palavra);

printf ("\n");

}

}

getch ();

}

 

char letras_usadas (char arquivo[20], int i_arquivo) {

int i;

for (i=0; i<i_arquivo; i++) {

if (arquivo[i_arquivo]==arquivo) {

return (true);

}

}

return (false);

}

 

 

void mostra_forca (char corpo[20], int credito) {

printf (" _ _ \n");

printf (" | |\n");

printf (" | %c\n", corpo[5]);

printf (" | %c", corpo[3]);

printf ("%c", corpo[4]);

printf ("%c \n", corpo[2]);

printf (" | %c", corpo[1]);

printf (" %c \n", corpo[0]);

printf ("_|_ \n");

}

 

void mostra_achou (char achou[20], int tam_palavra) {

int i;

for (i=0; i<tam_palavra; i++) {

printf ("%c ", achou);

}

}

 

Jogo Para Quem n Tem net boa pode passa horas de diversão

 

Creditos

90% Robson47

10% Meu Cunhado - Por Adicionar o Numero da Versão

Link para o comentário
Compartilhar em outros sites

  • 5 months later...

O código usa elementos rústicos própios da linguagem C, enquanto C++ usa diretivas de I/O simples como o "cout" e "cin".

Nada errado com as funções "printf" e "gets" (eu prefiro "puts"), mas eu acho que deveria ser avisado que o código é escrito em C.

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • 4 weeks later...
  • 3 weeks later...
  • 5 months later...
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...