Ir ao conteúdo
  • Cadastre-se

Jogo da Forca em C


Walicen

Posts recomendados

Ae Galera Preciso Colocar uma parte No meu Codigo que Recuse a Letra que Ja Foi Digitada Uma Vez e Retorne Para o Usuario Digitar Outra e Nao 2 vezes Uma Letra.

SEgue Codigo:

#include <stdio.h>

#include <stdlib.h>

#include <ctype.h>

#include <time.h>

#include <string.h>

int main ()

{

int i, cont, n, nchar, erro1, erro2, erro3, erro4, erro5, certo;

char frase[20], resposta[20], tentativa, confirmar, continuar;

int palavra = 0,chance = 0;

// do{

system("cls");

puts("\n\tJogo da forca - Tema Tecnologia\n");

puts("\tProjeto Interdisciplinar I\n\tUniversidade Tuiiti do Parana\n\n");

//puts("___________ \n| | \n| _|_\n| O \n| /|\\ \n| / \\ \n| \n| \n| \n");

confirmar = 'n';

while(confirmar != 's')

{

certo = 0;

nchar=0;

n = 0;

i=0;

cont = 0;

erro1 = ' ';

erro2 = ' ';

erro3 = ' ';

erro4 = ' ';

erro5 = ' ';

srand(time(NULL));

palavra = rand() % 6;

switch(palavra)

{

case 0: strcpy( frase, "informatica" );

break;

case 1: strcpy( frase, "hardware" );

break;

case 2: strcpy( frase, "software" );

break;

case 3: strcpy( frase, "windows" );

break;

case 4: strcpy( frase, "linux" );

break;

case 5: strcpy( frase, "notebook" );

break;

case 6: strcpy( frase, "tablet" );

break;

}

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

{

resposta='_';

}

while(cont < 6)

{

n=0;

certo=0;

switch(cont)

{

case 0: printf("\t___________ \n\t| | \n\t| _|_\n\t| \n\t| \ \n\t| \n\t| \n\t| \n\t| \n\n");

break;

case 1: printf("\t___________ \n\t| | \n\t| _|_\n\t| O \n\t| \n\t| \n\t| \n\t| \n\t| \n\n");

break;

case 2: printf("\t___________ \n\t| | \n\t| _|_\n\t| O \n\t| | \n\t| \n\t| \n\t| \n\t| \n\n");

break;

case 3: printf("\t___________ \n\t| | \n\t| _|_\n\t| O \n\t| /| \n\t| \n\t| \n\t| \n\t| \n\n");

break;

case 4: printf("\t___________ \n\t| | \n\t| _|_\n\t| O \n\t| /|\\ \n\t| \n\t| \n\t| \n\t| \n\n");

break;

case 5: printf("\t___________ \n\t| | \n\t| _|_\n\t| O \n\t| /|\\ \n\t| / \n\t| \n\t| \n\t| \n\n");

break;

}

for(i=0; i < 20; i++) //inserindo tracinhos

{

if(frase=='\0')

{

nchar = i;

break;

}

else

{

if(frase==' ')

{

resposta=' ';

printf("%c", resposta);

}

else

{

if(frase==tentativa)

{

resposta=frase;

}

}

}

printf("%c ", resposta);

}

switch(palavra)

{

case 0: puts("\n\n\tDica : Informação Automatizada");

break;

case 1: puts("\n\n\tDica : Parte que se Chuta do Computador");

break;

case 2: puts("\n\n\tDica : Parte que se Xinga do Computador");

break;

case 3: puts("\n\n\tDica : O.S mais Famoso");

break;

case 4: puts("\n\n\tDica : Sistema Operacional Livre");

break;

case 5: puts("\n\n\tDica : PC portatil");

break;

case 6: puts("\n\n\tDica : Portatil muito Usado Hoje em Dia");

break;

}

printf("\n\nLetras Digitadas Erradas.: %c, %c, %c, %c, %c\n\n", erro1, erro2, erro3, erro4, erro5);

switch(cont)

{

case 0: chance = 5;

break;

case 1: chance = 4;

break;

case 2: chance = 3;

break;

case 3: chance = 2;

break;

case 4: chance = 1;

break;

case 5: chance = 0;

}

printf("voce tem %d chances." ,chance);

for(i = 0; i <= nchar; i++)

{

if(tentativa!=' ')

{

if(resposta!='_')

{

certo++;

if(certo==nchar)

{

cont = 7;

break;

}

}

}

}

if(certo!=nchar)

{

printf("\n\nDigite uma letra: ");

fflush(stdin);

scanf("%c", &tentativa);

tentativa = tolower(tentativa);

for(i = 0; i < nchar; i++)

{

if(tentativa!=frase)

{

n++;

if(n==nchar)

{

cont++;

if(cont==1)

{

erro1 = tentativa;

}

if(cont==2)

{

erro2 = tentativa;

}

if(cont==3)

{

erro3 = tentativa;

}

if(cont==4)

{

erro4 = tentativa;

}

if(cont==5)

{

erro5 = tentativa;

}

}

}

}

}

system("cls");

puts("\n\tJogo da forca - Tema Tecnologia\n");

puts("\tProjeto Interdisciplinar I\n\tUniversidade Tuiiti do Parana\n\n");

}

// default: confirmar = 'n';

}

if(cont == 6)

{

printf("___________ \n| | \n| _|_\n| O \n| /|\\ \n| / \\ \n| \n| \n| \n\n");

for(i = 0; i < nchar; i++)

{

if(resposta==frase)

{

printf("%c ", resposta);

}

else

{

printf("(%c) ", frase);

}

}

printf("\n\n%c %c %c %c %c %c\n", erro1, erro2, erro3, erro4, erro5, tentativa);

printf("\n\n\nVoce Perdeu!!!\n");

system("PAUSE");

}

if(cont == 7)

{

system("cls");

printf("Parabens!! voce Venceu!!\n");

printf("___________ \n| | \n| _|_\n|\n|\n|\n| \\O/\n| | \n| / \\\n\n");

tentativa='_';

}

confirmar = 'S';

printf("Deseja jogar novamente (S/N)? ");

fflush(stdin);

continuar = toupper(getchar());

}

/*while(continuar=='S');

system("PAUSE");

return 0;*/

Link para o comentário
Compartilhar em outros sites

Olá Walicen, seu código já trata isso, basta apenas colocar um else e uma mensagem alertando o mesmo.


printf("\n\nDigite uma letra: ");
fflush(stdin);
scanf("%c", &tentativa);
tentativa = tolower(tentativa);


for(i = 0; i < nchar; i++)
{
if(tentativa!=frase[i])
{
n++;
if(n==nchar)
{
cont++;
if(cont==1)
{
erro1 = tentativa;
}
if(cont==2)
{
erro2 = tentativa;
}
if(cont==3)
{
erro3 = tentativa;
}
if(cont==4)
{
erro4 = tentativa;
}
if(cont==5)
{
erro5 = tentativa;
}
}
}
//trecho acrescentado
[b]else[/b]
[b]{[/b]
[b]printf("voce ja digitou essa letra!");[/b]
[b]}[/b]
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...