AI Agents

كيف بنيتُ Quads، لعبة لوحية للجوّال، مع Claude — من هاكاثون بساعتين إلى App Store

Alejandro Rioja
Alejandro Rioja
9 د قراءة
TL;DR

Quads لعبة لوحية للجوّال — نسخة أنيقة من اللعبة المجرّدة الكلاسيكية Quarto — بدأت كهاكاثون بساعتين مع صديق في كولومبيا وأُطلقت على متاجر التطبيقات. هذه هي النسخة المفتوحة بالكامل من كيفية بنائي مع Claude: أشجار عمل متوازية للوكلاء، وذكاء لعبة حقيقي (لا نموذج لغوي)، وتصميم يعمل دون اتصال أولاً، والمطبّات المحدّدة التي كلّفتني ساعات.

نشرة بريدية مجانية

كل أربعاء. أكثر من 28,400 مشترك. بدون حشو.

جدول المحتويات

تحديث يوليو 2026.

باختصار: Quads لعبة لوحية للجوّال — نسخة أنيقة من اللعبة المجرّدة الكلاسيكية Quarto — بدأت كهاكاثون بساعتين مع صديق في كولومبيا وأُطلقت على متاجر التطبيقات. هذه هي النسخة المفتوحة بالكامل من كيفية بنائي مع Claude: أشجار عمل متوازية للوكلاء، وذكاء لعبة حقيقي (لا نموذج لغوي)، وتصميم يعمل دون اتصال أولاً، والمطبّات المحدّدة التي كلّفتني ساعات.

[قراءة المُشغِّل] أُشغِّل أكثر من 30 وكيلاً إنتاجياً عبر علامة استشارية وعبر Pickleland، منشأة البيكلبول التي أُديرها في منطقة أوستن الكبرى. معظم ما أبنيه برمجيات أعمال جادة أُبقي دليل تشغيلها خاصاً. Quads هي العكس — مشروع جانبي مُمتع أستطيع أن أُريك إياه من القمة إلى القاع. إن أردت أن ترى بالضبط كيف أعمل مع Claude، دون أي تنعيم، فهذه هي التدوينة. تجد اللعبة على playquads.com.

بدأت كهاكاثون بساعتين في كولومبيا

الأصل عفوي إلى حدّ يكاد يكون محرجاً. كنتُ في رحلة إلى كولومبيا، وأعطينا أنا وصديق أنفسنا هاكاثون بساعتين: اخترْ شيئاً صغيراً، ابنِه بالذكاء الاصطناعي، وانظرْ إلى أي مدى نصل. استقرّ اختيارنا على Quarto — لعبة استراتيجية مجرّدة صغيرة جميلة سهلة التعلّم وعميقة على نحو مفاجئ. بعد ساعتين كان لدينا نموذج أولي قابل للعب، وكانت الفكرة أفضل من أن تُترك على حاسوب محمول.

ما بدأ كتحدٍّ محدّد بوقت تحوّل إلى تطبيق جوّال حقيقي مُطلق على iOS وAndroid. ذلك المسار — من نموذج أولي مزحة إلى إدراج في المتجر — هو السبب برمّته في اعتقادي أن هذا المشروع يستحق الكتابة عنه. المسافة بين «فكرة مُمتعة» و«شيء يستطيع الغرباء تنزيله» قد انهارت، وQuads دراسة حالة أنيقة عن كيفية ذلك.

أولاً، استطراد سريع بشأن الاسم. اللعبة هي إعادة تنفيذ لـ Quarto، وهي لعبة مسجَّلة كعلامة تجارية تملكها Gigamic. لذا كان أول قرار غير برمجي على الإطلاق هو ألا تُسمّى Quarto في أي مكان يراه العميل. انتقلت من Quarto (الآلية) إلى بضعة أسماء انتقالية إلى Quads — اسم يحقّ لي استخدامه. إن كنت تُعيد تنفيذ لعبة كلاسيكية، فاحسمْ مسألة العلامة التجارية قبل أن تقع في حب اسم.

ماذا تكون Quads فعلاً

لغير المطّلعين: تُلعب Quads على لوح 4×4 بـ 16 قطعة فريدة. لكل قطعة أربع سمات ثنائية — طويلة أو قصيرة، داكنة أو فاتحة، مربّعة أو مستديرة، مصمتة أو مجوّفة — وتغطي القطع الست عشرة كل تركيبة ممكنة مرة واحدة بالضبط. تفوز بإكمال خط من أربع قطع تتشارك أي سمة واحدة.

اللمسة التي تجعلها بارعة: أنت لا تختار القطعة التي تضعها. خصمك يناولك إياها. ثم تناوله أنت قطعته. فكل دور معضلة مزدوجة — تحاول وضع القطعة التي أُعطيت لك دون أن تُهيّئ فوزاً، بينما تختار قطعة تعطيها لا تُسلّم خصمك اللعبة. إنها أنيقة وصعبة حقاً.

يأتي التطبيق بأربع طرق للعب، كلها تعمل دون اتصال بالكامل: ضد الحاسوب عبر خمسة مستويات صعوبة، ولعب بالتناوب على جهاز واحد، ولغز يومي، ووضع غير متزامن «تحدَّ صديقاً». لا حساب، لا خادم، لا تسجيل دخول. ذلك القرار بالعمل دون اتصال أولاً قاد جزءاً كبيراً من الهندسة، وهو سبب كبير في أن البناء بمفردي كان ممكناً.

منطق اللعبة: مجموعة قواعد كاملة تنبثق من حسابات البتات

هذا جزئي المفضّل، لأنه من النوع المُرضي سواء كتبه الذكاء الاصطناعي أم لا.

كل قطعة من القطع الست عشرة هي مجرّد عدد صحيح من 0 إلى 15. كل بت من البتات الأربعة سمة واحدة. هذا كل شيء — مجموعة القطع بأكملها هي الأعداد من 0 إلى 15، لأن أربعة بتات تمنحك 16 تركيبة بالضبط.

يصبح كشف الفوز عندئذٍ شبه تافه. لأي خط من أربع قطع، تحتفظ بمُراكِمَين جاريين: البتات التي تساوي 1 في كل قطعة، والبتات التي تساوي 0 في كل قطعة. إن كان أيّ من المُراكِمَين غير صفري بعد القطع الأربع جميعاً، فإن القطع تتفق على سمة واحدة على الأقل — وذلك فوز. تنهار مجموعة القواعد بأكملها إلى بضع عمليات AND على مستوى البتات.

ولأن المنطق دوال محضة على أعداد صحيحة — لا إطار عمل، لا واجهة مستخدم، لا حالة — فهو قابل للاختبار الوحدوي مباشرة، ومن التافه توسيعه. حتى إن Quads تأتي بنسخة قاعدة منزلية تُحتسب فيها المربّعات التسعة 2×2 أيضاً أشكالاً فائزة، وهي إضافة من سطرين فوق حيلة البتات نفسها. حين تُبقي أنت وشريك ذكاء اصطناعي المنطق الأساسي بهذه النظافة، تصبح إضافة ميزة بهجة بدلاً من مخاطرة.

الخصم الذكي ليس نموذجاً لغوياً (وذلك هو القرار الصحيح)

إليك لحظة تعليمية أهتمّ بها: ليس كل «ذكاء اصطناعي» ينبغي أن يكون نموذجاً لغوياً كبيراً.

خصم Quads هو ذكاء لعبة كلاسيكي محض، وينبغي أن يكون كذلك. في كل دور يتخذ قرارين — أين يضع القطعة التي نُووِل إياها، وأي قطعة يُعيد مناولتها — وتُدرّج الصعوبة مدى صعوبة تفكيره:

  • المبتدئ يلعب بشكل عشوائي في جوهره وسيناولك الفوز.
  • تُضيف المستويات الوسطى استدلالات: اغتنم فوزاً فورياً إن وُجد، وتجنّب إهداء قطعة يستطيع الخصم أن يفوز بها، مُفضّلاً القطعة التي تُسلّح أقل قدر من التهديدات المستقبلية.
  • الخبير والأستاذ الكبير يُشغِّلان بحث negamax مُقيَّداً — بحث حقيقي في شجرة اللعبة — لكن بـ ميزانية عقد صارمة بحيث لا يمكن لأي نقلة أن تُعلّق الخيط الرئيسي للهاتف. في بداية اللعبة، حيث يكون البحث المثالي مستعصياً، يعود إلى استدلالات سريعة؛ وفي أواخر اللعبة، حيث تكون الشجرة صغيرة بما يكفي، يبحث بحثاً حقيقياً.

هناك شيئان يستحقان أن تسرقهما من هذا. أولاً، سيكون النموذج اللغوي أسوأ هنا — أبطأ وأغلى وغير حتمي وقابلاً للهزيمة — من خمسين سطراً من negamax. لائم الأداة مع المشكلة. ثانياً، ميزانية العقد هي الهندسة الحقيقية: على جهاز جوّال، «صحيح لكنه يُعلّق أحياناً لأربع ثوانٍ» ميزة فاشلة. تقييد البحث بحيث تكون النقلة دائماً سريعة، حتى وإن كانت أحياناً دون المثالية، هو الفرق بين لعبة وسيطة ومنتج. معرفة متى تلجأ إلى نموذج لغوي هي الحصافة نفسها التي أُطبّقها على كل أتمتة — إنها جوهر كيف أقرر ما إذا كان بناء ذكاء اصطناعي يستحق العناء.

كيف أُشغِّل Claude فعلاً: وكلاء متوازون في أشجار العمل

الآن الجزء الذي أُبقيه خاصاً على منتجاتي الأكبر لكنني أستطيع أن أُريك إياه بالكامل هنا.

لا أبني بجلسة Claude واحدة في المرة الواحدة. أُشغِّل عدة جلسات بالتوازي، كل واحدة في شجرة عمل git خاصة بها على فرع خاص بها. وكيل يُضيف التدويل، وآخر يبني نظام اللغز اليومي، وآخر يُنجز وضع عمى الألوان، وآخر يربط الصوت — كل واحد معزول في نسخته العاملة الخاصة بحيث لا يستطيعون أن يدوس بعضهم على بعض، ويُدمَج كل واحد حين يصبح ناجحاً. سجل git الخاص بـ Quads جدار من تأكيدات Merge branch 'worktree-agent-…'، وهو تماماً ما يبدو عليه ذلك سير العمل من الخارج.

سبب أهمية أشجار العمل بسيط: الوكلاء المتوازون الذين يُحرّرون دليل العمل نفسه يدوسون بعضهم على بعض فوراً. امنحْ كل واحد نسخة معزولة وتستطيع فعلاً أن تحظى بأربع ميزات قيد الإنشاء دفعة واحدة، ثم تدمجها كأي فروع أخرى. إنه التغيير الأعلى رافعة على الإطلاق في طريقة عملي — انتقلتُ من محادثة واحدة وميزة واحدة إلى أسطول صغير.

إن أردت الانضباط خلف الموجهات التي يعمل عليها هؤلاء الوكلاء، فهو نفسه الذي أصفه في كيف تكتب موجهات نظام لوكلاء الذكاء الاصطناعي لا تفشل في الإنتاج: الرافعة في المواصفات الواضحة المحدَّثة، لا في الصياغة الذكية.

المطبّ الذي كلّفني ساعة (كي لا يكلّفك أنت واحدة)

كل مشروع يُعلّمك درساً غبياً باهظاً واحداً. على Quads كان هذا: أداة المعاينة لا تُظهر دائماً الفرع الذي تظن أنها تُظهره.

حين تُشغِّل عدة وكلاء في عدة أشجار عمل وتُعاين عملهم، يمكن أن تنطلق المعاينة من دليل مختلف عن الدليل الذي تكون فيه جلستك الحالية — فتلتقط لقطة شاشة للتطبيق، ولا ترى أياً من تغييراتك، وتبدأ في تنقيح واجهة مستخدم «مفقودة» لم تكن مفقودة قط. الميزة كانت سليمة؛ المعاينة كانت موجّهة إلى النسخة الخطأ. خسرتُ وقتاً حقيقياً بسبب هذا قبل أن أُدرك ما كان يحدث، وكتبتُه في ملاحظات المشروع نفسه بحيث يتحقّق أنا-المستقبل (وأي وكيل أُسلّمه المستودع) من هدف المعاينة قبل تنقيح أخطاء وهمية.

الفخّ ذو الصلة: ملف الإعداد الذي يُعرّف تلك المعاينات مشترك عبر الجلسات المتوازية، فوكيلان يُحرّرانه في آن واحد قد يُلغي أحدهما إدخالات الآخر بصمت. إن كنت ستُشغِّل أسطولاً، فعامِل الإعداد المشترك كمورد متنازَع عليه — سيعضّك مرة واحدة بالضبط، ثم لا يفعل أبداً إن كتبتَ الدرس.

تلك العادة — التقاط كل مطبّ صعب المِراس في ملف دائم ستقرؤه الجلسة التالية — هي العمود الفقري الهادئ للبناء بالذكاء الاصطناعي على أي نطاق. السياق يتبخّر بين الجلسات؛ أما الدروس المكتوبة فلا.

حيل العمل دون اتصال أولاً التي أفخر بها

لأن Quads لا خلفية لها، احتاجت بضع مشكلات إلى إجابات ذكية بلا خادم:

  • اللغز اليومي يُختار حتمياً من اليوم المحلي في السنة، بحيث يحصل كل لاعب حول العالم على اللغز نفسه دون أي تنسيق خادمي. (درس إضافي: أطلقتُ، ثم أصلحتُ فوراً، خطأ بمقدار واحد بسبب التوقيت الصيفي في حساب التاريخ ذاك. التواريخ دائماً أصعب مما تبدو.)
  • «تحدَّ صديقاً» يُرمّز لغزاً في رمز نصي قصير — شيء مثل QC1-01-03-3 — محروس بمجموع تحقّق بحيث لا يستطيع خطأ مطبعي أن يُنتج تحدياً صحيحاً-لكنه-خاطئ. يكتبه صديقك في نسخته الخاصة من التطبيق ويلعب الوضعية بالضبط، دون اتصال بالكامل. لا حسابات، لا مطابقة لاعبين، لا خادم.
  • معاينات الروابط الغنية هي المكان الوحيد الذي استخدمتُ فيه قدراً ضئيلاً من شيفرة الخادم. حين تُشارك رابط تحدٍّ، تُصيّر دالة Cloudflare Pages واحدة وسوم Open Graph خاصة بكل رمز بحيث ينفتح الرابط بشكل جميل في iMessage أو WhatsApp. زواحف مواقع التواصل لا تُشغِّل JavaScript، فمعاينة مُصيَّرة من العميل ستبدو متطابقة لكل رابط — دالة صغيرة واحدة تُصلح ذلك دون الحاجة إلى خلفية حقيقية.

لا شيء من هذه صعب بمجرد أن تراه، لكن كل واحدة مكان تكون فيه الإجابة الكسولة «شغّل خادماً وقاعدة بيانات»، وتكون الإجابة الأفضل «افعل الشيء الذكي دون اتصال». تجنّب الخلفية كلياً هو سبب استطاعة شخص واحد إطلاق هذا وصيانته.

من الهاكاثون إلى الإدراج في المتجر

المرحلة الأخيرة — الجزء الذي لا يخبرك به أحد عن «مشروع بساعتين» — هي كل ما بين «إنه يعمل على هاتفي» و«يستطيع الغرباء تنزيله». التدويل عبر ثماني لغات في جولة واحدة. نصوص متجر لا تستخدم الاسم المسجَّل كعلامة تجارية أبداً. أدوات بناء متجر التطبيقات، وإدارة الإصدارات، وتنظيفات الأذونات الخاصة بكل منصة التي تمنع مراجعة المتجر من رفضك. هذا غير برّاق، وهو المكان الذي يموت فيه الكثير من المشاريع الجانبية بهدوء.

فعْل ذلك مع Claude لم يجعل قائمة المهام أقصر، لكنه جعل كل بند فيها رخيصاً بما يكفي لأُنهيه فعلاً. تلك هي قصة Quads الحقيقية: ليست أن الذكاء الاصطناعي كتب لعبة لوحية — الكثيرون يستطيعون صنع نموذج أولي لواحدة — بل أنه خفّض تكلفة الميل الأخير بما يكفي لأن تصير مزحة هاكاثون منتجاً مُطلقاً.

إن كانت لديك فكرة صغيرة ظللت تؤجّلها، فتلك هي دعوتي بأكملها. ابدأ نسخة الساعتين. ستُفاجأ كم اقترب خط النهاية. وإن أردت أن ترى إلى أي مدى يصعد أسلوب العمل نفسه هذا على السلّم، فقد أخذتُه إلى أقصاه إلى منصة SaaS كاملة متعددة المستأجرين — كيف بنيتُ Courtlines، منصة لإدارة الأندية، مع Claude.

العبْ Quads على playquads.com.

الأسئلة الشائعة

ما هي Quads؟

Quads لعبة لوحية للجوّال على iOS وAndroid — إعادة تنفيذ أنيقة للعبة الاستراتيجية المجرّدة الكلاسيكية Quarto. تلعب على لوح 4×4 بـ 16 قطعة فريدة، واللمسة هي أن خصمك يختار القطعة التي عليك وضعها. إنها مجانية اللعب بأوضاع للّعب الفردي، واللعب بالتناوب، ولغز يومي، وتحديات غير متزامنة. تجدها على playquads.com.

هل كتب Claude اللعبة بأكملها؟

كتب Claude الغالبية العظمى من الشيفرة، انطلاقاً من التصميم والقرارات التي أملكها. شغّلتُ عدة جلسات Claude بالتوازي، كل واحدة في شجرة عمل git خاصة بها، تبني ميزات مختلفة دمجتُها معاً. منطق اللعبة، والخصم الذكي، والتدويل، والأصوات، ونظام الألغاز بُنيت إلى حدّ كبير بهذه الطريقة وراجعتُها بنفسي.

هل الخصم الذكي داخل اللعبة مُشغَّل بنموذج لغوي؟

لا — وذلك عن قصد. يستخدم الخصم ذكاء لعبة كلاسيكياً: استدلالات في المستويات الأدنى وبحث negamax مُقيَّداً في المستويات العليا، بميزانية عقد صارمة بحيث لا تُعلّق نقلة الجهاز أبداً. سيكون النموذج اللغوي أبطأ وأغلى وأضعف لهذه المهمة. اختيار النوع الصحيح من الذكاء الاصطناعي للمشكلة أهمّ من اللجوء دائماً إلى أكبر نموذج.

كم استغرق بناء Quads؟

خرج أول نموذج أولي قابل للعب من هاكاثون بساعتين مع صديق في رحلة إلى كولومبيا. تحويل ذلك النموذج الأولي إلى تطبيق مصقول قابل للإطلاق على متجري التطبيقات كليهما — بالتدويل، وخصم ذكي حقيقي، وتحديات دون اتصال، والامتثال لمتطلبات المتجر — استغرق وقتاً أطول بكثير، لكن كل خطوة على حدة كانت رخيصة بما يكفي بالذكاء الاصطناعي بحيث بلغ المشروع خط النهاية فعلاً.

ما أكبر درس من بناء Quads مع Claude؟

شيئان. أولاً، شغّل الوكلاء في أشجار عمل git معزولة كي تستطيع بناء عدة ميزات بالتوازي دون أن يدوس بعضها على بعض. ثانياً، اكتبْ كل مطبّ في ملف دائم ستقرؤه الجلسة التالية — السياق يتبخّر بين الجلسات، أما الدروس المكتوبة فتتراكم. للاطلاع على الصورة الأكبر لأسلوب العمل هذا، راجع كيف بنيتُ Courtlines مع Claude.

تابع القراءة

مقالات ذات صلة

تابع القراءة

احصل على دليل الذكاء الاصطناعي في صندوق بريدك

كل أربعاء. أكثر من 28,400 مشترك. بدون حشو.

↵ لعرض كل النتائج esc esc للإغلاق