diff --git a/config.exemplo.json b/config.exemplo.json index 9977ecf..5fa46c8 100644 --- a/config.exemplo.json +++ b/config.exemplo.json @@ -17,7 +17,13 @@ "cliente.ping.tempoMáximo": 50000, "cliente.uas.limite": 180000, "misc.tempo.pings": 10000, - "misc.tempo.checarInatividade": 10000 + "misc.tempo.checarInatividade": 10000, + + "palavra.regex.caracteresIlegais": "[^A-Za-zÀ-ÿ0-9\\s\\-&]+", + "palavra.tamanho.mín": 3, + "palavra.tamanho.máx": 48, + "tema.tamanho.mín": 0, + "tema.tamanho.máx": 32 } } diff --git a/index.js b/index.js index 2cafe18..4126cdc 100644 --- a/index.js +++ b/index.js @@ -317,8 +317,6 @@ wss.on('connection', ws => { ws.send(JSON.stringify(new Resposta("PEDIDO_CANCELADO", "SERVIDOR", "AGUARDE_SUA_VEZ"))); break; } - cliente.uas = Date.now(); - salaObj.uas = Date.now(); // Verificar o tipo do termo enviado. let letra = resposta.extra.termo.length === 1; @@ -331,12 +329,6 @@ wss.on('connection', ws => { return; } - /*// A sala está aceitando apenas letras? - if (salaObj.estadoTermo === "AGUARDANDO_LETRA" && !letra){ - // A sala não está esperando termos. - ws.send(JSON.stringify(new Resposta("PEDIDO_CANCELADO", "SERVIDOR", "TERMO_INVÁLIDO_TERMO_INESPERADO"))); - break; - }*/ // O jogador deseja pular? if (salaObj.estadoTermo === "AGUARDANDO_TERMO" && resposta.extra.termo === '?'){ @@ -352,6 +344,10 @@ wss.on('connection', ws => { ws.send(JSON.stringify(new Resposta("PEDIDO_CANCELADO", "SERVIDOR", "TERMO_INVÁLIDO_LETRA_INESPERADA"))); break; } + + cliente.uas = Date.now(); + salaObj.uas = Date.now(); + let resultadoTermo = salaObj.processarTermo(resposta.extra.termo); let lp = resultadoTermo.letrasPreenchidas; let r = resultadoTermo.resultado; diff --git a/sala.js b/sala.js index 1640a5f..0a4c751 100644 --- a/sala.js +++ b/sala.js @@ -44,7 +44,6 @@ class Sala { /** * Inicia uma nova partida nesta sala. - * @returns null * @since 19 de outubro de 2020. */ novaPartida(){ @@ -147,12 +146,18 @@ class Sala { termo = termo.toUpperCase(); let resultadoTermo = { letrasPreenchidas: 0, resultado: null }; if (termo.length === 1){ + // Este termo já foi enviado? + if (this.lee.indexOf(termo) !== -1 + || this.lei.indexOf(termo) !== -1) + resultadoTermo.resultado = "LETRA_JÁ_ESCOLHIDA"; // A palavra escolhida possui a letra enviada? - if (this.palavra.indexOf(termo) === -1) - resultadoTermo.resultado = 'LETRA_INEXISTENTE'; - else { + else if (this.palavra.indexOf(termo) === -1){ + this.lei.push(termo); + resultadoTermo.resultado = "LETRA_INEXISTENTE"; + } else { resultadoTermo.letrasPreenchidas = this.preencherCampos(termo); - resultadoTermo.resultado = 'LETRAS_PREENCHIDAS'; + this.lee.push(termo); + resultadoTermo.resultado = "LETRAS_PREENCHIDAS"; } return resultadoTermo; } else {