Estou começando na programação e tenho algumas dúvidas sobre esse código do jogo da forca:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
char entrada[21]; //Palavra secreta
char letra[1]; //Letra que a pessoa digitou
char letras[30]; //Letras
char secreta[21]; //A letra certa e sua posição
int tam; //O tamanho da palavra vai ser igual a ENTRADA
int i; //(indice) Necessario pq vai usar array
int chances; // Quando acabar elas acaba o jogo
int acertos; // O numero de acertos equivale ao TAM
bool verificacao; // Verifica se a pessoa digitou uma letra certa ou errada
string dica;
chances=6;
tam=0;
i=0;
verificacao=false;
acertos=0;
cout << "O que seu adversario vai adivinhar? " << "\n";
cin >> entrada;
//comando limpar tela
system("cls");
cout << "Dica: ";
cout << dica;
cin >> dica;
// O indice vai percorrer ENTRADA até o /0 (enter) pra verificar se tá certo e a posição
//Char de arrays devem sempre terminar em /0
while(entrada != '\0') {
i++; // O i vai percorrer a "entrada" de um por um,e que ainda não é o /0
tam++; // Cada palavra certa vai adicionar +1 em TAM, desde que i não seja o enter
}
//Vou preencher a "entrada" com asteristicos e cada palavra certa vai ser -1 asteristico
for(i=0 ; i<21 ; i++) {
//Enquanto i for menor que 21, i de secreta vai aparecer com *
}
//Enquanto o jogador tiver chances e acertos diferente de tam, irá aparecer as chances e palavras acertadas na tela
inicio:
while((chances > 0)&&(acertos < tam)){
cout << "Chances Restantes: " << chances << "\n";
cout << "Palavra Secreta: ";
for(i=0 ; i<tam ; i++) {
cout << secreta;
}
//O jogador vai digitar
cout << "\n\n" << "Digite uma letra: ";
cin >> letra[0]; //Armazenar na posição 0
// Se já tiver usado a letra, goto volta pro o inico
for(i=0 ; i<tam ; i++){
if(letras == letra[0]) {
system("cls");
cout << "\nLetra ja usada! \n";
goto inicio;
} else {
letras=letra[0];
}
}
for(i=0 ; i<tam ; i++) {
if(entrada==letra[0]) {
verificacao=true;
// A letra dá posição vai ser copiada para secreta se for certa
secreta=entrada;
acertos++; // incrementa o total de acertos
}
}
//Se acerto for igual a falso "not acerto = !acerto" diminui o numero de chances
if(!verificacao) {
chances--;
}
verificacao=false;
system("cls");
if(verificacao=false) {
system("cls");
cout << letra[0];
}
}