Jeu pygame fonction ex
Résolu/Fermé
yadg57
-
Modifié le 10 nov. 2021 à 16:00
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 10 nov. 2021 à 16:30
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 10 nov. 2021 à 16:30
A voir également:
- Jeu pygame fonction ex
- Fonction si et - Guide
- 94 jeu - Télécharger - Puzzle & Réflexion
- Money manager ex - Télécharger - Bourse & Finance
- Comment savoir si mon ex regarde mon facebook - Guide
- Jeu zuma - Télécharger - Jeux vidéo
1 réponse
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
10 nov. 2021 à 16:30
10 nov. 2021 à 16:30
Bonjour,
La fonction
La fonction
Bon après je trouve le programme parfois peu lisible, pas toujours bien architecturé et donc pas forcément idéal pour débuter ou apprendre à bien programmer, notamment car il comporte plusieurs fautes d'orthographe ou vis-à-vis des conventions python PEP8.
Un exemple plus simple est proposé ici et c'est là qu'on voit que pygame est assez limité pour faire des boutons. Si tu prends des modules comme PyQT ou GTK, tu peux créer de "vrais" boutons et lancer du code en fonction des événements qu'ils lèvent (e.g. quand on clique dessus). Cela te permettrait d'avoir un code bien plus lisible, modulaire, et qui distingue mieux la partie interface graphique et le moteur du jeu (voir architecture MVC).
Bonne chance
La fonction
Choisirtire aléatoirement une configuration de départ (certaines cases seront noires, d'autre blanches). Mais d'après l'auteur, certaines configurations ne peuvent pas être résolues, donc plutôt que de proposer un problème insoluble au joueur, il contrôle si le puzzle peut être résolu et tire une nouvelle configuration si ça n'est pas le cas. Les détails de cette vérification sont réalisés dans la méthode
verification.
La fonction
executealors je vais expliquer en gros. Si tu veux des explications détaillées, n'hésite pas à regarder dans la documentation de
numpy/
pickle/
pygame.
- l181-193 : on initialise les différentes variables du jeu ;
- l194 : on lance la boucle qui maintient le programme ouvert (jusqu'à ce qu'il soit quitté) ;
- l198 : on réagit sur un événement pygame (e.g. le joueur a cliqué ou utilisé son clavier) ;
- l199-205 : le joueur veut quitter le jeu (il a cliqué sur la croix, appuyé sur echap, etc), on bascule la variable
running
àFalse
ce qui va sortir de la boucle amorcée l194. - l205-211 : le joueur a relâché le clic de la souris, on relève la position du curseur et on déduit la ligne et la colonne de la casée sélectionnée ;
- l212 : en gros si j'ai bien compris, il y a deux "affichages" (en fonction des valeurs de
setup
etsolving
), celui qui correspond à la configuraiton et celui qui sert à jouer ; - l212 à 237, on gère la partie configuration (les commentaires parlent d'eux mêmes). Le code est assez compliqué, mais en gros, en fonction de la position de la souris, on sait sur quoi l'utilisateur à cliqué et on réagit en conséquence (ça aurait été plus simple et plus lisibles en utilisant des vrais boutons) ;
- Bon là je passe un peu car c'est assez peu lisible et intéressant :-D
- l290: on sauve les résultats dans un fichier pickle ;
- l295-300: on vérifie si le problème est résolu ;
- l301-304: on met à jour le chronomètre ;
- l305-307: on affiche quelques statistiques ;
- l315: on est sorti de la boucle, on quitte.
Bon après je trouve le programme parfois peu lisible, pas toujours bien architecturé et donc pas forcément idéal pour débuter ou apprendre à bien programmer, notamment car il comporte plusieurs fautes d'orthographe ou vis-à-vis des conventions python PEP8.
Un exemple plus simple est proposé ici et c'est là qu'on voit que pygame est assez limité pour faire des boutons. Si tu prends des modules comme PyQT ou GTK, tu peux créer de "vrais" boutons et lancer du code en fonction des événements qu'ils lèvent (e.g. quand on clique dessus). Cela te permettrait d'avoir un code bien plus lisible, modulaire, et qui distingue mieux la partie interface graphique et le moteur du jeu (voir architecture MVC).
Bonne chance