Le projet consiste à créer un logiciel permettant de créer son personnage de façon interactive pour mon JDR. L’idée naît de l’envie de simplifier la création de personnage et de la rendre plus visuelle.
Toutefois, lorsque je me lance dans ce projet, j’ai commencé à coder il y a 1 mois et demi (à l’entrée en prépa) et je n’ai aucune idée de la complexité de la chose. Je choisis python par défaut puisque c’est le seul langage que je “connais” et je mets bien ici des guillemets puisque je ne connaissais pas le concept de classe et n’ait ainsi utilisé qu’une unique classe Application en reprennant un template trouvé sur internet. Le peu de temps libre que j’avais à ma disposition, je voulais le passer à coder activement le projet et pas finir une journée de cours en faisant de nouveau un autre cours mais sur le python cette fois-ci.
Si je comprends tout à fait mon état d’esprit à ce moment là, il faut avouer que c’est plutôt une énorme erreur puisque je me suis lancé à corps perdu dans le code d’une application graphique en mélangeant tout les concepts dans un unique fichier illisible et stockant mes données dans d’énormes dictionnaires sauvegardés comme des variables globales (j’étais jeune et inconscient).
Le fichier final fait plus de 2000 lignes et le tout m’aura pris une semaine de vacances complète à ne faire que ça. J’ai pu en sortir avec une application absolument impossible à maintenir mais qui faisait ce que je souhaitais. Chacun pouvait créer son personnage, lui associer une race (équivalent d’espèce dans un JDR), une façon de se battre, des compétences, des caractéristiques et des facultés particulières.
C’est donc en soit une réussite.
Ce projet m’aura beaucoup appris puisque j’y ai fait toutes les erreurs du débutant. Ne pas lire les logs, ne pas chercher sur internet et bloquer plusieurs heures car on veut réinventer la roue, utiliser Tkinter pour faire un projet pour lequel il n’est pas adapté, ne pas s’intéresser à apprendre des techniques (typiquement les classes) et produire un projet impossible à maintenir.
Toutes ces erreurs faites, ne l’ont pas été par la suite et dans la version 2.0 de ce projet, refait entièrement en Java, ces erreurs ont pu être évitées.