Skip to content

Morpion en ligne

L'endpoint /tic-tac-toe permet de jouer et de stocker une partie de morpion en ligne. Les parties sont stockées pendant 1 heure et supportent les modes public et privé.

Paramètres

ParamètreRequisDescription
usernameOuiLe nom d'utilisateur effectuant le mouvement
moveOuiLe coup joué au format ligne-colonne (ex. : 1-1, 2-2, 3-3)
sessionOuiL'identifiant de session de l'utilisateur
gameOuiL'identifiant de la partie permettant la connexion. Si la partie n'existe pas, elle sera créée

Format des coups

Le plateau est une grille 3x3 avec des positions numérotées comme suit :

1-1 | 1-2 | 1-3
----|-----|----
2-1 | 2-2 | 2-3
----|-----|----
3-1 | 3-2 | 3-3

Exemple de requête

bash
curl -X POST -d "username=Utilisateur1&move=2-2&session=abc123&game=VWXYZ" "https://api.sylvain.pro/v3/tic-tac-toe"

Réponse

Coup réussi

json
{
  "message": "Move sent successfully"
}

Victoire

json
{
  "message": "Move sent successfully. Utilisateur1 wins. Utilisateur2 loses.",
  "winner": "Utilisateur1",
  "loser": "Utilisateur2",
  "tie": false
}

Égalité

json
{
  "message": "Game over. It's a tie!",
  "winner": null,
  "loser": null,
  "tie": true
}

Réponses d'erreur

ErreurDescription
Rate limit exceeded. Try again in X seconds.Trop de requêtes
Invalid move. Please provide a valid move (e.g., 1-1, 2-2, 3-3).Format de coup invalide
Game is full, you can only watch.La partie a déjà deux joueurs
Please wait for the other player to make a move.Ce n'est pas votre tour
Move already made. Please choose a different move.Case déjà occupée
Session ID mismatchLa session ne correspond pas au joueur

Gestion des erreurs

Si les paramètres sont manquants ou invalides, l'API retournera une erreur :

Message d'erreurDescription
Please provide a username (?username={username})Le paramètre username est manquant
Please provide a valid move (&move={move})Le paramètre move est manquant ou invalide
Please provide a valid session ID (&session={ID})Le paramètre session est manquant ou invalide
Please provide a valid game ID (&game={ID})Le paramètre game est manquant ou invalide

Lorsqu'une partie est terminée, la requête retournera les noms du gagnant et du perdant, ainsi que s'il y a égalité.

Endpoints associés