Olá pessoal!
Estou a concorrer para um pequeno curso de programação, porém para ser selecionado tenho de completar algumas tarefas (59 no total). Já resolvi muitas, mas como não tenho muita experiencia com programação estou a ter dificuldades com algumas.
Por exemplo, esta tarefa:
"Você sabe que a senha do seu alvo tem 4 caracteres, então você terá que forçar com brute force 1 caractere por vez. Já declaramos a variável correctGuesses , que você deve usar para acompanhar quantos caracteres adivinhou.
Agora você precisa criar um loop que só pare quando todos os 4 caracteres tiverem sido adivinhados. Em cada iteração de loop, existem 3 resultados possíveis:
1. Você adivinha corretamente, o que aumenta o número de acertos correctos em 1 e imprime a mensagem ‘Caracteres X encontrados’ (onde X é substituído pelo número atual de palpites corretos).
2. Você adivinha incorretamente e o terminal do seu alvo detectou muitas tentativas, que redefinem as Guias corretas para 0 e imprimem a mensagem ‘Iniciando novamente’ no console.
3. Você adivinha incorretamente, mas o correctGuesses é mantido com o mesmo valor.
Cada resultado tem a mesma probabilidade de acontecer, mas é aleatório.
Quando a senha for quebrada, você deverá imprimir a mensagem ‘Terminal hackeado!’.
Verifique se todas as mensagens no seu código estão no formato correto para avançar!"
O MEU CÓDIGO É (mas não gera o resultado previsto pela tarefa):
var correctGuesses = 0;
var passwordLength = 4;
var tries = 3;
while (correctGuesses !== 4) {
tries --;
var outcome = Math.floor(Math.random() * 4);
if (outcome === 0){
correctGuesses ++;
console.log ('Found ' + correctGuesses + ' characters');
}else if ((outcome !== 0) && (tries < 0)){
correctGuesses = 0;
console.log ('Starting over');
}else if (outcome !== 0){
console.log ('Wrong guess.');
}
}
if (correctGuesses === 4) {
console.log ('Terminal hacked!');
}
AJUDEM-ME, POR FAVOR!
