You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
 

2.1 KiB

Implémentation du jeu Marvel

Introduction

De nombreux personnages sur developper.marvel.com n’ont pas de description. En revanche, ils ont tous une petite image (ou thumbnail en Anglais).

Le jeu consistera donc à:

  • choisir un personnage au hasard
  • montrer l’URL de l’image
  • demander au joueur le nom du personnage correspondant
  • le joueur aura droit à 3 essais maximum

Étape 1: préparation

  • Créez un compte sur developper.marvel.com et une clé d’API
  • Créez le fichier api-keys.txt avec le bon format
  • Récupérez le fichier marvel.py sur git.e2li.org
  • Vérfiez que le code fonctionne: python3 marvel.py character-description Hulk

Étape 2: Rajouter une nouvelle requête

  • Rajoutez une nouvelle classe CharacterThumbnail, dérivée de Query
  • Vérifiez que l’url de l’image fonctionne, en l’ouvrant dans un navigateur

Étape 3: Le deux clients

  • Renommez la classe Client en MarvelClient.
  • Rajoutez une clase abstraite BaseClient. Elle devra contenir les méthodes get_all_characters() et get_character_thumbnail()
  • Créez une classe FakeClient qui dérive de BaseClient. Astuce:
class FakeClient(BaseClient):
    characters = {
        "Hulk": "http://marvel/hulk.jpg",
        "Captain America": "https://marvel.com/captain.jpg",
    }

    def get_all_characters():
    	...
  • Rajoutez la méthode get_all_characters() dans BaseClient et implémentez-là dans FakeClient et MarvelClient.
  • Note: Pour des raisons pratiques, on va limiter le nombre de personnages possibles (sinon le jeu serait bien trop difficile!). Utilisez le fichier famous.txt dans MarvelClient.get_all_characters().

Étape 4: Le jeu

Vous êtes maintenant prêts à implémenter le jeu lui-même.

Astuces:

  • La classe Game prendra un client en paramètre de __init__().
  • Dans la fonction main(), utilisez la présence ou nom de la chaîne de charactères “--test” dans sys.argv pour choisir le client à utiliser (FakeClient ou MarvelClient)