มีสคริปต์ยูทิลิตี้ต่าง ๆ ที่ฉันใช้เพื่อให้การแข่งขัน Challonge Tournament ง่ายขึ้น (โดยเฉพาะสำหรับ Super Smash Bros. Melee)
ตัวอย่างทั้งหมดจะถูกเรียกใช้จากที่เก็บเวอร์ชันที่ดาวน์โหลดมา
# After creating a local tourney at https://challonge.com/mtvmelee77,
# I want to seed participants based on their Google MTV gaR PR rankings, and shuffle
# the bracket a bit while preserving each participant's projected placement.
python3 garpr_seeds_challonge.py mtvmelee77 --shuffle --region=googlemtv
# Then later on in the local, after loser's round 2 has finished, I want
# to create an amateur bracket automatically, so I don't have to spend time
# manually entering in each participant.
python3 create_amateur_bracket.py mtvmelee77
# Once that amateur bracket is created, it's available at
# https://challonge.com/mtvmelee77_amateur. The amateur bracket will use the
# same seedings as the original bracket by default, but I want to vary up the
# matches, so I run shuffled gaR PR seeds on the bracket again.
python3 garpr_seeds_challonge.py mtvmelee77_amateur --shuffle --region=googlemtvสคริปต์เหล่านี้ใช้ Python 3 และไม่เข้ากันกับ Python 2 หากคุณพบปัญหาใด ๆ ที่ตั้งค่านี้คุณสามารถเปิดปัญหาใหม่ได้ที่นี่
git clone https://github.com/akbiggs/challonge-tools
cd challonge-tools
python3 -m venv challonge_tools_env
source challonge_tools_env/bin/activate
pip install -r requirements.txt
แก้ไขสำเนาของ challonge.ini ในพื้นที่ของคุณด้วยชื่อผู้ใช้ Challonge และรหัส API ของคุณ
เรียกใช้สคริปต์ที่คุณอยากลอง!
python3 <script_to_run>.py
garpr_seeds_challonge.py : เมล็ดพันธุ์การแข่งขันตามการจัดอันดับ GAR PR
ชื่อที่ไม่รู้จักใด ๆ จะได้รับการเพาะในสถานที่สุดท้าย (ตามลำดับการปรากฏตัวดั้งเดิมของพวกเขาในรายการการเพาะ) กรณีถูกละเว้นในชื่อ
$ python3 garpr_seeds_challonge.py 32w50dxc
Tournament updated; see seeds at http://challonge.com/32w50dxc/participants.
คุณสามารถเปลี่ยนภูมิภาคโดยใช้ธง --region ภูมิภาค
$ python3 garpr_seeds_challonge.py 32w50dxc --region=googlemtv
Tournament updated; see seeds at http://challonge.com/32w50dxc/participants.
ธง:
--region=norcal : ภูมิภาคที่ใช้เพื่อรับการจัดอันดับ GAR ค่าเริ่มต้น: norcal--print_only=False : ตั้งค่าเป็น True ถ้าคุณต้องการพิมพ์เมล็ดพันธุ์ใหม่โดยไม่ต้องมอบให้กับการแข่งขัน สิ่งนี้มีประโยชน์สำหรับการทดสอบก่อนที่คุณจะกลับมาทัวร์นาเมนต์ของคุณ ค่าเริ่มต้น: False--shuffle=False : ตั้งค่าเป็น True หากคุณต้องการสับเปลี่ยนเมล็ดหลังจากนั้นในขณะที่ยังคงรักษาตำแหน่งที่คาดการณ์ไว้ของผู้เข้าร่วมแต่ละคน สิ่งนี้จะช่วยแนะนำความแปรปรวนเล็กน้อยในวงเล็บ ค่าเริ่มต้น: False--config_file=challonge.ini : ไฟล์กำหนดค่าเพื่ออ่านข้อมูลรับรอง Challonge ของคุณจาก สิ่งนี้มีประโยชน์ในการลดความเสี่ยงของการกระทำของคุณโดยไม่ตั้งใจในการควบคุมแหล่งที่มา ค่าเริ่มต้น: challonge.ini garpr_seeds.py : รับเมล็ดโดยไม่ใช้ challonge api
มีประโยชน์สำหรับการทดสอบการจัดอันดับโดยไม่มีทัวร์นาเมนต์จริง
$ python3 garpr_seeds.py "Eden, Bryan, Non-gaR PR Person, Admiral"
[3, 2, 4, 1]
shuffle_seeds_challonge.py : shuffles seeds ในทัวร์นาเมนต์ Challonge
ฟังก์ชั่นเหล่านี้ช่วยให้คุณสลับวงเล็บในขณะที่ยังคงรักษาตำแหน่งที่คาดการณ์ไว้ของผู้เข้าร่วมแต่ละคนในตอนท้ายของการแข่งขัน สิ่งนี้จะช่วยให้ทัวร์นาเมนต์แบบสุ่มในขณะที่ยังคงรักษาความสมดุลไว้เมื่อเทียบกับ "เมล็ดสลับ" ของ Challonge ซึ่งเพียงแค่สุ่มทุกอย่าง
$ python3 shuffle_seeds_challonge.py zcmvlkxm
Seeds shuffled: http://challonge.com/zcmvlkxm/participants
อัปเดตการเพาะเมล็ดของผู้เข้าร่วมทั้งหมดโดยอัตโนมัติตามลำดับการสับเปลี่ยนที่สร้างขึ้น
ธง:
--config_file=challonge.ini : ไฟล์กำหนดค่าเพื่ออ่านข้อมูลรับรอง Challonge ของคุณจาก สิ่งนี้มีประโยชน์ในการลดความเสี่ยงของการกระทำของคุณโดยไม่ตั้งใจในการควบคุมแหล่งที่มา ค่าเริ่มต้น: challonge.ini shuffle_seeds.py : shuffles seeds โดยไม่ต้องใช้ challonge api
สิ่งนี้มีประโยชน์เมื่อคุณไม่สามารถเข้าถึงการเชื่อมต่ออินเทอร์เน็ตหรือเมื่อคุณต้องการทดสอบการสุ่ม
$ python3 shuffle_seeds.py 9
[1, 2, 3, 4, 6, 5, 8, 7, 9]
ส่งคืนคำสั่งขายการสับใหม่สำหรับการแข่งขันที่มีผู้เข้าร่วมจำนวนมาก แต่ละหมายเลขระบุว่าควรแสดงรายการเมล็ดที่สอดคล้องกัน
$ python3 shuffle_seeds.py "Neal, Bryan, Paragon, gaR, Admiral Lightning Bolt, Eden"
['Neal', 'Bryan', 'Paragon', 'gaR', 'Eden', 'Admiral Lightning Bolt']
ส่งคืนคำสั่งซื้อใหม่ของผู้เข้าร่วมจากรายชื่อผู้เข้าร่วม ผู้เข้าร่วมควรได้รับคำสั่งจากเมล็ดพันธุ์ที่ 1 ถึงเมล็ดสุดท้าย พื้นที่นำและต่อท้ายในชื่อผู้เข้าร่วมจะถูกถอดออก
create_amateur_bracket.py : สร้างทัวร์นาเมนต์สมัครเล่นโดยอัตโนมัติจากการแข่งขัน Challonge ที่มีอยู่
ทัวร์นาเมนต์สมัครเล่นพาคนที่อยู่ต่ำกว่าเกณฑ์ที่กำหนดและจัดทัวร์นาเมนต์แยกต่างหากสำหรับพวกเขาหลังจากการแข่งขันหลัก สิ่งนี้ช่วยให้ผู้คนได้รับการฝึกฝนมากขึ้นและมีความสนุกสนานมากขึ้นโดยเฉพาะในเกมที่มีช่วงการเรียนรู้ที่บดบังจิตวิญญาณเช่น Melee
$ python3 create_amateur_bracket.py mtvmelee72
ตรวจสอบ http://challonge.com/mtvmelee72 และเสนอให้สร้างวงเล็บสมัครเล่นโดยใช้ผู้คนที่ถูกกำจัดในรอบ 1 และ 2
เครื่องมือจะได้รับการอนุมัติของคุณก่อนที่มันจะสร้างอะไรและมันจะไม่ทำอะไรเลยถ้ามีวงเล็บสมัครเล่นอยู่แล้ว มันจะไม่แก้ไขข้อมูลทัวร์นาเมนต์ที่มีอยู่ของคุณ
ตัวอย่างเซสชันด้วยเครื่องมือนี้:
ธง:
--use_double_elimination=True : ไม่ว่าจะเป็นวงเล็บสมัครเล่นควรใช้การกำจัดสองครั้งหรือการกำจัดเดี่ยว ค่าเริ่มต้น: True--randomize_seeds=False : ไม่ว่าจะเป็นวงเล็บสมัครเล่นควรสุ่มเมล็ดอย่างสมบูรณ์หรือใช้การเพาะจากวงเล็บหลักเพื่อหาพวกเขา ค่าเริ่มต้น: False--losers_round_cutoff=2 : รอบของผู้แพ้หลังจากที่คนที่ถูกกำจัดไม่มีคุณสมบัติสำหรับวงเล็บสมัครเล่นอีกต่อไป ค่า 2 หมายถึงการรวมรอบ 1 และ 2 ของผู้แพ้ แต่ไม่ใช่รอบ 3 ของผู้แพ้ค่าเริ่มต้น: 2--associate_challonge_accounts=False : บัญชี Challonge ของผู้ใช้ควรเชื่อมโยงกับรายการของพวกเขาในวงเล็บสมัครเล่นหรือไม่ สิ่งนี้มีประโยชน์ที่จะช่วยให้พวกเขาติดตามทัวร์นาเมนต์ทั้งหมดที่พวกเขาเข้ามา แต่มันก็ทำให้วงเล็บสมัครเล่นส่งอีเมลถึงพวกเขาดังนั้นใช้อย่างรับผิดชอบเมื่อสร้างวงเล็บสมัครเล่น เครื่องมือจะแจ้งให้คุณทราบว่าบัญชีของพวกเขาจะถูกส่งอีเมลหรือไม่ ค่าเริ่มต้น: False--config_file="challonge.ini" : ไฟล์กำหนดค่าเพื่ออ่านคีย์ API ของ Challonge API และชื่อผู้ใช้จาก ค่าเริ่มต้น: "challonge.ini"เช่น
$ python3 create_amateur_bracket.py mtvmelee72
--config_file=akbiggs_challonge.ini
--use_double_elimination=False
parse_challonge_config.py : เครื่องมือนักพัฒนาสำหรับรับข้อมูลรับรอง Challonge จากไฟล์กำหนดค่า
คีย์ Challonge API เป็นสิ่งที่คุณต้องการเก็บเป็นความลับ ฉันตั้งค่าเครื่องมือนี้เพื่อให้คุณสามารถแยกวิเคราะห์ข้อมูล challonge ของคุณจากไฟล์กำหนดค่าที่สามารถละเว้นได้จาก GIT repo ของคุณแทนการเข้ารหัสเป็นรหัสของคุณ
ดู challonge.ini สำหรับไฟล์กำหนดค่าตัวอย่างพร้อมคำแนะนำ
$ python3 parse_challonge_config.py my_challonge.ini
{ user: 'blah', api_key: 'not telling' }
ก่อนที่จะทำการทดสอบคุณจะต้องเริ่มต้นค้างคาว:
git submodule update --init --recursive
หลังจากนั้นเพียงแค่เรียกใช้ test.sh เพื่อเรียกใช้การทดสอบหน่วยทั้งหมด:
./test.sh