แอปพลิเคชันเพื่อสร้างการจัดอันดับพลังงานผ่านอัลกอริทึม Glicko-2
แนวคิดพื้นฐานของแอปพลิเคชันนี้คือการสร้างการจัดอันดับพลังงาน เดิมทีมีไว้สำหรับการแข่งขัน Super Smash Bros. Melee สำหรับ Nintendo GameCube, GGScore สามารถสร้าง PRS สำหรับทุกวินัยในการแข่งขันซึ่งทั้งสองฝ่ายแข่งขันกัน การให้คะแนนถูกสร้างขึ้นผ่านอัลกอริทึม Glicko-2
การสร้างพร้อมไปสามารถพบได้ใน Dropbox นี้
แนวคิดทั่วไปในการใช้เครื่องมือนี้คือการนำเข้าทัวร์นาเมนต์จาก Challonge.com สำหรับสิ่งนี้คุณจะต้องมีคีย์ API นักพัฒนาจากบัญชี Challonge ของคุณ จากนั้นชื่อ/นามแฝงของผู้เล่นจากฉากของทัวร์นาเมนต์จะต้องเชื่อมโยงกับผู้เล่น คุณสามารถเชื่อมโยงนามแฝงกับผู้เล่นที่มีอยู่หรือสร้างใหม่ (เมื่อนำเข้าทัวร์นาเมนต์แรกคุณจะต้องสร้างผู้เล่นใหม่ทั้งหมดแน่นอน) ผลลัพธ์ซึ่งประกอบด้วยผู้ชนะผู้แพ้และวันที่ของการแข่งขันจะถูกเพิ่มลงในตารางใน "รายงานการจับคู่" -Tab และสามารถลบออกด้วยตนเอง (หรือเพิ่ม) หากจำเป็น เมื่อคุณนำเข้าผลลัพธ์คุณต้องป้อนระยะเวลาการจัดอันดับ อัลกอริทึมจะคำนึงถึงผลลัพธ์ที่เกิดขึ้นภายในระยะเวลาการจัดอันดับเท่านั้น ขอแนะนำให้ให้ผู้เล่นมีอย่างน้อย 10-15 เกมในระยะเวลาการจัดอันดับเพื่อให้คะแนนถูกต้อง (โดยเฉพาะอย่างยิ่งสำหรับระยะเวลาการจัดอันดับแรก) หาก "รายงานการจับคู่" ได้รับการจัดกลุ่มมากเกินไปคุณสามารถใช้ "การจัดอันดับสุดท้าย"-ตัวเลือกใน "ช่วงเวลาการจัดอันดับ" -TAB (ที่แสดง PR จริงเช่นกัน) เพื่อล้างตารางที่แสดงผลลัพธ์และระยะเวลาการจัดอันดับ นอกจากนี้ยังหมายความว่าคุณจะไม่สามารถลบ/เพิ่มผลลัพธ์จากระยะเวลาการจัดอันดับที่มีอยู่ก่อนที่จะเสร็จสิ้นแม้ว่า (ทำให้การจัดอันดับเสร็จสิ้นจนถึงจุดนั้น) อย่างไรก็ตามคุณสามารถเพิ่ม/ลบและนำเข้าผลลัพธ์ได้ตั้งแต่นั้นมาก่อน
โปรดทราบว่ามีเพียงผลลัพธ์ภายในระยะเวลาการจัดอันดับเท่านั้นที่จะใช้ในการคำนวณการจัดอันดับ นอกจากนี้ผลลัพธ์ทั้งหมดภายในระยะเวลาการจัดอันดับจะถูกมองว่าเกิดขึ้นทันที (โดยคำจำกัดความของอัลกอริทึม Glicko-2) นั่นหมายความว่าหากคุณสร้างผู้เล่นทั้งหมดที่มีค่าเริ่มต้นเดียวกัน (การใช้งานที่ตั้งใจไว้) จะมีการจับคู่ของคนที่มีค่าเท่ากันเท่านั้น ดังนั้นหากมีการประชาสัมพันธ์เช่นนี้โดยมีระยะเวลาการให้คะแนนเพียงครั้งเดียวในปัจจุบันและผู้เล่นทุกคนเริ่มต้นด้วยคะแนนคะแนน 1,500 คะแนนและคุณป้อนผลของผู้เล่น 1,000 คนที่ได้รับคะแนน 1,000 คนที่ชนะกับผู้เล่น (ปัจจุบัน) 2000 การคำนวณทั้งหมดสำหรับช่วงเวลานั้นจะถูกทำซ้ำ ดังนั้นช่วงเวลาแรกคือการได้รับแนวคิดทั่วไปเกี่ยวกับค่าการจัดอันดับและความอัปยศอดสูจะมีอิทธิพลน้อยลง นี่อาจเป็นพฤติกรรมที่พบได้บ่อยสำหรับอัลกอริทึมการจัดอันดับ เพื่อหลีกเลี่ยงสิ่งนี้คุณจะต้องจัดหาค่าเริ่มต้นที่ถูกต้อง แต่ผู้ใช้โดยเฉลี่ยอาจไม่ควร (ฉันจะไม่)
แอปพลิเคชันนี้ประกอบด้วยสองโมดูล: Glicko-2 API ซึ่งให้อัลกอริทึม Glicko-2 และ GUI ที่ให้ผู้ใช้ใช้วิธีการใช้ API และแสดงภาพผลลัพธ์ของการคำนวณ นอกจากนี้ยังเชื่อมโยงรหัสของผู้เล่น Glicko กับนามแฝงของพวกเขา
Glicko-2 API ประกอบด้วยชั้นเรียนต่าง ๆ เพื่อตั้งค่าเงื่อนไขที่จำเป็นในการใช้อัลกอริทึมและแน่นอนอัลกอริทึมเอง:
GUI ใช้หมายถึงผู้ใช้ในการใช้ API และแสดงผลลัพธ์ของอัลกอริทึม นอกจากนี้ยังจัดการนามแฝงของผู้เล่นเชื่อมโยงพวกเขากับ ID ของ glicko-counterpart ของพวกเขา นอกจากนั้นยังสร้างผลลัพธ์ทั้งหมด (โดยใช้คลาส Glicko-hesult) และช่วยให้พวกเขาพร้อมกับวันที่พวกเขาถูกป้อนเพื่อเกิดขึ้น
Glicko-2 API ใช้อัลกอริทึมกับผู้เล่นที่มีอยู่โดยมีผลลัพธ์ใดก็ตามที่ส่งผ่านไป ดังนั้นระยะเวลาการจัดอันดับจะถูกนำไปใช้ที่นี่เช่นกันเพื่อรวมผลลัพธ์และมอบให้กับอัลกอริทึม
จะดำเนินการต่อ ...
หากคุณสร้างแอปพลิเคชันตามที่ได้จากการซื้อคืนนี้รูปแบบวันที่จะเป็น dd.mm.yyy ซึ่งสามารถเปลี่ยนแปลงได้ในไฟล์ globalvars.h "defaultFormatString" สามารถเปลี่ยนแปลงได้โดยใช้ตัวระบุที่แสดงที่นี่ รูปแบบวันที่มาตรฐานของสหรัฐอเมริกาจะเป็น "%m/%d/%y" และสามารถพบบิลด์ใน Dropbox
การเปลี่ยนรูปแบบวันที่สามารถทำได้โดยไม่ต้องกังวลเกี่ยวกับไฟล์บันทึก (ส่วนใหญ่เป็นผล json เป็นเพียงวันเดียวที่บันทึก) วันที่จะถูกบันทึกไว้ในรูปแบบ ISO 8601 เสมอและแสดงเฉพาะตามที่อธิบายโดยค่าเริ่มต้น
แอปพลิเคชันนี้ใช้ APIs สองสามตัวซึ่งจะต้องสร้างและเชื่อมโยงก่อนที่คุณจะสามารถสร้างโครงการนี้ได้ API ที่จำเป็นคือ 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 API เท่านั้นที่เชื่อมโยงกันแบบไดนามิก (อีกครั้งเพียงแค่พูดถึงไฟล์โครงการที่ให้มา)