عن المشروع

هذا المستودع هو مكتبة شطرنج بلغة Go (Golang) تقدم أدوات شطرنج شائعة كمجموعة من الحزم. إنه فرع من notnil/chess، مُحتفظ به تحت مساحة الاسم /v2، مع التركيز على تقليل تخصيص الذاكرة، وتحسين الأداء، وتوسيع تغطية الاختبارات. تشمل القدرات الأساسية توليد الحركات باستخدام bitboards، وإدارة الأدوار، وكشف كش ملك والتعادل، والتسلسل وإلغاء التسلسل. التنسيقات المدعومة تشمل PGN (مع أزواج الوسوم، والتعليقات، والتعليقات التوضيحية للأوامر، وماسح تدفقي لقواعد البيانات الكبيرة، مع توسيع الاختلافات اختياريًا) وFEN. تُدعم عدة رموز: الجبرية، والجبرية الطويلة، وUCI. تغطية نتائج المباراة تشمل كش ملك، والجمود، والاستقالة، وعروض التعادل، والتكرار الثلاثي والخماسي، وقاعدة الخمسين نقلة وقاعدة الخمسة والسبعين نقلة، وعدم كفاية القطع. واجهات برمجة الحركات تأتي في نسخ مُتحقق منها ونسخ عالية الأداء غير آمنة (UnsafeMove، UnsafePushNotationMove)، مع ملاحظة في README عن تسريع حوالي 1.5x و1.1x على التوالي عند تخطي التحقق. حزم إضافية تشمل مولّد صور رقعة الشطرنج بتنسيق SVG، ومستكشف كتب الافتتاح، وعميل واجهة الشطرنج العالمية (UCI) الذي يمكنه تشغيل محركات خارجية مثل Stockfish، كما هو موضح في مثال للعب الذاتي. توفر طريقة Draw() عرض المواقع برموز شطرنج يونيكود. التثبيت عبر go get github.com/corentings/chess/v2. يوثق README المعايير ويذكر أن المكتبة مضبوطة للأداء لاستخدام محتمل من قبل روبوتات الشطرنج. تُحتفظ بها بشكل أساسي لمشاريع المؤلف الخاصة وتُشارك مع المجتمع؛ الترحيب بالمساهمات والقضايا وطلبات السحب.