Ir ao conteúdo
  • Cadastre-se

Codigo da forca, ta dando ERRO.


Ir à solução Resolvido por MassakiMsk,

Posts recomendados

Alguem pode da uma olhada no meu código da forca que estou desenvolvendo.

Ainda não esta acabado, mas é por que eu não estou encontrando o problema.

Queria fazer com que os espaços fossem trocados pelas letras digitadas, mas n estou conseguindo.

Agradeceria se alguem me ajudasse. Desde já, OBRIGADO.

 

 

 

# include <stdio.h>
# include <stdlib.h>
# include <string.h>
main(){
char nome[10],                    // Vetor para salvar o nome do jogador.
tentd[1],                        // Variável para controlar se o jogador vai querer jogar de novo.
palavra[]="ovo",                 // Vetor para a palavra usada no programa.
espaco[3]="_",                   // Vetor usado para os espaços antes e identificar a palavra.
teste,                           // Variável usada para testar as letras, postas pelo jogador.
aux=0,                          // Vetor para auxiliar a variável 'booleana'. Quando 1 é verdadeira e 0 é falsa.
tam;
int i,                           //Váriavel auxiliar do 'for'.
chances;                         //Váriavel usada para contar quantas chances o jogador ainda tem.
tentd[0]='s';                    
chances=6;
     
tam=strlen(palavra);      
    
system("cls");
printf("><><><><><><><><><><><><><>JOGO DA FORCA<><><><><><><><><><><><><><>\n");   // Inicio do jogo
while(tentd[0]!='n' ){
    printf("Escreva o nome do jogador! \n");
    scanf("%s",&nome);                                                              
    system("cls");
    printf("O jogador(a): %s\n",nome);
    printf("Chance: %d",chances);
    printf("\n  ÉÍÍÍÍÍÍÍÍÍÍÍ»");
    printf("\n  º           º");
    printf("\n  º           Ê");
    printf("\n  º");     
    printf("\n  º");
    printf("\n  º");
    printf("\n  º");
    printf("\n  º");
    printf("\n  º");
    printf("\n  Ê\n");
    for(i=1;i<=tam;i++){
    espaco='_';
    printf("%c ",espaco);
    }
printf("\n");
while(chances!=0 || aux==1 ){  
  setbuf(stdin,NULL);     
  printf("Digite uma letra! \n");
  scanf("%c",&teste);
    for(i=1;i<=tam;i++){
        if(teste==palavra){
            espaco=teste;
            aux=1;
        }
    }
    if(aux==0){
        chances--;
    }
}


}
      system("pause");
}

Link para o comentário
Compartilhar em outros sites

  • Solução

# include <stdio.h># include <stdlib.h># include <string.h>main(){char nome[10],                    // Vetor para salvar o nome do jogador.tentd[1],                        // Variável para controlar se o jogador vai querer jogar de novo.palavra[]="ovo",                 // Vetor para a palavra usada no programa.espaco[3],                   // Vetor usado para os espaços antes e identificar a palavra.teste,                           // Variável usada para testar as letras, postas pelo jogador.aux=0,                          // Vetor para auxiliar a variável 'booleana'. Quando 1 é verdadeira e 0 é falsa.tam;int i,                           //Váriavel auxiliar do 'for'.chances;                         //Váriavel usada para contar quantas chances o jogador ainda tem.tentd[0]='s';chances=6;tam=strlen(palavra);for(i=0;i<tam;i++)    espaco[i]='_';system("cls");printf("><><><><><><><><><><><><><>JOGO DA FORCA<><><><><><><><><><><><><><>\n");   // Inicio do jogowhile(tentd[0]!='n' ){    printf("Escreva o nome do jogador! \n");    scanf("%s",&nome);while(chances!=0 || aux==1 ){    aux=0;    system("cls");    printf("O jogador(a): %s\n",nome);    printf("Chance: %d",chances);    printf("\n  ÉÍÍÍÍÍÍÍÍÍÍÍ»");    printf("\n  º           º");    printf("\n  º           Ê");    printf("\n  º");    printf("\n  º");    printf("\n  º");    printf("\n  º");    printf("\n  º");    printf("\n  º");    printf("\n  Ê\n");    for(i=0;i<tam;i++){    printf("%c ",espaco[i]);    }printf("\n");  setbuf(stdin,NULL);  printf("Digite uma letra! \n");  scanf("%c",&teste);    for(i=0;i<tam;i++){        if(teste==palavra[i]){            espaco[i]=teste;            aux=1;        }    }    if(aux==0){        chances--;    }}}      system("pause");}

Essa é só a parte que voce fez corrigida, Alterei os ciclos for's para ir de 0 até o tamanho da palavra, coloquei para reimprimir a forca toda vez q o usuario digitasse algo (se nao fizer isso a tela nao muda mesmo que o cara digite algo), e fiz a variavel auxiliar resetar toda vez para fazer a comparação na hora de diminuir a vida.

Agr uma dica: faça com que letras repetidas nao sejam contadas como erros ou acertos...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...