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.sh/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 ​