Ik heb in een weekend een kaartspel uitgebracht

Ik heb een browserversie van Prší gebouwd. Dit is een Tsjechisch kaartspel. Het is een 1v1-spel tegen een eenvoudige AI. Je kunt het spelen met een muis of via touch.

Speel het hier: https://czsoftcode.github.io/prsi/

De meeste mensen noemen dit 'vibe coding'. Ik ben het daar niet mee eens. Vibe coding betekent vaak dat je een app beschrijft en accepteert wat de AI je geeft. Ik gebruikte een andere methode.

Ik heb Claude Code gebruikt om het bouwproces door 10 expliciete fasen te leiden. Elke fase had een specifiek doel en een verifieerbare output.

De fasen omvatten:

  • Het opzetten van de Vite- en TypeScript-scaffold
  • Het bouwen van het datamodel voor de game engine
  • Het toevoegen van basiszetten en speciale kaarten
  • Het creëren van de logica voor de AI-tegenstander
  • Het bouwen van de UI en de interactieloop
  • Het draaien van 200 end-to-end AI-simulaties
  • Het deployen van de site

Ik heb elke fase gepland en beoordeeld voordat ik naar de volgende ging. Hierdoor bleef de code schoon. Ik heb ongeveer 300 unit tests geschreven. Wanneer de AI een fout maakte, merkten mijn tests dit direct op.

Het moeilijkste deel was niet de code. Het waren de spelregels.

  • Zevens stapelen: Spelers kunnen tot vier zeven op elkaar stapelen om een tegenstander te dwingen 8 kaarten te trekken.
  • Vrouw-wildcards: De vrouw verandert de vereiste kleur. Ik moest ervoor zorgen dat de engine dit correct afhandelde.

Ik liep ook tegen technische hindernissen aan:

  • Deployment: Mijn afbeeldingen werkten niet op GitHub Pages vanwege fouten in het pad. Ik heb dit opgelost door de base URL van Vite te gebruiken.
  • Versiebeheer: Ik vergat mijn package.json bij te werken nadat ik een release had getagd.

Ik hield de AI eenvoudig. Het voert alleen legale zetten uit. Het doel was een correcte AI, niet een slimme AI. Ik heb 200 gesimuleerde spellen gebruikt om te bewijzen dat het spel altijd eindigt in een winst of een gelijkspel.

Door fase voor fase te bouwen in plaats van te vertrouwen op 'vibes', kon ik een product uitgeven dat ik ook echt begrijp.

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

Optionele leercommunity: https://github.com/czsoftcode/prsi