Fala rapazeada, fiz esse exercício para concluir minha aprendizagem no módulo de Lógica de Programação I. ; ) Resolvi continuar com a ideia dos Números da Mega Sena, porém com uma interatividade do usuário no sorteio dos números. Tentei ao máximo fechar todas as possibilidades de erros que o cliente poderia apresentar, como por exemplo, digitar texto em vez de números, clicar no botão de ok do alert sem ter informado nenhum dado etc. Se vcs puderem analisar e tentarem encontrar alguma falha que posso ter cometido ou mesmo alguma solução mais adequada para algo que eu tenha escrito, ficarei muito agradecido. Aprendi algumas coisas novas devido a necessidade que foi surgindo. Quebrei um pouco a cabeça até achar a resposta, mas valeu muito o esforço.
Obrigado pela força, sempre!
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Números da Sorte</title>
<link rel="icon" href="favicon.png">
</head>
<body>
<p>O jogo da <b>Mega Sena</b> é composto pela escolha de 6 dezenas dentre os números 1 ao 60.</p>
<p>Nesse programa, você pode indicar de <b>1 a 5 dezenas</b>, que podem ser os seus números da sorte. O sistema se encarregará de sortear aleatoriamente<br>a quantidade de números que estiverem faltando para completar as 6 dezenas do seu jogo.</p>
<p>Qual a quantidade de dezenas da sorte que você quer indicar?</p>
<input/>
<br>
<hr>
<button>Clique para gerar os números que completam o seu jogo</button>
<script>
let input = document.querySelector("input");
input.focus();
let button = document.querySelector("button");
button.onclick = sorteiaNumeros;
function sorteia() {
return Math.floor(Math.random() * 60 ) + 1;
}
function sorteiaNumeros() {
let megaSena = [];
let quantidadeDezenasEscolhidas = input.value;
let numero = 1;
let quantidadeDezenasJogadas = 6;
let quantidadeDezenasPermitidas = 5;
while(isNaN(quantidadeDezenasEscolhidas)) {
alert("Atenção!!! Somente números são permitidos para a escolha da quantidade de dezenas.");
let input = document.querySelector("input");
input.focus();
input.value = "";
$(quantidadeDezenasEscolhidas).val("");
}
while(quantidadeDezenasEscolhidas > 5 || quantidadeDezenasEscolhidas == 0) {
alert("Atenção!!! Entrada inválida. Escolha no mínimo 1 dezena e no máximo 5 dezenas.");
let input = document.querySelector("input");
input.focus();
input.value = "";
$(quantidadeDezenasEscolhidas).val("");
}
while(numero <= quantidadeDezenasEscolhidas) {
let achou = false;
let numerosEscolhidos = parseInt(prompt("Escolha um número para a dezena " + numero));
while(numerosEscolhidos > 60 || numerosEscolhidos == 0 || isNaN(numerosEscolhidos)) {
alert("Número não permitido. Os números válidos para a Mega Sena são do 1 ao 60.");
numerosEscolhidos = "";
numerosEscolhidos = parseInt(prompt("Escolha um número para a dezena " + numero));
}
for(let posicao = 0; posicao < megaSena.length; posicao++) {
achou = false;
if(megaSena[posicao] == numerosEscolhidos) {
achou = true;
alert("Esse número já foi escolhido. Por favor, escolha outro número diferente.");
break;
}
}
if(achou == false) {
megaSena.push(numerosEscolhidos);
numero++;
}
}
while(quantidadeDezenasEscolhidas < quantidadeDezenasJogadas) {
let achou = false;
let numerosAleatorios = sorteia();
for(let posicao = 0; posicao < megaSena.length; posicao++) {
if(megaSena[posicao] == numerosAleatorios) {
achou = true;
break;
}
}
if(achou == false) {
megaSena.push(numerosAleatorios);
quantidadeDezenasEscolhidas++;
}
}
megaSena.sort(function(a,b){return a - b});
alert("Os números escolhidos são: " + megaSena + " Boa Sorte!!!");
input.value = "";
input.focus();
}
</script>
</body>
</html>