Pour faire part de mon avis, voici se que je peux t'en dire.
Je trouve que le code n'est pas très bien rangé, je le trouve même trop condensé ce qui le rend assez dur à lire.
Je vois aussi que tu utilise beaucoup la boucle while alors que tu pourrais utiliser la boucle for qui serait plus adapté pour ton cas.
Sinon, le reste, impeccable !