Alors, ce 26 Janvier 2022 je vais enfin proposer ce module amélioré dans le blog indiqué dans l'article; ce que je n'avais pas fait primitivement. Une note: ce module, cette classe d'objet score, est dans le fichier proposé ici en UTF-8 et donc ne fonctionne pas sous Visual Studio Code tant qu'on ne l'a pas transformé en texte ASCII...
À voir aussi en bas d'article un nouveau tutoriel vidéo sur l'usage du module (d'ici une heure: 07:40 AM).
Qui n'a pas déjà été triste après avoir joué à un jeu, qu'il soit programmé («codé» on dit de nos jours) en C/C++ ou en Python tant module Pygame (le plus courant) que Tkinter (tkinter depuis Python 3), de ne pas avoir la possibilité d'enregistrer son score et son pseudo? À moi, je vous l'avoue, ça m'est arrivé plus d'une fois; au point de me motiver à créer des lignes de code pour gérer un fichier contenant les dix meilleurs scores et le pseudo correspondant des joueurs.
D'abord présenté sur le blog de www.developpez.net en version très simple, voici ici les lignes de code pouvant soit être utilisées comme module, soit, plus sûr, comme classe d'objet score à ajouter (copier-coller ou bien renommer le fichier et inclure la classe) au début de chaque jeu avant toute autres classes et en tout cas avant le programme principal du jeu lui-même.
Bref voici le module "scoremanage":
Évidemment ça s'adresse à ceux qui, comme moi, dès leur jeunesse ont rêvé de programmer eux-mêmes leur propre jeu. Il est clair que lorsqu'on programme un jeu, la base est d'avoir une sauvegarde et un tri des scores obtenus par des joueurs. Vous pourrez me répondre que c'est plus satisfaisant si on programme la classe de gestion de score "soi-même".
Mais, justement, la logique de l'Open Source n'est pas «do it yourself» mais bien «do it with together», «faites le ensemble»; ce qui compte est de comprendre les lignes de codes et, pourquoi pas?, de savoir améliorer la solution proposée en imaginant d'autres usages ou besoins.
Sinon autant dire que pour un jeu utilisant le module pygame, «autant reprogrammer soi-même l'ensemble de ce module car cela apporterait plus de satisfaction personnelle»...
Bref:
Plusieurs manières de l'utiliser, j'explique ici la plus flexible pour un jeu relativement complexe (2 joueurs):
#D'abord soit l'import du module soit sa copie
from scoremanage import *
#Ensuite définir l'objet
gs=Scoremanage("Zorro_sco")
#où gs n'est qu'un exemple et "Zorro_sco" le nom du fichier
#qui contient la liste des scores pour un jeu.
#Ensuite des variables contiennent les deux scores et noms des joueurs
pseudo1,score1="",1250 #ici le joueur n'a pas entré son pseudo
pseudo2,score2="optimum",3500
#Maintenant on écrit, un par un, les scores
gs.score,gs.gamer=score1,pseudo1
gs.addsco()
gs.score,gs.gamer=score2,pseudo2
gs.addsco()
#La lecture des scores renvoie une liste
scores=gs.lirsco()
#On peut réinitialiser les scores par:
gs.inisco()
#C'est tout!
Et comme exemple concret d'utilisation un petit jeu, un classique des années fin 1960 - mi 1970 (60's - 70's):
commenter cet article …