Questo repository contiene l'implementazione del progetto "Quizzone", il test settimanale del corso Epicode. L'obiettivo è replicare la pagina benchmark che la piattaforma di Epicode utilizzata nei nostri test teorici settimanali, creando un sito web completamente funzionale con quattro pagine distinte.
Il "Quizzone" è il nostro progetto di ricreare la pagina di benchmark, dedicata all'informatica, della piattaforma EPICODE include:
Per configurare questo progetto localmente, segui questi passaggi:
Clona il repository:
git clone https://github.com/antoniocostantin/Building-Week-1.git
Naviga nella directory del progetto:
cd quizzone
Utilizzare il comando npm i
da terminale per implementare i pacchetti del progetto;
Apri index.html
nel tuo browser preferito per iniziare.
index.html
per visualizzare la pagina di benvenuto e le regole del quiz.proced
per accedere alla pagina del quiz.rate us
lascia una valutazione del corso nella pagina di feedback.Print Certificate
per stampare il tuo certificatoPer l'ottimizzazione della selezione casuale delle domande si è scelto un algoritmo particolare:
Viene utilizzato un array che contiene tutti gli indici disponibili indexAvailable
che in prima battuta conterrà tutti gli indici dell'array delle domande che verrà fornito, nelle successive ci sarà un numero sempre minore di indici a cui l'algoritmo potrà attingere.
Per la selezione casuale della domanda viene utilizzta la funzione ShowNewQuestion
la quale sceglierà un l'indice casuale della domanda da visualizzare tramite getRandomIndex
.
getRandomIndex
genera un valore causale da 0 all'ultimo indice del array fornito e lo utilizza come indice per estrarne il dato (in questo caso uno degli indici disponibili) e successivamente per rimuoverlo dall'array che lo conteneva.
Questo algoritmo apporta una eccellente ottimizzazione in caso di pochi indici rimasti in quanto non si cicla la generazione del numero casuale ma bensì si fa la scelta casuale dei soli indici disponibili.
function ShowNewQuestion() {
const randomIndex = getRandomIndex(indexAvailable);
const randomQuestion = questions[randomIndex];
...
}
function getRandomIndex(arr) {
let randomNum = RandomNumberGenerator(0, arr.length - 1);
let randomIndex = arr[randomNum];
arr.splice(randomNum, 1);
return randomIndex
}
I contributi sono benvenuti! Sentiti libero di fare un fork del progetto, aprire una issue o creare una pull request.
Questo progetto è distribuito sotto la licenza MIT. Vedi il file LICENSE per ulteriori dettagli.