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é.
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
- Personnages déjà dans le jeu - Perdent 100$.
- Personnages déjà dans le jeu - Perdent 6 points de réputation.
- Personnages déjà dans le jeu - Ceux qui sont sur Hamstagram perdent 600 abonnés.
- Éliminer les personnages selon les règlements.
- Ajout des personnages en ordre chronologique.
- Les nouveaux personnages doivent se créer un compte sur Hamstagram.
API
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
}
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
}
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
}