Kurikku Nanoko

Un clicker en python

Information sur le projet

Description du projet

Kurikku nanoko vous met dans la peau d'un photographe dans ce clicker révolutionnaire ! Votre but ? Gagner de l'argent pour gagner plus d'argent !

Tirez des caisses de cosmétiques ! Achetez des fans, et partez en guerre dans ce superbe jeu développé par la compagnie JolanCORP.

Réalisé à la base dans un projet de cours, j'ai continué à ajouter des fonctionnalités au projet durant mon temps libre.

Maintenance informatique

Dans cette maintenance j'ai décidé de finir mon clicker. Pour cela j'ai deux points à travailler. Pour plus d'informations et des explications visuelles de la maintenance je vous invite à consulter le README du GitHub.

Premièrement, la partie militaire de mon jeu. Cette partie nécessite l'implémentation de plusieurs fenêtres, d'un ajout d'un système de niveau et de puissance sur tous les personnages du jeu, ainsi qu'un système de combat.

Deuxièmement, la partie des quêtes. J'ai envie que l'utilisateur ressente une progression ou un but lors de son gameplay.

Étant un vieux projet, pour arriver à réaliser cette maintenance je vais devoir modifier beaucoup d'anciens codes et j'aimerais si possible avec le niveau que j'ai gagné en 5ans le rendre plus efficace et performant.



23 Mars 2022 - Création d'un executable

Le jeu peut désormais être lancé sur toutes les machines, même celles qui ne possède pas Python.

23 Mars 2022 - Maintenance de système de sauvegarde

Avec l'ajout du système de quête, nous avons la variable de progression de quête à stocker lors de la sauvegarde du jeu. J'ai donc modifié la fonction de sauvegarde et de chargement de sauvegarde, pour qu'elles accueillent notre nouvelle valeur.

23 Mars 2022 - Correction d'un bug sur la partie militaire

Lors de mes tests j'ai trouvé que lors de la réussite d'une mission militaire, nos manches actuelles n'augmentaient pas de 1 mais de 2. Le bug a été corrigé.

23 Mars 2022 - Création de la fenêtre de quête et ajout des quêtes

Pour la partie quête je vérifis que certaines variables atteignent certaines valeurs, si c'est le cas, alors, le joueur débloquera la prochaine quête. Il y a actuellement 3 quête disponible.

19 Mars 2022 - Maintenance de système de sauvegarde

Avec l'ajout du système de niveau sur les personnages et des manches de combat, nous avons de nouvelles variables à stocker lors de la sauvegarde du jeu. J'ai donc modifié la fonction de sauvegarde et de chargement de sauvegarde, pour qu'elles accueillent nos nouvelles valeurs.

19 Mars 2022 - Modification des derniers personnages

Pour les tests seulement un personnage avait été modifié. Désormais les deux autres personnages possèdent également un système de niveau et une page militaire avec une puissance et un état (équipé ou non).

19 Mars 2022 - Intégration des combats

Avec un système de manches, de récompenses et de difficulté. Lors d'un combat nous avons une valeur que nous pouvons améliorer avec le bouton "upgrade" et cette valeur augmente nos dégâts et notre heal. Si une personne arrive à 0 de puissance, alors le combat se termine.

17 Mars 2022 - Ajout de la puissance totale sur le menu millitaire

Une fonction qui calcule la puissance totale de l'équipe et affiche la somme sur l'écran.

17 Mars 2022 - Création de la fonction d'ajout de niveau

On vérifie si le joueur à l'argent nécéssaire puis augmente la valeur correspondant au niveau de 1.

17 Mars 2022 - Modification des pages de personnages

Nous pouvons désormais voir le niveau d'un personnage sur sa page et payer pour l'augmenter (ce qui augmentera sa puissance millitaire et l'effet de sa capacité).

17 Mars 2022 - Ajout de la fenetre de gestion d'équipe

La fenetre affiche le personnage et ces informations :

  • Son image
  • Débloqué ou non
  • Son niveau
  • Sa valeur de puissance
  • Si le personnage est équipé ou non dans l'équipe

17 Mars 2022 - Ajout de divers arguments sur les personnages

Les personnages possèdent désormais :

  • Un niveau
  • Une puissance
  • Un état (équipé ou non)

17 Mars 2022 - Ajout de la fenêtre millitaire

La fenêtre est accesible via le téléphone. Elle possède deux boutons, un pour attaquer et un pour la gestion de l'équipe.

2021 - Reprise du projet et ajout des cosmétiques, du système de caisse et de l'histoire

Troisième version du projet.

2019 - Changement de l'interface graphique et de la gestion des différentes variables

Deuxième version du projet.

2018 - Création du projet et première version

Première version

Veille technologique

Lors de mon cours intitulé "Informatique et Science du Numérique (ISN)" en classe de première, je devais réaliser un projet. La discipline étant des cours de Python, je n'ai pas eu le choix sur le langage utilisé. J'ai décidé pour cette maintenance de ne pas changer le langage du projet pour plusieurs raisons :

  • Tout d'abord, ce fut mon premier projet en Python. Je ne possédais pas la rigueur et la compréhension du code que j'ai aujourd'hui. Cela se ressent dans le code et l'on retrouve beaucoup de lignes qui pourrait être évitées, ainsi qu'une mauvaise nomenclature des variables et des fonctions. Dans l'ensemble le code est assez brouillon, quand bien même il reste fonctionnel. Malgré mon niveau de l'époque, le code ne comporte aucun bug et fonctionne correctement. Changer de langage m'aurait pris énormément de temps et j'aurais été dans l'obligation de reprendre le code pratiquement à zéro. C'est pour cette raison que j'ai décidé de rester sur du Python.

  • De plus, je ne maitrise pas aussi bien l'interface graphique des autres langages. Pour des raisons de temps, j'ai préféré rester sur le langage que je maitrise le mieux, c'est-à-dire, le Python. Je travaille également sur d'autres projets en Python, et j'ai donc gagné du temps en réalisant des interfaces graphiques réutilisables sur mes autres projets, c'est pour cela que je ne voulais pas changer de bibliothèque graphique (Tkinter), et donc de langage (Tkinter est la bibliothèque graphique utilisée en Python).

  • Pour finir, le jeu est assez basique et comporte principalement des If/Else et des vérifications d'appui sur des boutons. Python comme les autres langages, est largement capable de réaliser ces tâches aisément donc le choix du langage utilisé n'aurait pas posé de problèmes.

Pour ces raisons, je n'ai pas envisagé de changer le langage. Au niveau du choix de mes bibliothèques, je n'ai pas eu le choix à l'époque de choisir "Tkinter" et je n'aurais jamais eu le temps de changer de bibliothèque d'interface graphique. Et pour ce qui est du code, j'aurais pu utiliser la bibliothèque "Pygame" car elle facilite beaucoup de choses, comme les animations ou l'utilisation de musiques, mais mon projet n'en utilisant pas, j'ai préféré ne pas l'utiliser et me concentrer uniquement sur du Python pour améliorer mon niveau dans le langage.