Além do que comentaram acima, existem alguns problemas adicionais, como um erro clássico de comparação de valor com array diretamente e diversas invocações do método de sorteio desnecessariamente e que desconfiguram o jogo. Eu fiz uma resposta bem detalhada a respeito desse desafio final em outra discussão, e colarei aqui com algumas modificações para lhe ajudar:
Devemos criar o array de números inteiros sorteados, utilizando a função Math.random() em conjunto com a função Math.round() aprendidas durante o curso. Então para facilitar podemos criar uma função que sorteie os seis número aleatórios e nos retorne o array, ficando assim:
var sorteiaNumeros = function() {
var loteria = [];
// adicionei uma condicao para garantir numeros nao repetidos
while (loteria.length < 6) {
var sorteado = Math.round(Math.random() * 60);
var repetido = false;
for (var i = 0; i < loteria.length; i++) {
if (loteria[i] == sorteado) {
repetido = true;
}
}
if (!repetido) { //se nao for repetido adiciona
loteria.push(sorteado);
}
}
return loteria;
}
Sua função do botão sorteia novos números toda vez que é invocada, além disso, a comparação de número com array diretamente nunca dará certo, portanto, separando responsabilidades, apenas pergunte ao usuário 6 vezes pelos números e retorne eles, em uma função assim:
var perguntaNumeros = function() {
var palpites = [];
// adicionei condicao para garantir numeros distintos do usuario
var i = 1;
while (palpites.length < 6) {
// lembre-se que o prompt retorna string por isso transformamos em int
var numero = parseInt(prompt("Digite o seu palpite numero " + i + ":"));
var repetido = false;
for (var j = 0; j < palpites.length; j++) {
if (palpites[j] == numero) {
repetido = true;
}
}
if (!repetido) { //se nao for repetido adiciona
palpites.push(numero);
i++;
} else {
alert("Numero repetido!");
}
}
return palpites;
}
Agora, precisamos validar se o usuário acertou, portanto fazemos uma função que retorna o numero de acertos, porém de maneira parametrizada, afim de poder ser reutilizada para diversas combinações:
var verificarResultado = function(loteria, palpites) {
var acertos = 0;
for (var i = 0; i < loteria.length; i++) {
for (var j = 0; j < palpites.length; j++) {
if (palpites[j] == loteria[i]) {
acertos++;
}
}
}
return acertos;
}
Agora criamos uma função que utiliza as demais para executar o jogo e associamos ao botão:
var jogar = function() {
var loteria = sorteiaNumeros();
var palpites = perguntaNumeros();
console.log("sorteados: " + loteria);
console.log("palpites: " + palpites);
var acertos = verificarResultado(loteria, palpites);
if (acertos == 6) {
alert("Parabens, voce ganhou!");
} else {
alert("Que pena, você acertou " + acertos + " numeros. tente de novo!");
}
}
var botaoJogar = document.getElementById("jogar");
botaoJogar.onclick = jogar;
Colocando tudo em um bloco só para facilitar a cópia temos como resultado:
<input id="jogar" type="submit" value="Jogar!" />
<script>
var sorteiaNumeros = function() {
var loteria = [];
// adicionei uma condicao para garantir numeros nao repetidos
while (loteria.length < 6) {
var sorteado = Math.round(Math.random() * 60);
var repetido = false;
for (var i = 0; i < loteria.length; i++) {
if (loteria[i] == sorteado) {
repetido = true;
}
}
if (!repetido) { //se nao for repetido adiciona
loteria.push(sorteado);
}
}
return loteria;
}
var perguntaNumeros = function() {
var palpites = [];
// adicionei condicao para garantir numeros distintos do usuario
var i = 1;
while (palpites.length < 6) {
// lembre-se que o prompt retorna string por isso transformamos em int
var numero = parseInt(prompt("Digite o seu palpite numero " + i + ":"));
var repetido = false;
for (var j = 0; j < palpites.length; j++) {
if (palpites[j] == numero) {
repetido = true;
}
}
if (!repetido) { //se nao for repetido adiciona
palpites.push(numero);
i++;
} else {
alert("Numero repetido!");
}
}
return palpites;
}
var verificarResultado = function(loteria, palpites) {
var acertos = 0;
for (var i = 0; i < loteria.length; i++) {
for (var j = 0; j < palpites.length; j++) {
if (palpites[j] == loteria[i]) {
acertos++;
}
}
}
return acertos;
}
var jogar = function() {
var loteria = sorteiaNumeros();
var palpites = perguntaNumeros();
console.log("sorteados: " + loteria);
console.log("palpites: " + palpites);
var acertos = verificarResultado(loteria, palpites);
if (acertos == 6) {
alert("Parabens, voce ganhou!");
} else {
alert("Que pena, você acertou " + acertos + " numeros. tente de novo!");
}
}
var botaoJogar = document.getElementById("jogar");
botaoJogar.onclick = jogar;
</script>
O legal é ir separando as necessidades do seu programa e modularizando em funções. Caso suas dúvidas tenham sido esclarecidas, peço que selecione a resposta que melhor lhe ajudou e marque como resolvido, a fim de evitar postagens a mais desnessárias. Obrigado!