Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <meta charset="utf-8">
- <script>
- var sorteados_computador = [];
- var sorteados_usuario = [];
- var resultado = [];
- var reDigits = /^\d{1,2}$/;
- var num_1_a_60;
- var i = 0;
- var j = 0;
- /**
- * Põe uma linha em branco na tela.
- */
- var pula_linha = function(){
- document.write("<br>");
- };
- /**
- * Mostra um texto e acrescenta uma linha em branco.
- *
- * @param frase, para ser mostrada na tela para o usuário.
- */
- var mostra = function(frase){
- document.write(frase);
- pula_linha();
- pula_linha();
- };
- /**
- * Valida as entradas (total de 6) fornecidas pelo usuário.
- *
- * @param numero, repassado para a função validar o mesmo.
- *
- * @return 0 se entrada for um número válido (entre 1 e 60), -1 se entrada não for um número,
- * -2 se entrada for um número menor que 1, -3 se a entrada for um número maior que 60.
- *
- * @note Se o número decimal contiver vírgula ou ponto (ex.: 1,931 ou 1.931) a função o
- * detectará como inválido.
- */
- var valida = function(numero) {
- if (reDigits.test(numero)) {
- if (numero < 1) {
- return -2;
- } else if (numero > 60) {
- return -3;
- }
- return 0;
- } else {
- return -1;
- }
- };
- /**
- * Mostra mensagem gerada após a validação dos dados fornecidos pelo usuário e pula uma linha.
- *
- * @param retorno, dado para comparação que determina a exibição da mensagem.
- */
- var mostra_resultado = function(retorno) {
- if (-1 === retorno) {
- mostra("Somente números inteiros são válidos!");
- }
- if (-2 === retorno) {
- mostra("Somente números inteiros MAIORES <br> que 0 são válidos!");
- }
- if (-3 === retorno) {
- mostra("Somente números inteiros MENORES <br> que 61 são válidos!");
- }
- };
- /**
- * Evita que número repetido seja colocado no array sorteados_usuario.
- *
- * @param numero, passado pelo usuário para comparação com os números do array sorteados_usuario
- *
- * @return false, caso o número fornecido pelo usuário já esteja no array sorteados_usuario.
- */
- var elimina_repetidos = function(numero) {
- for (var i = 0; i < sorteados_usuario.length; i++) {
- if (parseInt(sorteados_usuario[i]) === parseInt(numero)) {
- return false;
- }
- }
- };
- /**
- * Compara todos os números sorteados pelo usuário com os sorteados pelo computador e os
- * números que coincidirem são colocados no array resultado.
- */
- var compara_numeros = function() {
- for (var i = 0; i < sorteados_usuario.length; i++) {
- for (var j = 0; j < sorteados_computador.length; j++) {
- if (parseInt(sorteados_usuario[i]) === parseInt(sorteados_computador[j])) {
- resultado.push(sorteados_usuario[i]);
- }
- }
- }
- console.log("Números acertados pelo usuário: ");
- console.log(resultado);
- };
- mostra("<b>Escolha 6 números para ganhar na loteria!</b>");
- pula_linha();
- /**
- * Sorteia números aleatórios e coloca no array sorteados_computador.
- */
- while (j < 6) {
- var num_1_a_60 = Math.round( ( ( Math.random() * 59 ) + 1 ) );
- var retorno = elimina_repetidos(num_1_a_60);
- if (retorno !== false) {
- sorteados_computador[j] = num_1_a_60;
- j++;
- }
- }
- /**
- * Pede um número ao usuário 6 vezes e coloca no array sorteados_usuario depois de validar e
- * eliminar números repetidos.
- *
- * @note mostra mensagens de erro quando necessário.
- */
- while (i < 6) {
- var numero = prompt("Informe um número inteiro entre 1 e 60: ");
- var retorno = valida(numero);
- var RET = elimina_repetidos(numero);
- if ((0 === retorno) && (RET === false)) {
- mostra("Numero já escolhido!");
- }
- if ((0 === retorno) && (RET !== false)) {
- sorteados_usuario.push(numero);
- i++;
- } else {
- mostra_resultado(retorno);
- }
- }
- compara_numeros();
- /**
- * Mostra resultado da loteria ao usuário.
- */
- mostra("<b>Números sorteados pelo usuário: </b>" + sorteados_usuario);
- mostra("<b>Números sorteados pelo computador : </b>" + sorteados_computador);
- if (resultado.length < 1) {
- mostra("<b>Que pena! Você não acertou nenhum número.</b>");
- } else if (resultado.length === 1) {
- mostra("<b>Você acertou o: </b>" + resultado);
- } else if (resultado.length === 6) {
- mostra("<b>Parabéns, sortudo! Você acertou todos os números: </b>" + sorteados_computador);
- } else {
- mostra("<b>Números que você acertou: </b>" + resultado);
- }
- console.log("Sorteados pelo computador: ");
- console.log(sorteados_computador);
- console.log("Sorteados pelo usuário: ");
- console.log(sorteados_usuario);
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement