Ir para conteúdo

POWERED BY:

Arquivado

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

phfmiranda

Jogo da Forca não funciona

Recommended Posts

Boa noite galera,

 

Criei este joguinho da forca, porem ele esta dando erro o que pode ser?

 

Obrigado

 

 

/*  Jogo feito no compilador DEV-C++ vesão 4.9.9.2*/


#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{
system("color 80");
	char vetor1[15],vetor2[15],palavra[25],letra[25];
	char lacuna[15];
	int vida=10,x,i,j,numletra;
   printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
	printf("\n							JOGO DA FORCA\n");
	printf("\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^\n\n");
	printf("Regras do jogo:\n\n\n\n");
	printf("1 - Nao digite palavras compostas\n\n");
	printf("2 - Nao use letras maiuscula\n\n");
	printf("3 - Nao use numeros somente letras\n\n");
	printf("\n\n\n\nAPERTE ENTER PARA COMECAR");
	getch();
	printf("\n\nEntre com palavra secreta:");
	fflush(stdin);
	gets(palavra);
	numletra = strlen(palavra);
	system("cls");
	 system("PAUSE");
	for(i=0;i<strlen(palavra);i++);
	{
		lacuna[i]='_';
	}
	int venceu = 0;
	while(vida>0 && venceu == 0 )
	{
		x=0;
		printf("\n\n%s\n",lacuna);
		printf("\nEntre com UMA letra: ");
		gets(letra);
		for(i=0;i<strlen(palavra);i++)
		{	
			if(letra[0]==palavra[i])
			{
				lacuna[i]=palavra[i];
				x++;
				vetor2[i]=1;
			}
		}
		if(x==0)
		{
			vida--;
			printf("\nVOCE perdeu uma vida!\nVOCE tem %d vida(s) restando",vida);
		}else{
			int qtdPosicoesEncontradas = 0;
			for(j=0; j <strlen(palavra); j++){
				printf("Palavra descoberta até o momento: ");
				printf("%c", lacuna[i]);
				printf("\n");
				if(vetor2[i] == 1){
					qtdPosicoesEncontradas++;
				}	
			}
			if(qtdPosicoesEncontradas == strlen(palavra)){
				venceu = 1;
			}
		}

	}
	if(venceu == 1){
		printf("\n\nVOCE VENCEU!\n\n\n a palavra secreta era: %s",palavra);
	}else{
		printf("\n\nVOCE FOI ENFORCADO, fim de jogo!\n\n\n a palavra secreta era: %s",palavra);
		getchar();
		getchar();
	}
	return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º Passo: leia as mensagens do compilador

2º Passo: revise o código em busca dos erros estáticos.

3º Passo: use um debugger

 

E tire esse fflush(stdin).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, o fonte está bagunçado.

Segundo, você está trabalhando com arrays de diferentes tamanhos:

 

char vetor1[15],vetor2[15],palavra[25],letra[25];
char lacuna[15];

e está usando um como referência de tamanho para outro, o que irá sobreescrever regiões de memória fora do array.

 

Terceiro, tem um ";" no final do loop:

for(i=0;i<strlen(palavra);i++);

Eu sugiro você refazer ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.