عن المشروع

Kuroban (九路盤، «لوحة الطرق التسع») هو تطبيق Go مكتوب من الصفر بلغة Kotlin وJetpack Compose من أجل Mudita Kompakt، وهو هاتف بشاشة حبر إلكتروني. التطبيق ليس فرعاً برمجياً؛ فهو يستخدم نظام تصميم MMD الخاص بـMudita ليتطابق مع التطبيقات المرفقة مع الهاتف، ويضم GNU Go كمحرك لعب. ما الذي يفعله: - لوحة 9×9 فقط. المحرك يدعم أحجاماً أخرى، لكن المؤلف يذكر أن مقاس 19×19 على لوح بعرض 360dp سيعطي أهداف لمس بحجم 18dp. - اللعب ضد GNU Go بمستويين، بأي من اللونين، أو قيام لاعبين بتبادل جهاز واحد أثناء اللعب. - إعاقة من حجرين إلى 5 أحجار، تُقدَّم كأداة ضبط أدق لموازنة اللعبة مقارنة بإعدادات الصعوبة. - إعداد موضع يدوياً: وضع أحجار سوداء وبيضاء في أي مكان، واختيار اللون صاحب النقلة التالية، مع استمرار توفر التلميح والتراجع وحساب نهاية اللعبة. - يطلب التلميح من المحرك نقلته ويعرضها كحجر معاينة؛ ولا يُثبِّت أي شيء بمجرد الطلب. - النقر للمعاينة، ثم النقر مرة أخرى للوضع، بحيث لا تؤدي لمسة غير مقصودة إلى لعب حجر؛ وزر Place يؤدي الوظيفة نفسها. - التراجع عن نقلة، وكذلك التراجع عن رد GNU Go عند اللعب ضده؛ ويمكن العودة إلى الألعاب المنتهية. - تمريرتان تُنهيان اللعبة، ويقوم GNU Go بحساب النقاط، بما في ذلك تحديد الأحجار الميتة، التي تُعلَّم بعلامة x. - حفظ اللعبة الجارية، بما في ذلك سجل التراجع، عبر إعادة تشغيل الهاتف. - لا أذونات ولا وصول إلى الشبكة. المحرك: يعمل GNU Go 3.8 كعملية فرعية ويتم التواصل معه عبر GTP من خلال stdin/stdout. يذكر README أن المحرك هو المرجع الحاسم في الشرعية والكوب والأسر وحساب النقاط، وأن التطبيق لا يطبق أي قواعد Go خاصة به. ويعيد سكربت البناء engine/build-gnugo.sh بناءه. بخصوص الصعوبة: يورد README قياسات لعب ذاتي تشير إلى أن المستويين 1 و3 غير قابلين للتمييز، وكذلك المستويين 5 و10، مع أن الفارق الحقيقي يقع بين 3 و5، وأن المستوى 10 يكلف نحو عشرة أضعاف وقت تفكير المستوى 5. ويوصف وضع Monte Carlo في GNU Go بأنه أقوى لكنه يستغرق حوالي 14 ثانية لكل نقلة على الجهاز، مع عدم وجود نسخة منخفضة التكلفة. يتطلب البناء Android SDK، بالإضافة إلى NDK ومترجم C مضيف عند إعادة بناء المحرك. تغطي مهام Gradle اختبارات الوحدة وتجميع النسخة النهائية؛ وتُبنى الإصدارات عبر سير عمل GitHub Actions عند وسوم v*، حيث يعيد بناء المحرك من حزمة tarball المضمّنة ويتحقق من شهادة توقيع APK. تحتاج نسخ الإصدار النهائي إلى مخزن مفاتيح في signing/ (مستثنى من Git)؛ وبدونه ينتج assembleRelease ملف APK غير موقّع. تستخدم نسخ التصحيح مفتاح تصحيح Android القياسي. التوزيع: يُنشر ملف APK على GitHub Releases مع ملف .sha256 بجانبه، ويمكن إضافة المستودع إلى Obtainium للحصول على إشعارات التحديث. يُذكر أن معرّف التطبيق ثابت، لذا تُثبَّت التحديثات فوق التثبيتات الحالية. الترخيص: GPL-3.0-only. وGNU Go (حقوق النشر 1999-2009 لـFree Software Foundation، GPLv3 أو أي إصدار لاحق) مضمّن، مع حزمة مصدره غير المعدّلة وسكربت البناء. يوجّه README القراء أيضاً إلى الكتاب المجاني 81 Little Lions لـImmanuel deVillers كمقدمة للوحة 9×9؛ وهو غير مضمّن مع التطبيق.