Description

Les dinosaures ne sont malheureusement pas immortels! En effet, ceux-ci quittent pour le paradis des dinosaures lorsqu’ils ont 0 point de vie.

Les bébés naissent avec 100 points de vie. Les nouveaux dinosaures arrivent dans le troupeau avec 80 points de vie. À la fin de chaque tour, ils perdent 5 points de vie (voir exemple plus bas).

De plus, les gagnants des combats de sumo-dino et ceux qui ont eu un combat “tie” perdent 50 points de vie à la fin du tour (ceci exclut les 5 points de vie que tous les dinos perdent à chaque jour).

Conditions de succès

# Description
1 Les points de vie se situent entre 0 et 100 inclusivement.
2 Les dinosaures perdent 5 points de vie à la fin de chaque tour.
3 Les dinosaures ajoutés ont 80 points de vie dès leur arrivée.
4 Les bébés dinosaures naissent avec 100 points de vie.
5 Les dinosaures qui gagnent un combat ou qui ont un combat “tie” perdent 50 points de vie à la fin du tour.
6 Les dinosaures avec 0 point de vie meurent à la fin du tour.

Déroulement d’un tour

Actions possibles
Ajouter des ressources.
Ajouter un dinosaure.
Reproduction de dinosaures, ajout d’un bébé dinosaure.
Combat de sumo-dinosaures.

:warning: Note: Ces actions sont accumulées et exécutées, en ordre d’arrivée, lors du déroulement du tour.

Conséquences d’un tour (en ordre)
1. Ajouter 10 kilolitres d’eau, 250 salades et 100 hamburgers.
2. Retirer du garde-manger les ressources périmées.
3. Retirer du garde-manger les ressources consommées.
4. Retirer du troupeau les dinosaures qui ont perdu un combat.
5. Retirer du troupeau les dinosaures qui ont jeûné.
:heavy_exclamation_mark: 6. Les points de vie diminuent.
:heavy_exclamation_mark: 7. Les dinosaures avec 0 point de vie meurent.
8. Retirer les bébé dinosaures dont les 2 parents ne sont plus dans le troupeau.

API

:heavy_exclamation_mark: Modifications des requêtes existantes:

:white_check_mark: Modification du payload pour l’affichage d’un dinosaure vivant.

Requête

GET /dinosaurs/{NAME}

Réponses

:arrow_right: HTTP 200 Ok

{
  "name": ""::string,
  "weight": 0::int,
  "gender": f || m::string,
  "species": ""::string,
  "healthPoints": 0::int
}

:white_check_mark: Modification du payload pour l’affichage de tous les dinosaures vivants.

Requête

GET /dinosaurs

Réponse

:arrow_right: HTTP 200 Ok

[
  {
    "name":""::string,
    "weight":0::int,
    "gender":f || m::string,
    "species":""::string,
    "healthPoints": 0::int
  },
  ...
  {
    "name": ""::string,
    "weight": 0::int,
    "gender": "f" || "m"::string,
    "species": ""::string,
    "healthPoints": 0::int
  }
]

:bulb: Exemple:

  1. POST /dinosaurs => Ajout d’un dinosaure
    {
      "name": "John Doe",
      "weight": 100,
      "gender": "m",
      "species": "Brachiosaurus"
    }
    
  2. POST /turn - Un tour passe, les points de vie diminuent de 5 points

  3. GET /dinosaurs/John Doe
    {
      "name": "John Doe",
      "weight": 100,
      "gender": "m",
      "species": "Brachiosaurus",
      "age": 20,
      "healthPoints": 75
    }