1
resposta

Meu jogo

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include "forca.h"

//varaiaveis globais
char palavrasecreta[20];
char chutes[26];
int chutesdados = 0;

void abertura(){
    printf("****************************\n");
    printf("*      Jogo da Forca       *\n");
    printf("****************************\n\n");
}

void chuta(){
    char chute;
    scanf(" %c", &chute);

    chutes[chutesdados] = chute;
    chutesdados++;
}

int jachutou(char letra){
    int achou = 0;

    for(int j = 0; j < chutesdados; j++){
        
            if(chutes[j] == letra){
                    achou = 1;
                    break;
            }
        }
        return achou;
}

void desenhaforca(){
    for(int i =0; i < strlen(palavrasecreta);i++){

            //aqui estava o codigo
            int achou =  jachutou(palavrasecreta[i]); 
            if(achou){
                printf("%c",palavrasecreta[i]);
            } else{
                printf("_");
            }
        }
        printf("\n");
}

int acertou(){
    for(int i = 0; i < strlen(palavrasecreta);i++){
        if(!jachutou(palavrasecreta[i])){
            return 0;
        }
    }
    return 1;
}

void escolhepalavra(){
    FILE* f;

    f = fopen("palavras.txt", "r");
    if(f==0){
        printf("DESCULPE, BANCO DE DADOS NAO DISPONIVEL\n\n");
        exit(1);
    }

    int qtddepalavras;
    fscanf(f, "%d", &qtddepalavras);

    srand(time(0));
    int randomico = rand() % qtddepalavras;

    for(int i = 0; i <= randomico; i++){
        fscanf(f, "%s", palavrasecreta);

    }

    fclose(f);
}

void adicionapalavra(){
    char quer;
    printf("VOCE DESEJA ADICIONAR UMA NOVA PALAVRA AO JOGO? (S/N)\n");
    scanf(" %c", &quer);

    if(quer=='S'){
        char novapalavra[20];
        printf("Qual a nova palavra?");
        scanf("%s",novapalavra);

        FILE* f = fopen("palavras.txt", "r+");
        if(f==0){
        printf("DESCULPE, BANCO DE DADOS NAO DISPONIVEL\n\n");
        exit(1);
    }

        int quantidade;
        fscanf(f, "%d", &quantidade);
        quantidade++;

        fseek(f, 0, SEEK_SET);
        fprintf(f, "%d", quantidade);

        fseek(f, 0, SEEK_END);
        fprintf(f, "\n%s", novapalavra);

        fclose(f);
    }

}

int enforcou(){
    int erros = 0; 
    
    for(int i =0; i < chutesdados; i++){
        int existe = 0;
        
        for(int j = 0; j < strlen(palavrasecreta); j++){
            
            if(chutes[i] == palavrasecreta[j]){

                existe = 1;
                break;
            }
        }
        if(!existe) erros++;
    }

    return erros >= 5;
}
int main(){
    
    escolhepalavra();
    abertura();

    do{
        desenhaforca();
        chuta();


    }while(!acertou() && !enforcou());
    adicionapalavra();
}
1 resposta

Oi, Bruno! Tudo bem?

Ótimo projeto, parabéns pela execução do código, ficou super bacana! A prática é o melhor aliado do nosso aprendizado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software