1
resposta

Projeto Completo - Lingua Inglesa

Boa tarde! Trazendo a minha solução para este desafio.
Adoraria ouvir sugestões para melhorar o código e me ajudar na organização dele.
PS: Moro em Londres, onde pretendo adentrar no mercado de trabalho, por isso estou adaptando os desafios para a lingua inglesa.

let drawnedNumber = [];
let value;

speech('Welcome! This is the random number picker project');

function pickNumber() {
    selectIndex('amount');
    selectIndex('fromNumber');
    selectIndex('toNumber');

    if (selectIndex('fromNumber') > selectIndex('toNumber')){
        resetIndex('amount');
        resetIndex('fromNumber');
        resetIndex('toNumber');
        alert('Please check if all spaces have been filled properly');
    } else {
        if(selectIndex('amount') >= (selectIndex('fromNumber') + selectIndex('toNumber'))){
            resetIndex('amount');
            resetIndex('fromNumber');
            resetIndex('toNumber');
            alert('Please check if all spaces have been filled properly');
    } else {
                for (let i = 0; i < selectIndex('amount'); i++) {
        value = pickRandomNumber('fromNumber' , 'toNumber'); {
        while (drawnedNumber.includes(value)) {
        value = pickRandomNumber('fromNumber' , 'toNumber');
    }
    drawnedNumber.push(value);
}
}
showTextOnScreen('displayResult', `<label class="texto__paragrafo">The drawn number ${singularOrPlural()} : ${drawnedNumber}.</label>`);
alterButtonStatus();
}
}
}

function reset(){
    resetIndex('amount');
    resetIndex('fromNumber');
    resetIndex('toNumber');

    drawnedNumber.splice(0 , drawnedNumber.length);
    showTextOnScreen('displayResult', `<label class="texto__paragrafo">The drawn number is: none until now</label>`);
    alterButtonStatus();
}

function selectIndex (tag) {
    let typeInput = parseInt(document.getElementById(tag).value);
    return typeInput;
}
function resetIndex (tag , text) {
    document.getElementById(tag).value = text;
}

function showTextOnScreen(label , text){
    let blank = document.getElementById(label);
    blank.innerHTML = text;
}
function speech(text){
    if ("speechSynthesis" in window) {
        let utterance = new SpeechSynthesisUtterance(text);
        utterance.lang = 'en-GB';
        utterance.rate = 0.8;
        window.speechSynthesis.speak(utterance); 
    } else {
        console.log('Web Speech API not supported in this browser.');
    }
}

function pickRandomNumber(min, max){
    minValue = Math.ceil(selectIndex(min));
    maxValue = Math.floor(selectIndex(max));
    let result = Math.floor(Math.random() * (maxValue - minValue + 1)) + minValue;
    return result;
}
function singularOrPlural(){
    let are = drawnedNumber.length <= 1 ? 'is' : 'are';
    return are
}
function alterButtonStatus(){
    let button = document.getElementById('btn-reset');
    if (button.classList.contains('container__botao-desabilitado')) {
        button.classList.remove('container__botao-desabilitado');
        button.classList.add('container__botao');
    } else {
        button.classList.remove('container__botao');
        button.classList.add('container__botao-desabilitado');
    }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Kaue! Como vai?

Ficou muito interessante ver como você adaptou o projeto para o inglês e aplicou recursos como a função speech() para interação com voz. Isso mostra cuidado em tornar a aplicação mais dinâmica e acessível.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!