Frogger⚓︎
Frogger est un jeu d'arcade dont le but est de diriger des grenouilles jusqu'à leurs maisons. Pour cela, le joueur doit d'abord traverser une route en évitant des voitures qui roulent à différentes vitesses puis une rivière aux courants changeants en passant d'objets en objets. La grenouille meurt si elle touche une voiture ou si elle tombe dans la rivière. Elle peut attraper des mouches bonus au passage2. Source Wikipedia
L'objectif de ce projet est de modifier un code existant utilisant la bibliothèque davistk pour rendre le jeu fonctionnel.
Exécuter le code initial⚓︎
Pour éxécuter le code initial donné avec le projet, vous devez avoir dans le même répertoire le fichier davistk.py
et le fichier frogger.py
donné avec le projet.
La bibliothèque davistk est documentée à l'adresse suivante https://davistk.brunache.ovh
A la première exécution, cela affichera la fenêtre suivante:
Objectif⚓︎
-
BASIQUE : Compléter toutes les fonctions dont la docstring ne commence pas par "Ne pas modifier" pour que le jeu fonctionne comme sur la vidéo visionnable à l'adresse suivante:
-
AMELIORATIONS : Proposer et mettre en oeuvre des améliorations de ce jeu. Par exemple:
- Un menu au démarrage
- Des voies dans un sens différent
- L'affichage d'un score (nombre de traversées réussies)
- Accélération des voitures au cours du temps
- ...
Remarques: dans le cadre des ces améliorations, vous pouvez modifier le code légèrement.
Méthode⚓︎
-
Commencer par bien lire le code existant et le comprendre (même ce qui n'est pas à modifier). En particulier:
- La boucle while de la ligne 268 contient toutes les instructions jouées tous les 20ème de seconde. C'est ici qu'est la gestion du jeu. C'est à cet endroit que la majotité des fonctions sont appelées.
- Les variables comme
frog
ouvoitures
peuvent contenir plusiers valeurs. On appelle cela des tuples (documentation : https://docs.python.org/fr/3/tutorial/datastructures.html#tuples-and-sequences).
-
Comprendre comment fonctionne davistk en lisant la documentation. On rappellera en particulier que l'origine du repère est en haut à gauche, que l'axe des abscisses est orienté vers la droite et que l'axe des ordonnées est orienté vers le bas
- Compléter fonction par fonction pour qu'elles réalisent ce qui est indiqué dans leur docstring.