Description

Ajout des personnages

Dans le jeu, trois types de rongeur (⚠️ synonyme de personnage) peuvent être ajoutés:

  • Les hamsters, qui sont des acteurs.
  • Les chinchillas, qui sont les agents des acteurs.
  • Les rats, qui sont les avocats.

En ajoutant un personnage, vous devez spécifier son nom, son type, et le salaire qu’il gagnera lorsqu’il aura un emploi (éventuellement dans le jeu). Le salaire doit être > 0.

Vous devez donner au rongeur un nom unique qui agira à titre d’identifiant (⚠️ case sensitive). Il faut ignorer tous les ajouts de personnages qui ont le même nom qu’un autre.

Les personnages n’entrent dans le jeu qu’après un POST à /turn dans l’ordre chronologique d’ajout.

Le pointage de réputation est initialement à 75 et le solde du compte en banque à 1000.

Réseaux sociaux

Dès leur entrée dans le jeu, les hamsters et les chinchillas doivent s’ouvrir un compte sur Hamstagram. Leur nom d’usager sur ce réseau social est le même que leur nom. De plus, dès leur inscription, les personnages ont d’emblée 10 000 abonnés.

Règlements

Si un rongeur…

  • Passe sous la barre des 15 pts (< 15) de réputation OU
  • Passe sous la barre des 1000 (< 1000) abonnés OU
  • N’a plus d’argent (bankBalance <= 0)

Alors au prochain tour, le rongeur sera effacé du jeu ainsi que tout ce qui le concerne (ex. compte réseau social).

Exemples

Exemple 1 - Ajout de personnage:

  • POST /characters => Ajout de Bob.
  • GET /characters/Bob => Not found car le tour n’a pas encore été joué.
  • POST /turn
  • GET /characters/Bob => Retourne les informations de Bob.

Exemple 2 - Ajout de personnage avec le même nom qu’un autre:

  • POST /characters => Ajout de Bob.
  • POST /turn
  • POST /characters => Ajout de Bob.
  • POST /turn => L’ajout du 2e rongeur Bob sera ignoré.

Exemple 3 - Ajout de personnage avec le même nom qu’un autre:

  • POST /characters => Ajout de Bob.
  • POST /characters => Ajout de Bob.
  • POST /turn => L’ajout du 2e rongeur Bob sera ignoré.

:memo: Ajouts/modifications à la story 1:

Désormais, à chaque tour:

  • Les personnages sur Hamstagram perdent automatiquement 600 abonnés
  • Tous les personnages perdent 100$
  • Tous les personnages perdent 6 points de réputation.

Ordre des événements lorsqu’un tour est joué

POST à /turn

  1. Personnages déjà dans le jeu - Perdent 100$.
  2. Personnages déjà dans le jeu - Perdent 6 points de réputation.
  3. Personnages déjà dans le jeu - Ceux qui sont sur Hamstagram perdent 600 abonnés.
  4. Éliminer les personnages selon les règlements.
  5. Ajout des personnages en ordre chronologique.
  6. Les nouveaux personnages doivent se créer un compte sur Hamstagram.

API

:memo: Ajouter un rongeur

Requête

POST /characters

{
  "name": ""::string,
  "type": hamster | rat | chinchilla,
  "salary": 1::int salaire gagné par tour si le personnage a un emploi
}

Réponse

HTTP 200 OK

Exceptions

Si le type de rongeur est invalide.

HTTP 400 Bad Request

{
  "error": "INVALID_TYPE"::string,
  "description" : "Invalid type."::string
}

Si le salaire est <= 0.

HTTP 400 Bad Request

{
  "error": "INVALID_SALARY"::string,
  "description" : "Salary must be > 0."::string
}

:memo: Obtenir les informations une fois le personnage dans le jeu

Requête

GET /characters/<name>

Réponse

{
  "name": ""::string,
  "type": hamster | rat | chinchilla,
  "reputationScore": 75::int,
  "bankBalance": 1000::int
}

Exception

Si le nom du rongeur n’existe pas.

HTTP 404 Not Found

{
  "error": "CHARACTER_NOT_FOUND"::string,
  "description" : "Character not found."::string
}

:memo: Réseau social

Requête

GET /hamstagram/<username>

Réponse

{
  "username": ""::string,
  "nbFollowers": 10000::int
}

Exception

Si le id du rongeur n’existe pas.

HTTP 404 Not Found

{
  "error": "CHARACTER_NOT_FOUND"::string,
  "description" : "Character not found."::string
}