Race⚓︎
Race est un jeu de voiture 2D. Le but du jeu est d'aller le plus loin possible sans sortir de la route.
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 race.py
donné avec le projet.
On rappelle que la bibliothèque davistk est téléchargeable sur classroom. Elle documentée à l'adresse suivante https://davistk.brunache.ovh
A la première exécution, cela affichera la fenêtre suivante:
Le lignes blanches représentent la route. Le triangle rouge représente la voiture.
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 ci-dessous :
-
BASIQUE : Réaliser les fonctionnalités suivantes:
- Indiquer en haut à droite de l'écran la vitesse.
- Empécher la vitesse d'être inférieure à 0 et supérieur à 10.
- Afficher un score (distance parcourue) en haut à gauche.
-
AMELIORATIONS : Proposer et mettre en oeuvre des améliorations de ce jeu. Par exemple:
- Un menu au démarrage.
- Un menu à la fin du jeu.
- Réaliser un mode ou la vitesse n'est pas gérée par l'utilisateur mais ou elle augmente doucement avec la distance parcourue.
- Une perte de points de vie plutôt que la sortie du jeu lorsque l'on sort de la route.
- Remplacer la flèche par une image de voiture.
- Améliorer les graphismes.
- ...
Méthode⚓︎
-
Commencer par bien lire le code existant et le comprendre. En particulier:
- La boucle while de la ligne 205 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 les fonctions sont appelées.
- Les variables globales des lignes 9 à 11 peuvent être utilisées dans les fonctions.
- Les variables comme
voiture
peuvent contenir des couples de flottants. 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'elle réalise ce qui est indiqué dans sa docstring.
- Ajouter des fonctions et les appeler dans la boucle de jeu pour mettre en place des améliorations.