Galera, estou há 2 dias nisso e não consigo fazer o código funcionar. O detalhe que falta é não deixar o usuário digitar números repetidos. Aproveito para pedir analise do código como um todo. Muito obrigado, segue abaixo:
<script>
var pulaLinha = function(){
document.write("<br>");
};
var mostra = function (frase){
document.write(frase);
pulaLinha();
};
var sortearNumero = function(numerosSorteados){
for(var i = 0; i < 6; i++){
var numero = 0;
while(numero == 0) {
numero = Math.round(Math.random() * 60);
};
var numeroValido = true;
for(var v = 0; v < 6; v++){
if(numero == numerosSorteados[v]){
numeroValido = false;
i = i - 1; //Serve para drecrementar o i e retornar àquela posição do array, impedindo que sejam sorteados menos de 6 números -- já que em caso de false ele não adiciona o nº no array.
break;
}
};
if(numeroValido == true){
numerosSorteados[i] = numero;
}
};
return numerosSorteados;
};
var escolherNumero = function(numerosUsuario){ // DUVIDA AQUI! ESSE É O 1º Q FIZ, NÃO CONTROLA REPETIÇÃO, TENTEI UNS Q CONTROLASSE MAS NÃO ESTÁ DANDO.
var i = 0;
while(numerosUsuario.length < 6){
var controle = parseInt(prompt("Escolha um número de 1 a 60"));
if(controle <= 60 && controle >= 1){
numerosUsuario[i] = controle;
i++;
}
else{
alert("Número inválido! Escolha outro número!");
}
};
return numerosUsuario;
};
var contagemDeAcertos = function(numerosUsuario, numerosSorteados, qtdadeDeAcertos){
for(var i = 0; i < 6; i++){
for(var ii = 0; ii < 6; ii++){
if(numerosUsuario[i] == numerosSorteados[ii]){
qtdadeDeAcertos++;
}
}
};
return qtdadeDeAcertos;
};
var numerosSorteados = [];
var numerosUsuario = [];
var qtdadeDeAcertos = 0;
numerosSorteados = sortearNumero(numerosSorteados);
numerosUsuario = escolherNumero(numerosUsuario);
qtdadeDeAcertos = contagemDeAcertos(numerosUsuario, numerosSorteados, qtdadeDeAcertos);
mostra("Você acertou " + qtdadeDeAcertos + " número(s)!");
console.log(numerosSorteados);
</script>
Eu tentei este aqui, mas ele cai no problema do array na posição 0! Ele sempre retorna que já ta repetido qdo põe o primeiro. É o mais próximo que cheguei.
<script>
var escolherNumero = function(numerosUsuario){
for(var i = 0; i < 6; i++){
var controle = true;
var numero = parseInt(prompt("Digite um número de 1 a 60"));
numerosUsuario[i] = numero;
if(numero >= 1 && numero <= 60){
for(var ii = 0; ii < 6; ii++){
if( numero == numerosUsuario[ii]){
alert("Número já escolhido, tente outro!");
controle = false;
break;
}
};
}
else{
alert("Número inválido! Tente novamente!");
controle = false;
}
if(controle == false){
i = i - 1;
}
};
return numerosUsuario;
};
</script>