Nous voilà dans un monde fictif où rongeurs (hamsters[acteur], rats[avocat] et chinchillas[agents]) gravitent dans le monde du cinéma).
Ceci est un jeu du style RPG(Role Playing Game) où les rongeurs devront soigner leur réputation, faire des alliances afin de mousser leur carrière et rester dans le jeu.
Vous pouvez démarrer le serveur (GameServer
).
Le main()
ne demande pas d'argument.
Vous pouvez rouler le serveur via maven:
mvn clean install
mvn exec:java -pl game
-
- le jeu doit permettre l’accumulation d’événements. Pour l’instant, il n’existe aucun événement, mais ils vont apparaître prochainement.
- Lorsque votre application recevra une requête /turn, vous devez activer le tour en exécutant tous les événements accumulés dans l’ordre reçu.
- Il doit être possible de reset le jeu, ce qui veut dire que tout ce qui aura été créé/ajouté devra être effacé.
-
- Dans le jeu, trois types de rongeur peuvent etre ajoutés : hamster, rat et chinchilla.
- En ajoutant un personnage, vous devez spécifier son nom (le nom ne peut etre suporté que par un seul rongeur), son type, et le salaire qu’il gagnera (salaire > 0).
- 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.
- 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.
-
un rongeur meurt si :
- réputation < 15pts OU
- followers < 1000 OU
- bankBalance <= 0
-
-
activer un tour
POST /turn
Réponse : HTTP 200 Ok{ "turnNumber": 1::int }
-
reset la partie
POST /reset
Réponse : HTTP 200 Ok -
ajouter un personnage
POST /characters
{ "name": "Bob", "type": "hamster", "salary": 100 }
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
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
GET /hamstagram/<userid>
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 }
-
-
- 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é.