- But : aligner 4 de ses tuiles sur le plateau.
- Chaque joueur a une pioche de 18 tuiles allant de 1 à 9.
- Chaque joueur a 2 tuiles en main.
- Le jeu se joue en tour par tour.
- Au début de son tour, le joueur a deux options : juxtaposer une tuile sur une tuile existante (en haut/bas, à droite/gauche, en diagonale) ou alors superposer sa tuile sur une tuile existante (à condition que sa tuile soit strictement supérieure).
- Toutes les tuiles doivent être placées dans une grille de 6x6.
- Dès que le joueur aligne 4 de ses tuiles, il remporte la partie.
- Si un joueur arrive à court de tuile, c'est le joueur ayant le plus de séries de 3 tuiles consécutives qui gagne la partie. En cas, d'égalité, c'est celui avec la somme la plus petite de série de 3 qui gagne.
Prérequis :
- .NET Framework installé.
Compile le projet :
dotnet buildDémarre le serveur :
dotnet runPrérequis :
- Docker installé.
- Service Docker démarré.
Construit l'image docker :
docker build -t punto-server .Lance l'image docker :
docker run -p 5000:8080 punto-serverPar défaut le serveur démarre à l'adresse suivante : http://localhost:5000/punto
Socket depuis le serveur :
- "RejoindrePartie" : renvoie le nom du joueur qui vient de rejoindre la partie. Appelé en début de partie quand un joueur rejoint la partie.
- "JouerTuile" : renvoie le nom du joueur, la position X, la position Y et la valeur de la tuile jouée. Appelé à chaque tuile joué.
- "CommencerPartie" : renvoie le nom des joueurs qui jouent la partie. Appelé lorsque la partie commence.
- "CommencerTour" : renvoie le nom du joueur qui doit jouer. Appelé lorsque débute un nouveau tour.
- "MettreAJourEtatJeu" : renvoie l'état de la partie.
- "MettreAJourTuilesEnMain" : renvoie les tuiles en main du joueur. Appelé au début du tour.
- "MettreAJourPlateau" : renvoie le plateau (sous forme json). Appelé au début du tour d'un joueur.
- "MettreAJourJoueur" : renvoie le joueur (sous forme json). Appelé lors d'un appel à ObtenirJoueur.
- "ErreurCoupNonAutorise" : Appelé si le joueur joue un coup non-autorisé.
- "TerminerJeu" : renvoie le nom du vainqueur. Appelé lorsqu'un joueur gagne la partie.
- "JoueurDeconnecte" : renvoie le nom du joueur déconnecté. Appelé lorsqu'un joueur a une erreur de connexion. Le joueur est disqualifié immédiatement.
Socket vers le serveur :
- "RejoindrePartie" : Prend en entrée le nom du joueur. Rejoins le jeu.
- "JouerTuile" : Prend en entrée le nom du joueur, la position x, la position y et la valeur de la tuile. Ne doit être appelé que lorsque c'est le tour du joueur de jouer.
- "ObtenirEtatJeu" : Ne prend aucune entrée. Renvoie l'état du jeu (ex: "EnCours").
- "ObtenirPlateau" : Ne prend aucune entrée. Renvoie le plateau.
- "ObtenirMainJoueur" : Ne prend aucune entrée. Renvoie la main du joueur si le joueur est bien présent dans la partie.
- "ObtenirJoueur" : Ne prend aucune entrée. Renvoie toutes les infos du joueur.
- "ObtenirJoueurs" : Ne prend aucune entrée.Renvoie toutes les infos des joueurs de la partie.