Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Execução dos loop

Não estou entendendo o funcionamento deste segundo for(mais interno), alguém poderia me explicar?

#include <stdio.h>
#include <string.h>
void abertura(){
    printf("/****************/\n");
    printf("/* Jogo de Forca */\n");
    printf("/****************/\n\n");
}

int main(){
    abertura();
    char palavrasecreta[20];
    sprintf(palavrasecreta,"MELANCIA");

    int acertou = 0;
    int enforcou = 0;

    char chutes[26];
    int tentativas = 0;

    do{

        for(int i =0; i < strlen(palavrasecreta); i++){
            int achou = 0;
            for(int j = 0; j < tentativas; j++){
                if(chutes[j]== palavrasecreta[i]){
                    achou = 1;
                    break;
                }
            }
            if(achou){
                printf("%c ",palavrasecreta[i]);
            }else{
                printf("_ ");
            }    
        }
        printf("\n");

        char chute;
        scanf(" %c", &chute);

        chutes[tentativas] = chute;
        tentativas++;

    }while(!acertou && !enforcou);    

}
2 respostas
solução!

Oi André!

O segundo for que você se refere é responsável por percorrer cada letra dos chutes que já foram dados e comparar com cada letra da palavrasecreta. Caso as duas letras forem iguais, ele marca que achou (achou = 1) e sai do for interno imediatamente, pulando para a impressão da letra que foi achada.

Vou tentar dar uma exemplo: para a palavrasecreta MELANCIA, digamos que você já deu 3 (tentativas) chutes: A, T e C. O primeiro for fica responsável por percorrer cada letra da palavrasecreta de cada vez (primeira vez utilizará o "M", que é palavrasecreta[0]) e comparar esse M com todas as suas tentativas (M é igual A? M é igual T? M é igual C?), letra por letra até encontrar alguma igual ou até acabar todas as letras da palavrasecreta e todas tentativas.

Consegui ajudar um pouco? :)

Conseguiu sim, obrigado.

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