Eu tive alguns problemas com relação aos números negativos. Diferente do instrutor, meu projeto não reconhecia os números negativos com números mas como strings. Então fiz dois tratamentos: o 1º para mostrar o número corretamente na tela, tanto se você começar com "menos" quanto caso você diga "negativo" (exemplos: "menos um" e "um negativo". E o 2º para a validação correta do número não como uma string pois caia no if de "diga um número".
1º tratamento
function showGuess(guess) {
guessElement.innerHTML = `
<div>Você disse:</div>
<span class="box">${formarNegativeNumber(guess)}</span>
`;
}
function formarNegativeNumber(number) {
if (number[0] === "-") {
return `-${onlyNumbers(number)}`;
}
if (number.substring(number.lastIndexOf(" ") + 1) === "negativo") {
return `-${onlyNumbers(number)}`;
}
return number;
}
function onlyNumbers(string) {
const numsStr = string.replace(/[^0-9]/g, '');
return parseInt(numsStr);
}
2º Tratamento
if (guessRangeValidation(number) || checkNegativeNumber(guess)) {
guessElement.innerHTML += `<div>Valor inaválido: fale um número entre ${smaller} e ${bigger}.</div>`;
return;
}
function checkNegativeNumber(number) {
const minus = number[0] === "-";
const negative = number.substring(number.lastIndexOf(" ") + 1) === "negativo";
return minus || negative;
}
Qualquer sugestão que queira deixar é válida :D