Skip to content

Instantly share code, notes, and snippets.

@valdiney
Created September 28, 2014 15:25
Show Gist options
  • Save valdiney/0fce5db023e75d6a2f6d to your computer and use it in GitHub Desktop.
Save valdiney/0fce5db023e75d6a2f6d to your computer and use it in GitHub Desktop.
Refactoring code: Dei uma refatorada em um antigo código em uma noite chata de sábado. Não está ainda 100%, mas tá bem melhor.
$(document).ready(function() {
"use strict"
var _conometro = $(".conometro"),
_perguntas = $(".perguntas"),
_play = $(".play"),
_inputResposta = $("#resposta"),
acertos = 0,
erros = 0,
relatorioErros = [],
relatorioAcertos = [],
operandoLeft = 10,
operandoRight = 10,
saida = null,
incrementaConometro = 0,
stop = 5,
estado = true,
operando1 = null,
operando2 = null,
resultadoDosOperandos = null,
aviso = null,
total = null;
////////////////////////////////////////////////////
// Função Play() inicia o Game...
///////////////////////////////////////////////////
_play.click( function() {
conometro(incrementaConometro, stop);
mostraAsPerguntas(estado);
gerandoAsPerguntas(2);
$(this).fadeOut('slow');
////////////////////////////////////////////////////
// Função buttonResponder() Chama a função que gera
// os números Ramdomicos a cada click...
///////////////////////////////////////////////////
$('<button type="button" class="btn btn-warning responder">Confirmar</button>').insertAfter('.play');
var buttonResponder = $(".responder");
buttonResponder.click( function() {
resultadoDosOperandos = Number(operando1 * operando2);
var resposta = Number(_inputResposta.val());
gerandoAsPerguntas(2);
if (resposta == resultadoDosOperandos) {
acertos += 1;
relatorioAcertos.push(saida + " = " + resposta);
}
else {
erros += 1;
if (acertos != 0 || erros != 0 && resposta == 0) {
resposta = "Pulou";
}
relatorioErros.push(saida + " = " + resposta);
}
document.getElementById('resposta').value = '';
document.getElementById('resposta').focus();
});
////////////////////////////////////////////////////
});
////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
// Função gerandoAsPerguntas() Gera todos os números Randomicos...
//////////////////////////////////////////////////////////////////
function gerandoAsPerguntas(tipoOperacao) {
if (tipoOperacao == 1) {
operandoLeft = Math.floor(Math.random() * operandoLeft + 0);
operandoRight = Math.floor(Math.random() * operandoRight + 0);
saida = operandoLeft + " + " + operandoRight;
_perguntas.text(saida);
}
else if (tipoOperacao == 2) {
operando1 = Math.floor(Math.random() * operandoLeft + 0),
operando2 = Math.floor(Math.random() * operandoRight + 0);
saida = operando1 + " x " + operando2 + " = ?";
_perguntas.text(saida);
}
}
////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
// Função mostraAsPerguntas() mostra os elementos que apresentam as perguntas...
////////////////////////////////////////////////////////////////////////////////
function mostraAsPerguntas(estado) {
var classStyle = $(".style");
if (estado == true) {
classStyle.fadeIn('slow');
$("#resposta").fadeIn('slow');
}
else {
classStyle.fadeOut('slow');
$("#resposta").fadeIn('slow');
}
}
/////////////////////////////////////////////////
///////////////////////////////////////////
// Função conometro() cria o conometro...
//////////////////////////////////////////
function conometro(incrementaConometro) {
var dispara = setInterval( function() {
incrementaConometro += 1;
_conometro.text(incrementaConometro);
//////////////////////////////////////////////
// Função paraConometro() para o conometro...
//////////////////////////////////////////////
function paraConometro(dispara) {
if (incrementaConometro == stop) {
clearInterval(dispara);
$(".responder").fadeOut('slow');
$("#resposta").fadeOut('slow');
_perguntas.text("");
mostraOsRelatorios();
}
}
paraConometro(dispara);
}, 1000);
}
////////////////////////////////////////////////
////////////////////////////////////////////////////
// Função mostraOsRelatorios() mostra as perguntas
// erradas e que o usuario pulou e que também são
// concideradas erradas...
//////////////////////////////////////////////////
function mostraOsRelatorios() {
if (relatorioErros.length > 0) {
for (var cont = 0; cont < relatorioErros.length; cont++) {
_perguntas.append("Errado: " + relatorioErros[cont] + "<br>");
}
}
$('<p class="textExtra"></p>').insertBefore('.perguntas');
aviso = $(".textExtra");
aviso.append("<h3>Fim de jogo:</h3> Vejá abaixo os resultados do seu desempenho.");
desempenhoDoJogador();
quantasPerguntasRespondeu();
resetarJogo();
}
/////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
// Função desempenhoDoJogador() apresenta o desempenho do jogador ao final do game...
//////////////////////////////////////////////////////////////////////////////////////
function desempenhoDoJogador() {
if (acertos < 1 && erros < 1) {
aviso.append("<br> <h3>Ops:</h3> Tem realmente alguém na frente do computador? Pois não respondeu nenhuma pergunta.");
}
else if (acertos < erros) {
aviso.append("<br> <br> Você precisa estudar mais 'Cara de melão'");
}
}
///////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
// Função quantasPerguntasRespondeu() apresenta quantas perguntas o usuario respondeu
// e qunatas acertou e quantas errou...
//////////////////////////////////////////////////////////////////////////////////////
function quantasPerguntasRespondeu() {
var concordancia = " pergunta";
total = erros + acertos;
if (total != 0) {
if (total > 1) {
concordancia = " perguntas";
}
if (acertos < 1) {
acertos = " nenhuma";
}
aviso.append("<br> <hr> Você respondeu " + total + concordancia + ", sendo que errou " + erros + " e acertou " + acertos + ".");
}
}
////////////////////////////////////////
////////////////////////////////////////////////////////////////
// Função resetarJogo() atualiza a página Após click no link...
///////////////////////////////////////////////////////////////
function resetarJogo() {
$('<a href="index.html" class="btn btn-warning">Resetar o jogo</a>').insertBefore('.responder');
}
///////////////////////////////////////
}); // end jquery...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment