1
resposta

Valida nova Linha

No projeto final do Game, não se foi validado se o jogador escreveu certo ou não... Então o jogador podia apenas fazer diversos palavras com um carácter que no final do tempo, seria colocado no placar o resultado de palavras. Eu coloquei um IF para ser somado ao placar apenas se o jogador não errar. Gostaria de saber se ha alguma maneira melhor de se validar.

att Vinicius Gaspar

function novaLinha(usuario, palavras) {
    var linha = $("<tr>");
    var colunaUsuario = $("<td>").text(usuario);
    var colunaPalavras = $("<td>").text(palavras);
    var colunaRemover = $("<td>");

    var link = $("<a>").addClass("botao-remover").attr("href", "#");
    var icone = $("<i>").addClass("small").addClass("material-icons").text("delete");

    var frase = $(".frase").text();
    var digitado = campo.val();
    var comparavel = frase.substr(0, digitado.length);
    if (digitado == comparavel) {
      link.append(icone);

      colunaRemover.append(link);

      linha.append(colunaUsuario);
      linha.append(colunaPalavras);
      linha.append(colunaRemover);

      return linha;}
      else {

      }
}
1 resposta

Oi Vinicius,

Desse jeito que você está correto.

Talvez uma melhoria fosse fazer a validação primeiro, para depois recuperar os dados, apenas se estiver correto. E também poderia criar uma função separada para a validação:

function digitouCorreto(frase, digitado) {
    var comparavel = frase.substr(0, digitado.length);
    return digitado == comparavel;
}

function novaLinha(usuario, palavras) {
    var frase = $(".frase").text();
    var digitado = campo.val();

    if (digitouCorreto(frase, digitado)) {
        var linha = $("<tr>");
        var colunaUsuario = $("<td>").text(usuario);
        var colunaPalavras = $("<td>").text(palavras);
        var colunaRemover = $("<td>");

        var link = $("<a>").addClass("botao-remover").attr("href", "#");
        var icone = $("<i>").addClass("small").addClass("material-icons").text("delete");
        link.append(icone);

        colunaRemover.append(link);

        linha.append(colunaUsuario);
        linha.append(colunaPalavras);
        linha.append(colunaRemover);

        return linha;
    } else {
        //aqui poderia mostrar uma mensagem de erro
        alert("msg de erro...");
    }
}

Desse jeito fica mais organizado o código.

Bons estudos!