Olá, como vão?
Consegui resolver o desafio final sem problemas, no entanto estou com algumas dúvidas:
1)Por que quando eu chamo uma função após o onclick eu não posso colocar os ()?, como por exemplo, na linha em que aparece clicou.onclick=executar;
? Já vi isso acontecendo em outros exercícios também.
2)tentei inicialmente declarar a variável ok como true, mas aparentemente não estava lendo. Existe alguma forma específica de se trabalhar com variáveis booleanas em JavaScript?
3)Finalmente, porque que quando chama a função executar meus botões e campos de envio somem da tela? A função executa normalmente o que deveria, mas todo o resto que criei em HTML desaparece. Existe alguma forma de se corrigir isso?
Abaixo o código. Caso alguém tenha alguma outra sugestão para melhoria, pode falar também :)
<meta charset="UTF-8"/>
Seja bem vindo à loteria! Chute os números abaixo para começar!
<br> <br>
Número 1:
<input type="text" id="numero1"/> <br>
Número 2:
<input type="text" id="numero2"/> <br>
Número 3:
<input type="text" id="numero3"/> <br>
Número 4:
<input type="text" id="numero4"/> <br>
Número 5:
<input type="text" id="numero5"/> <br>
Número 6:
<input type="text" id="numero6"/> <br>
<input type="submit" id="enviar" value="Enviar!" />
<script>
var sorteia = function (numero){
/*Para conseguirmos alterar a função Math.random() para mostrar os valores que quisermos, usamos o seguinte modelo:
Math.random() * (max - min) + min; */
numero=parseInt(((Math.random() * 59) + 1));
return numero;
}
var recolhe = function(){
var elemento1=document.getElementById("numero1");
escolhidos[0]=elemento1.value;
var elemento2=document.getElementById("numero2");
escolhidos[1]=elemento2.value;
var elemento3=document.getElementById("numero3");
escolhidos[2]=elemento3.value;
var elemento4=document.getElementById("numero4");
escolhidos[3]=elemento4.value;
var elemento5=document.getElementById("numero5");
escolhidos[4]=elemento5.value;
var elemento6=document.getElementById("numero6");
escolhidos[5]=elemento6.value;
}
var sorteador = function(){
var ok=1;
for(var i=0; i<6; i++){
var provisorio=sorteia(provisorio);
for(var j=0;j<6;j++){
if(provisorio==sorteados[j]){
ok=0;}
while (ok==0){
provisorio=sorteia(provisorio);
if(provisorio!=sorteados[j]){
ok=1;} }
}
sorteados[i]=provisorio;
}
}
var comparar = function(){
var acertos=0;
var listaacerto=[];
var k=0;
for(var i=0;i<6;i++){
for (var j=0; j<6; j++){
if(escolhidos[i]==sorteados[j]){
acertos++;
listaacerto[k]=escolhidos[i];
k++; }
}
}
if(k==0){
document.write("<br><br>Lamentamos, você não acertou nada.");
} else if (k>0 && k<4){
document.write("<br><br>Você acertou somente " + k +" números.");
}
else {
document.write("<br><br>UAU! Você acertou "+ k+ " números!");
}
if(k>0){
document.write("<br>Números que você acertou ");
for(var i=0;i<k;i++){
document.write(";")
document.write(listaacerto[i]);
}
}
}
var mostrar = function(){
document.write("Esses sao os numeros que você escolheu:"+ escolhidos[0]+ ","+ escolhidos[1]+ ","+escolhidos[2]+ ","+escolhidos[3]+ ","+escolhidos[4]+ ","+escolhidos[5]+ ".");
document.write("<br>Esses sao os numeros sorteados:"+ sorteados[0]+ ","+ sorteados[1]+ ","+sorteados[2]+ ","+sorteados[3]+ ","+sorteados[4]+ ","+sorteados[5]+ "."+"<br><br>");
}
var executar=function(){
recolhe();
sorteador();
mostrar();
comparar();
document.write("<br>Havia exatamente 1 chance em 46656000000 de você acertar todos os números.");
}
var sorteados =[];
var escolhidos=[]
var clicou=document.getElementById("enviar");
clicou.onclick=executar;
</script>