Eu estou lendo um livro sobre Lógica de Programação com JavaScript e nele tem um exercício que me pede para fazer um jogo de loteria.
Eu consegui fazer oque estava no livro mas dai eu fui incrementando algumas coisa no código e depois disso eu parei para olhar e achei ele meio grande. Então eu gostaria de saber de vocês se ele está desnecessariamente grande ou se ele poderia ter sido feito de uma forma melhor e menor. Se possível até me apontar algumas falhas/hábitos que eu possa ter feito no código abaixo.
Agradeço desde já.
PS: Eu fiz ele no notepad++ e estou executando no chrome com um arquivo .html
<script>
function pulaLinha(z)
{
var x;
for (x = ; x < z; x++)
{
document.write("<br>");
}
}
function mostrarTexto (texto, y)
{
document.write ("<big>" + texto + "</big>");
pulaLinha(y);
}
//----------------------------------------------------------------------------------------------------------------------------------------------//
function loteria()
{
var n, p;
//Inicialização
function porque()
{
p = (parseInt(prompt("Devem ser sorteados números que estão entre 1 e ?:"))) - 1;
if (isNaN(p))
{
alert("INSIRA APENAS NÚNEROS!");
porque();
}
else if (p < 2)
{
alert("VOCÊ NÃO PODE INSERIR UM VALOR MENOR DO QUE 2.");
porque();
}
}
function nQ()
{
n = parseInt(prompt("Quantos números devem sem sorteados?"));
if (isNaN(n))
{
alert("INSIRA APENAS NÚNEROS!");
nQ();
}
else if (n < 1 || n > p)
{
alert("VOCÊ NÃO PODE INSERIR UM VALOR MENOR DO QUE 1 OU MAIOR DO QUE " + (p + 1) + ".");
nQ();
}
}
porque();
nQ();
//SORTEIO
var x, y, check, acertos = , sorteados = [], escolhas = [];
for (var i = ; i < n;)
{
x = Math.round((Math.random()*p) + 1);
check = ;
for (var a = ; a < n; a++)
{
if (sorteados[a] == x)
{
check = 1;
}
}
if (check == )
{
sorteados.push(x);
i++;
}
}
//-------------------------------------------------
//ESCOLHAS
for (b = ; b < n;)
{
y = parseInt(prompt("Escolha um número entre 1 e " + (p + 1) + "\n--------------------------\nEscolha o " + (b + 1) + "º número"));
check = ;
for (var c = ; c < n; c++)
{
if (escolhas[c] == y)
{
alert("Este número já foi esclhido. Tente novamente!");
check = 1;
}
}
if (check == && !isNaN(y) && y <= (p + 1) && y > )
{
escolhas.push(y);
b++;
}
else if (isNaN(y))
{
alert("APENAS NÚMEROS SÃO VÁLIDOS!");
}
else if (y > (p + 1))
{
alert("ESTE NÚMERO É MAIOR QUE O LIMITE DE " + (p + 1) + ". TENTE NOVAMENTE!");
}
else if (y <= )
{
alert("ESTE NÚMERO É MAIOR QUE O MÍNIMO DE 1. TENTE NOVAMENTE!");
}
}
//-------------------------------------------------
//VERIFICAÇÃO
for (var d = ; d < n; d++)
{
for (var e = ; e < n; e++)
{
if (escolhas[d] == sorteados [e])
{
acertos++;
}
}
}
alert("Você acertou " + acertos + " de " + n);
mostrarTexto("Foram sorteados: ----------- " + "Você escolheu:",1);
for (var r = ; r < n; r++)
{
mostrarTexto(sorteados[r] + " ---------------------------------------------- " + escolhas[r], 1);
}
mostrarTexto("Pressione F5 para abrir o menu de opções novamente!", 2);
}
loteria();
</script>