Cribbage

·

J’aime les jeux de cartes.

Quand mon amie m’a montré comment jouer au Cribbage, j’ai décidé que la meilleure manière d’apprendre les règles était de programmer ma propre version du jeu.

Structure du projet

Le projet est séparé en 3 sections: le core du jeu, l’application de test console et le serveur web.

Le core exécute le jeu en soi d’une manière indépendante. Il ne fait qu’attendre une saisie des joueurs que lorsque nécessaire. N’importe quel utilisateur peut se connecter dans les évènements du core et répondre selon les besoins du jeu. Ceci permet de connecter divers UI ou de programmer plusieurs situations en parallèle, par exemple: tester et jouer au jeu.

Structure du projet de Cribbage Structure simplifiée du projet

Séquence de jeu

La séquence de jeu est relativement simple: rejoindre une partie, jouer comme à l’habitude.

La boucle de jeu n’est qu’une machine à états finis décrite par les états ainsi que la figure suivants.

  1. Mélanger les cartes
  2. Piger les mains des joueurs (6 cartes par joueur dans une partie de 2 joueurs)
  3. Construire le crib (2 cartes par joueur dans une partie de 2 joueurs)
  4. Piger la carte de départ
  5. Jouer les mains des joueurs
  6. Pointer les mains des joueurs
  7. Pointer le crib

En tout point, si un joueur a 121 points ou plus, il ou elle gagne la partie.

Boucle de jeu du Cribbage Survol de la boucle de jeu

Stack technique

Le jeu et le serveur web sont tous les deux conçus avec Go parce que je trouve le langage facile et plaisant.
L’interface frontend est générée par templ et vise à être servie par SSR.
L’interactivité est ajoutée via HTMX pour les requêtes génériques et via des websockets (Javascript + JSDoc) pour les évènements reliés au jeu.