JS/TP03/EX03/js/tri.js
2024-02-27 17:32:57 +01:00

72 lines
1.7 KiB
JavaScript

document.addEventListener('DOMContentLoaded', chargementPage);
var listeChiffreView = [];
var listeChiffre = [];
var listeChiffreTriee = [];
var start;
var end;
var listeEnd;
var score = 0;
function chargementPage(){
listeChiffreView = document.getElementsByClassName("drag");
start = document.getElementById("start");
end = document.getElementById("end");
listeEnd = end.getElementsByClassName("slot");
start.addEventListener("dragstart", drag);
end.addEventListener("dragover", allowDrop);
end.addEventListener("drop", drop);
remplirChiffre(0,100);
trierChiffre();
}
function remplirChiffre(min,max){
for (let i=0; i<listeChiffreView.length; i++){
listeChiffre[i] = getRandomInt(min, max);
listeChiffreView[i].textContent = listeChiffre[i];
}
}
function trierChiffre(){
listeChiffreTriee = listeChiffre.slice().sort((a,b) => (a-b));
}
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min
}
function findIndex(tableau, element){
for (var i = 0; i < tableau.length; i++) {
if (tableau[i] === element) {
return i;
}
}
return null;
}
function allowDrop(event) {
event.preventDefault();
}
function drag(event) {
event.dataTransfer.setData("objet", event.target.id);
}
function drop(event) {
var numSlot = findIndex(listeEnd, event.target);
if (numSlot !== null){
event.preventDefault();
var idObjet = event.dataTransfer.getData("objet");
var objet = document.getElementById(idObjet);
event.target.appendChild(objet);
if (objet.textContent !== ""+listeChiffreTriee[numSlot]){
score --;
}
if (score < 0){
end.classList.replace("good", "normal")
if (score < -3){
end.classList.replace("normal", "wrong")
}
}
}
}