Nilitengeneza na Kuachia Mchezo wa Karata Ndani ya Wiki Moja

Nilitengeneza toleo la kivinjari la Prší. Huu ni mchezo wa karata wa Kicheki. Ni mchezo wa 1v1 dhidi ya AI rahisi. Unaweza kuucheza kwa kutumia panya (mouse) au kugusa (touch).

Cheza hapa: https://czsoftcode.github.io/prsi/

Watu wengi huiita hii 'vibe coding'. Sikubaliani na hilo. 'Vibe coding' mara nyingi inamaanisha unataja maelezo ya programu na kukubali chochote ambacho AI inakupa. Nilitumia mbinu tofauti.

Nilitumia Claude Code kuongoza ujenzi kupitia hatua 10 za wazi. Kila hatua ilikuwa na lengo maalum na matokeo yanayoweza kuthibitishwa.

Hatua hizo zilijumuisha:

  • Kuandaa muundo (scaffold) wa Vite na TypeScript
  • Kujenga mfumo wa data wa injini ya mchezo
  • Kuongeza miondoko ya msingi na karata maalum
  • Kuunda mantiki ya mpinzani wa AI
  • Kujenga UI na mzunguko wa mwingiliano
  • Kuendesha simulizi 200 za AI za mwisho hadi mwisho
  • Kuweka tovuti hewani (deploying)

Nilipanga na kupitia kila hatua kabla ya kuhamia inayofuata. Hii ilifanya kodi iwe safi. Niliandika karibu unit tests 300. AI ilipofanya kosa, majaribio yangu yaliligundua mara moja.

Sehemu ngumu zaidi haikuwa kodi. Ilikuwa ni sheria za mchezo.

  • Kuweka saba pamoja: Wachezaji wanaweza kuweka hadi saba nne ili kumlazimisha mpinzani kuchukua karata 8.
  • Queen wildcards: Malkia (queen) hubadilisha aina ya karata (suit) inayohitajika. Ilibidi nihakikishe injini inashughulikia hili kwa usahihi.

Pia nilikumbana na vikwazo vya kiufundi:

  • Uwekaji hewani (Deployment): Picha zangu hazikuonekana kwenye GitHub Pages kwa sababu ya makosa ya njia (path errors). Nilitatua hili kwa kutumia base URL ya Vite.
  • Utoleo (Versioning): Nilisahau kusasisha package.json yangu baada ya kuweka lebo ya toleo (tagging a release).

Niliifanya AI iwe rahisi. Inacheza miondoko ya kisheria pekee. Lengo lilikuwa kuwa na AI sahihi, siyo yenye akili nyingi. Nilitumia michezo 200 ya simulizi kuthibitisha kuwa mchezo kila wakati huisha kwa ushindi au sare (stalemate).

Kujenga hatua kwa hatua badala ya kutegemea 'vibes' iliniruhusu kutoa bidhaa ambayo ninaielewa kweli.

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

Jumuia ya kujifunza ya hiari: https://github.com/czsoftcode/prsi