O instrutor no vídeo faz o código e ele funciona, porém, ele deixa todos os valores já definidos, eu fiz uma função que "r" que gera um número aleatorio e o retorna com o valor "a", sendo assim, a variável segredos passa a ser segredos = [r(), r(), r(), r()]. E também fiz uma função que verifica.
function verifica(a,b){
if(a.value==b){
alert("Acertou!");
}else {
alert("Errou!");
}
a.value = "";
a.focus();
}
Na chamada da função verifica, passo passar o segredos (como segundo parametro) como segredos[i] ? i sendo o mesmo i do for que começa em 0, e é incrimentado em 1 a cada loop, o que acompanharia as posições do array.
Também tentei colocar um terceiro parâmetro na função, o parâmetro "c", e alterei o if(a.value==b) para if(a.value==b[c]), e declarei a função como verifica(input, segredos, i).
O nome das variáveis e parametros não estão nada semânticos, mas fiz a fim de testar se funcionava e queria fazer o mesmo programa que o instrutor, mas com menos valores já pré definidos no código, e buscando esses valores de funções.
Vou colar o código inteiro aqui. Aceito qualquer ajuda, até mesmo alguma linha de raciocinio que eu deva seguir, estou mexendo nesse código já há algum tempo, e minha cabeça já está meio confusa, então posso não estar pensando tão claramente e perdendo alguns detalhes importantes.
function verifica(a,b){
if(a.value==b){
alert("Acertou!");
}else {
alert("Errou!");
}
a.value = "";
a.focus();
}
function r (){
a = Math.round(Math.random() * 100);
return a;
}
var buttonOk = document.querySelector("#ok");
var input = document.querySelector("input");
buttonOk.addEventListener("click", function(event){
event.preventDefault();
var input = document.querySelector("input");
var segredos = [r(), r(), r(), r()];
console.log(segredos);
for(i=0;i<=segredos.length-1;i++){
verifica(input, segredos[i]);
}
})
Esse é o código depois de muitas alterações, provavelmente há vários erros nele agora. Voltarei a mexer nele quando acordar, e posto uma versão melhor, talvez.