I Shipped A Card Game in A Weekend

J'ai conçu une version navigateur de Prší. C'est un jeu de cartes tchèque. Il s'agit d'un duel en 1 contre 1 contre une IA simple. Vous pouvez y jouer à la souris ou au tactile.

Jouez ici : https://czsoftcode.github.io/prsi/

La plupart des gens appellent cela le « vibe coding ». Je ne suis pas d'accord. Le « vibe coding » signifie souvent que vous décrivez une application et que vous acceptez tout ce que l'IA vous donne. J'ai utilisé une méthode différente.

J'ai utilisé Claude Code pour piloter le développement à travers 10 phases explicites. Chaque phase avait un objectif spécifique et un résultat vérifiable.

Les phases comprenaient :

  • La configuration de l'ossature Vite et TypeScript
  • La construction du modèle de données du moteur de jeu
  • L'ajout des mouvements de base et des cartes spéciales
  • La création de la logique de l'adversaire IA
  • La construction de l'interface utilisateur et de la boucle d'interaction
  • L'exécution de 200 simulations IA de bout en bout
  • Le déploiement du site

J'ai planifié et révisé chaque phase avant de passer à la suivante. Cela a permis de garder un code propre. J'ai écrit environ 300 tests unitaires. Lorsque l'IA faisait une erreur, mes tests la détectaient immédiatement.

La partie la plus difficile n'était pas le code. C'étaient les règles du jeu.

  • Empiler les sept : les joueurs peuvent empiler jusqu'à quatre sept pour forcer un adversaire à piocher 8 cartes.
  • Reines jokers : la reine change la couleur requise. J'ai dû m'assurer que le moteur gérait cela correctement.

J'ai également rencontré des obstacles techniques :

  • Déploiement : mes images ne s'affichaient plus sur GitHub Pages à cause d'erreurs de chemin. J'ai corrigé cela en utilisant l'URL de base de Vite.
  • Versionnage : j'ai oublié de mettre à jour mon package.json après avoir tagué une version.

J'ai gardé l'IA simple. Elle ne joue que des coups légaux. L'objectif était d'avoir une IA correcte, pas une IA intelligente. J'ai utilisé 200 parties simulées pour prouver que le jeu se termine toujours par une victoire ou une impasse.

Construire phase par phase, plutôt que de se fier aux « vibes », m'a permis de sortir un produit que je comprends réellement.

Source : https://dev.to/stkremen/i-shipped-a-card-game-in-a-weekend-but-i-didnt-really-vibe-code-it-34g9

Communauté d'apprentissage optionnelle : https://github.com/czsoftcode/prsi