Réponse :
https://pastebin.com/GExNPhMR
Explications :
Je ne pourrais pas t'expliquer tout le code car ca serai très long, mais je l'ai fait le plus simple possible. Je n'ai d'ailleurs pas pu faire des tests poussé pour traquer tous les bugs possibles, car je suis crevé et toi aussi vu l'heure, mais libre a toi de le tester et de le corriger si besoin