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.

consignes.md 2.2 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # Implémentation du jeu Marvel
  2. ## Introduction
  3. De nombreux personnages sur developper.marvel.com n'ont pas de description. En revanche, ils ont tous une petite image (ou `thumbnail` en Anglais).
  4. Le jeu consistera donc à:
  5. * choisir un personnage au hasard
  6. * montrer l'URL de l'image
  7. * demander au joueur le nom du personnage correspondant
  8. * le joueur aura droit à 3 essais maximum
  9. ## Étape 1: préparation
  10. * Créez un compte sur `developper.marvel.com` et une clé d'API
  11. * Créez le fichier api-keys.txt avec le bon format
  12. * Récupérez le fichier `marvel.py` sur [git.e2li.org]( https://git.e2li.org/index.cgi?p=dmerejkowsky/cours-python.git;a=blob_plain;f=sources/marvel/marvel.py;hb=HEAD)
  13. * Vérfiez que le code fonctionne: `python3 marvel.py character-description Hulk`
  14. ## Étape 2: Rajouter une nouvelle requête
  15. * Rajoutez une nouvelle classe `CharacterThumbnail`, dérivée de `Query`
  16. * Vérifiez que l'url de l'image fonctionne, en l'ouvrant dans un navigateur
  17. ## Étape 3: Le deux clients
  18. * Renommez la classe `Client` en `MarvelClient`.
  19. * Rajoutez une clase abstraite `BaseClient`. Elle devra contenir les méthodes `get_all_characters()` et `get_character_thumbnail()`
  20. * Créez une classe `FakeClient` qui dérive de `BaseClient`. Astuce:
  21. ```python
  22. class FakeClient(BaseClient):
  23. characters = {
  24. "Hulk": "http://marvel/hulk.jpg",
  25. "Captain America": "https://marvel.com/captain.jpg",
  26. }
  27. def get_all_characters():
  28. ...
  29. ```
  30. * Rajoutez la méthode `get_all_characters()` dans `BaseClient` et implémentez-là dans `FakeClient` et `MarvelClient`.
  31. * 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()`.
  32. # Étape 4: Le jeu
  33. Vous êtes maintenant prêts à implémenter le jeu lui-même.
  34. Astuces:
  35. * La classe `Game` prendra un `client` en paramètre de `__init__()`.
  36. * Dans la fonction `main()`, utilisez la présence ou nom de la chaîne de
  37. charactères "--test" dans `sys.argv` pour choisir le client à utiliser
  38. (FakeClient ou MarvelClient)
  39. # Rendu
  40. Envoyez votre solutions ou questions par e-mail à `d.merej@gmail.com`. Bonne chance!