Jaipur

Règles

Les règles du jeu sont disponibles ici ou ici en vidéo.

⚠️ On considèrera que les parties se jouent en une seule manche et non en deux manches gagnantes comme dans le jeu de base.

Matériel

Marchandises (goods)Cartes (cards)Jetons (tokens)
Diamants (diamonds)67,7,5,5,5
Or (gold)66,6,5,5,5
Argent (silver)65,5,5,5,5
Tissus (cloth)85,3,3,2,2,1,1
Epices (spice)85,3,3,2,2,1,1
Cuir (leather)104,3,2,1,1,1,1,1,1
Chameau (camel)11/
BonusCartesJetons
3 Cartes/3,3,2,2,2,1,1
4 Cartes/6,6,5,5,4,4
5 Cartes/10,10,9,8,8

Frontend

Un frontend est disponible ici pour tester votre application. N’oubliez pas de changer le port de l’application via le bouton Paramètres si votre application n’écoute pas sur le port 3000.

User Stories

[TP4] En tant que joueur, je peux créer une partie [api]

  • Création de la route POST /games.
  • Attention au type de retour (uniquement l’identifiant et le nom de la partie).
  • Attention à bien retourner le code de status 400 si aucune partie n’est trouvée.

[1] En tant que joueur, je peux lister les parties en cours [api]

  • Création de la route GET /games.
  • Attention au type de retour (uniquement l’identifiant et le nom d’une partie).

[1] En tant que joueur, je peux récupérer les informations d’une partie [api]

  • Création de la route GET /games/:gameId/players/:playerId.
  • Attention aux types des paramètres gameId et playerId.
  • Attention au type de retour (ne pas retourner les secrets et retourner la main du joueur).
  • Attention à bien retourner le code de status 404 si aucune partie n’est trouvée.

[1] En tant que joueur, je peux supprimer une partie [api]

  • Création de la route DELETE /games/:gameId.
  • Attention au type du paramètre gameId.
  • Attention à bien retourner le code de status 404 si aucune partie n’est trouvée.

[2] En tant que joueur, je peux prendre 1 seule marchandise [api] [règles]

  • Création de la route POST /games/:gameId/players/:playerId/take-good.
  • Attention aux types des paramètres gameId et playerId.
  • Attention à bien retourner le code de status 404 si aucune partie n’est trouvée.
  • Attention à bien retourner le code de status 400 si les paramètres ne sont pas valides.
  • Permettre l’action uniquement si c’est le tour du joueur.
  • À la fin de son tour, un joueur ne peut jamais avoir plus de 7 cartes en main.

[2] En tant que joueur, je peux échanger des marchandises [api] [règles]

  • Création de la route POST /games/:gameId/players/:playerId/exchange.
  • Attention aux types des paramètres gameId et playerId.
  • Attention à bien retourner le code de status 404 si aucune partie n’est trouvée.
  • Attention à bien retourner le code de status 400 si les paramètres ne sont pas valides.
  • Permettre l’action uniquement si c’est le tour du joueur.
  • On ne peut jamais troquer 1 seule carte de sa main contre 1 carte du marché. Un troc, c’est au minimum 2 cartes contre 2.

[2] En tant que joueur, je peux prendre les chameaux [api] [règles]

  • Création de la route POST /games/:gameId/players/:playerId/take-camels.
  • Attention aux types des paramètres gameId et playerId.
  • Attention à bien retourner le code de status 404 si aucune partie n’est trouvée.
  • Attention à bien retourner le code de status 400 si les paramètres ne sont pas valides.
  • Permettre l’action uniquement si c’est le tour du joueur.

[1] En tant que joueur, je peux vendre des cartes [api] [règles]

  • Création de la route POST /games/:gameId/players/:playerId/sell.
  • Attention aux types des paramètres gameId et playerId.
  • Attention à bien retourner le code de status 404 si aucune partie n’est trouvée.
  • Attention à bien retourner le code de status 400 si les paramètres ne sont pas valides.
  • Permettre l’action uniquement si la transaction est valide (voir “Restriction lors d’une vente”)
  • Permettre l’action uniquement si c’est le tour du joueur.

[1] En tant que joueur, je peux terminer une partie [règles]

  • Une fois qu’une des conditions d’arrêt est remplie (voir “Fin d’une manche”) terminer la partie et décompter les points (voir “Décompte”)
  • Empêcher les joueurs de pouvoir effectuer une action sur une partie terminée.
  • Lors d’un décompte, si les deux joueurs possèdent le même nombre de chameaux, personne ne gagne le jeton chameau.

© Julien Usson - Année 2022/2023 - ZZ2 F5