تطبيق لإنشاء تصنيفات الطاقة عبر خوارزمية Glicko-2.
الفكرة الأساسية لهذا التطبيق هي إنشاء تصنيفات للطاقة. مخصص في الأصل لـ Super Smash Bros. Melee لـ Nintendo GameCube ، فإن GGSCORE قادر على إنشاء PRS لكل الانضباط التنافسي يتنافس فيهما على بعضهما البعض. يتم إنشاء التصنيفات عبر خوارزمية Glicko-2.
يمكن العثور على بناء جاهز للتنقل في صندوق Dropbox هذا.
الفكرة العامة لاستخدام هذه الأداة هي عن طريق استيراد البطولات من challonge.com. لهذا ستحتاج إلى مفتاح API للمطور من حساب challonge الخاص بك. ثم يجب أن ترتبط أسماء/الأسماء المستعارة للاعبين من مجموعات البطولة بالاعبين. يمكنك إما ربط الاسم المستعار مع لاعب حالي أو إنشاء لاعب جديد (عند استيراد البطولة الأولى ، سيتعين عليك إنشاء جميع اللاعبين الجدد بالطبع). ستتم إضافة النتائج ، التي تتكون من الفائز ، الخاسر وتاريخ المباراة ، إلى الجدول في "تقرير المطابقة" -TAB ويمكن إزالته يدويًا (أو إضافته) ، إذا كان ضروريًا. بمجرد استيراد نتائجك ، عليك إدخال فترة تصنيف. سوف تأخذ الخوارزمية فقط النتائج في الاعتبار التي حدثت خلال فترة التصنيف. من المستحسن السماح للاعب بالحصول على ما لا يقل عن 10 إلى 15 لعبة في فترة التصنيف لجعل التصنيف دقيقًا (خاصةً لفترة التصنيف الأولى). إذا تم تجميع "تقرير المطابقة" للغاية ، فيمكنك استخدام "التصنيفات" في "فترات التصنيف" -TAB (حيث يتم عرض العلاقات العامة الفعلية أيضًا) لمسح الجداول التي تعرض النتائج وفترات التصنيف. هذا يعني أيضًا أنك لن تتمكن من إزالة/إضافة نتائج من فترات التصنيف الموجودة قبل الانتهاء (وبالتالي اللمسات الأخيرة على التصنيفات حتى تلك النقطة). ومع ذلك ، يمكنك إضافة/إزالة واستيراد النتائج كما كان من قبل من ذلك الحين.
ضع في اعتبارك أنه سيتم استخدام النتائج فقط خلال فترة التصنيف لحساب التصنيف. كما ينظر إلى جميع النتائج خلال فترة التصنيف على أنها تحدث في وقت واحد (من خلال تعريف خوارزمية Glicko-2). هذا يعني أنه إذا قمت بإنشاء جميع اللاعبين الذين لديهم نفس قيم البداية (الاستخدام المقصود) ، فلن تكون هناك فقط تطابقات للأشخاص الذين لديهم نفس القيم بالضبط. لذلك ، إذا كان هناك علاقات عامة مثل هذا مع فترة تصنيف واحدة فقط وبدأ جميع اللاعبين بـ 1500 نقطة تصنيف ودخلت نتيجة لاعب (حاليًا) من تصنيف 1000 فوز على لاعب (حاليًا) في عام 2000 ، سيتم تكرار الحساب الكامل لتلك الفترة ويتم تحديد هذه النتيجة في 1500 لاعب مقابل 1500 لاعب. وبالتالي فإن الفترة الأولى تتمثل في الحصول على فكرة عامة عن قيم التقييم والاضطرابات سيكون لها تأثير أقل. ربما يكون هذا سلوكًا شائعًا جدًا لخوارزمية التصنيف. لتجنب ذلك ، يجب عليك توفير قيم بدء دقيقة ، ولكن ربما لا ينبغي للمستخدم العادي (لن أفعل).
يتكون هذا التطبيق من وحدتين: GLICKO-2 API ، الذي يوفر خوارزمية GLICKO-2 و GUI لتزويد المستخدم بوسائل لاستخدام واجهة برمجة التطبيقات وتصور نتائج الحسابات. كما أنه يربط معرفات اللاعبين الجليديين مع أسماء المستعار.
يتكون API Glicko-2 من فئات مختلفة لإعداد الشروط المطلوبة لتطبيق الخوارزمية وبالطبع الخوارزمية نفسها:
تعني واجهة المستخدم الرسومية للمستخدم استخدام واجهة برمجة التطبيقات وعرض نتائج الخوارزمية. كما أنه يدير اسم الأسماء المستعارة للاعبين ، وربطهم بمعرف glicko-counterpart. إلى جانب أنه يخلق جميع النتائج (باستخدام فئة Glicko-Rensult) ويحفظها مع التاريخ الذي تم فيه حدوثه.
يطبق API Glicko-2 فقط الخوارزمية على اللاعبين الحاليين مع أي نتائج يتم نقلها إليها. لذلك يتم تنفيذ فترات التقييم هنا لحزم النتائج ومنحها للخوارزمية.
يتبع...
إذا قمت بإنشاء التطبيق كما هو الحال من هذا الريبو ، فسيكون تنسيق التاريخ dd.mm.yyyy ، والذي يمكن تغييره في ملف GlobalVars.H. يمكن تغيير "DefaultFormatString" باستخدام المحددات الموضحة هنا. سيكون تنسيق تاريخ الولايات المتحدة القياسي "٪ m/٪ d/٪ y" ويمكن العثور على بناء في Dropbox.
يمكن تغيير تنسيق التاريخ دون القلق بشأن ملفات الحفظ (بشكل رئيسي النتائج. json ، كونها التواريخ الوحيدة لتوفير). يتم حفظ التواريخ دائمًا بتنسيق ISO 8601 وعرضها فقط كما هو موضح من خلال القيمة الافتراضية.
يستخدم هذا التطبيق بعض واجهات برمجة التطبيقات التي يجب بناؤها وربطها قبل أن تتمكن من إنشاء هذا المشروع. واجهات برمجة التطبيقات المطلوبة هي WXWidgets و JSONCPP و LIBCURL (المستخدمة 7.62.0 المستخدمة ، ولكن يجب أن يعمل الآخرون بالطبع ، ولكن سيتعين عليك تغيير المسار في ملف المشروع المقدم ، إذا كنت ترغب في استخدامه). تتطلب ملفات مشروع Visual Studio الموردة أن بنية المجلد التالية لبناء التطبيق بنجاح:
└── ┐
├── GGScore
│ └── .git
│ └── PR Tool
├── wxWidget
│ ├── lib
│ └── include
├── jsoncpp-master
│ └── dist
└── curl-7.62.0
├── include
└── lib
ترتبط واجهات برمجة التطبيقات هذه بشكل ثابت ، فقط API GLICKO-2 مرتبط ديناميكيًا (مرة أخرى ، فقط يتحدث عن ملف المشروع المقدم).