main.js
var tempoInicial = $("#tempo-digitacao").text();
var campo = $(".campo-digitacao")
$(function (){
atualizaTamanhoFrase();
inicializaContadores();
inicializaCronometro();
inicializaMarcadores();
$("#botao-reiniciar").click(reiniciaJogo);
})
function atualizaTempoInicial(tempo) {
$("#tempo-digitacao").text(tempo);
}
function atualizaTamanhoFrase() {
var numPalavras = frase.split(" ").length;
var tamanhoFrase = $("#tamanho-frase");
tamanhoFrase.text(numPalavras);
}
function inicializaContadores() {
campo.on("input", function(){
var conteudo = campo.val();
var qtdPalavras = conteudo.split(/\S+/).length - 1;
var qtdCaracteres = conteudo.length;
$("#contador-palavras").text(qtdPalavras);
$("#contador-caracteres").text(qtdCaracteres);
});
}
function inicializaCronometro() {
var tempoRestante = $("#tempo-digitacao").text();
campo.one("focus", function (){
var cronometoID = setInterval(function(){
tempoRestante--;
$("#tempo-digitacao").text(tempoRestante);
if (tempoRestante < 1) {
clearInterval(cronometoID);
finalizaJogo();
}
},1000);
})
}
function finalizaJogo(){
campo.attr("disabled", true);
campo.toggleClass("campo-desativado");
inserePlacar();
}
function inicializaMarcadores(){
campo.on("input", function () {
var digitado = campo.val();
var comparavel = frase.substr(0,digitado.length);
if (digitado == comparavel) {
campo.addClass("borda-verde");
campo.removeClass("borda-vermelha");
}else{
campo.addClass("borda-vermelha");
campo.removeClass("borda-verde");
}
});
}
function reiniciaJogo() {
campo.attr("disabled", false);
campo.val("");
$("#contador-palavras").text("0");
$("#contador-caracteres").text("0");
$("#tempo-digitacao").text(tempoInicial);
inicializaCronometro();
campo.removeClass("campo-desativado");
campo.removeClass("borda-verde");
campo.removeClass("borda-vermelha");
}
frases.js
$("#botao-frase").click(fraseAleatoria);
function fraseAleatoria() {
$.get("http://localhost:3000/frases", trocaFraseAleatoria);
}
function trocaFraseAleatoria(data) {
var frase = $(".frase");
var numeroAleatorio = Math.floor(Math.random() * data.length);
frase.text(data[numeroAleatorio].texto);
atualizaTamanhoFrase();
atualizaTempoInicial(data[numeroAleatorio].tempo);
stop();
}
Eu não sei porque o tamanho das minhas frases não atualizam, mas se eu mudar a frase principal no html o código funciona!