Aller au contenu

Artillery⚓︎

Artillery est un jeu vidéo de combat au tour par tour dont le but est pour chaque joueur de détruire son adversaire en planifiant une trajectoire correcte pour un projectile. Ces jeux sont parmi les premiers développés, leur thème étant la prolongation des utilisations alors classiques des ordinateurs, employés pour le calcul de trajectoires de fusées et le calcul balistique. 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 artillery.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:

![image1](./data/artillery.png)

Objectif⚓︎

  1. 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:

  2. AMELIORATIONS : Proposer et mettre en oeuvre des améliorations de ce jeu. Par exemple:

    • Un menu au démarrage
    • Choix du nom des joueurs
    • Un menu à la fin du jeu, indication du vainqueur
    • Ajouter du vent aléatoire à chaque tour (avec indication visuelle)
    • Couleur pour la trace des impacts (en fonction des joueurs)
    • ...

    Remarques: dans le cadre des ces améliorations, vous pouvez modifier le code légèrement.

Méthode⚓︎

  1. 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 330 contient le lancement des tours des joueurs et l'échange des rôles
    • La boucle while de la ligne 309 contient toutes les instructions jouées tous les 30è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 joueur1 peuvent contenir plusiers valeurs. On appelle cela des tuples (documentation : https://docs.python.org/fr/3/tutorial/datastructures.html#tuples-and-sequences).
  2. 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

  3. Compléter fonction par fonction pour qu'elles réalisent ce qui est indiqué dans leur docstring.