ในอนาคตเมื่อการเดินทางข้ามเวลา (ตัวย่อเป็น TT) เป็นเรื่องธรรมดาการโยนเหรียญจะกลายเป็นกีฬาที่จริงจัง เพื่อเตรียมความพร้อมสำหรับอนาคตเราได้สร้างการแข่งขันสำหรับรายการที่การเดินทางข้ามเวลาจะเกิดขึ้นจริงจากมุมมองของรายการ
การแข่งขันเป็น King of the Hill แบบกลมซึ่งประกอบด้วยการโยนเหรียญการแข่งขันระหว่างคลาส Java
กฎของการโยนเหรียญที่ตรงกัน
- มีผู้เล่นสองคนและ 100 รอบ
- ในทุก ๆ รอบเหรียญจะถูกโยนและตามผลการแข่งขันหนึ่งคะแนนของผู้เล่น 1 คะแนน ผู้เล่นแต่ละคนมีโอกาส 50% ที่จะทำคะแนนจุด
- หลังจากการโยนผู้เล่นทั้งสองมีโอกาสควบคุมเวลาด้วยการดึงคันโยก
- หากคุณดึงคันโยกสีน้ำเงิน (เปลี่ยนกลับเป็นตัวหยุด) จะไม่สามารถใช้งาน TT กับรอบได้นั่นคือใช้คันโยกหรือรอบก่อนหน้านี้อีกต่อไป TT ความพยายามที่จะไปรอบนี้จะไม่มีผลใด ๆ
- หากคุณดึงคันโยกสีแดง (ตัวแปลงกลับ)คุณพยายามที่จะย้อนเวลากลับไปสู่รอบก่อน หากประสบความสำเร็จหน่วยความจำของฝ่ายตรงข้ามจะถูกเปลี่ยนกลับไปเป็นหน่วยความจำก่อนรอบที่เลือกและผลการโยนเหรียญที่เริ่มต้นจากรอบที่เลือกจะถูกลบด้วย เครื่องหมายเดียวที่เป็นไปได้สำหรับฝ่ายตรงข้ามของคุณเกี่ยวกับ TT คือจำนวนคันโยกที่ไม่ได้ใช้ซึ่งจะไม่เปลี่ยนกลับ
- ผู้เล่นแต่ละคนจะมีคันโยกที่ไม่ได้ใช้สีน้ำเงินและน้ำเงิน 5 อันในช่วงเริ่มต้นการแข่งขัน คันโยกเหล่านี้ไม่ได้รับผลกระทบจาก TT
- หากไม่มี TT เกิดขึ้นในตอนท้ายของรอบที่ 100 เกมจะสิ้นสุดลงและผู้เล่นที่มีคะแนนสูงกว่าจะเป็นผู้ชนะ
รายละเอียด
- รอบมีการจัดทำดัชนีแบบ 1 (แบบฟอร์ม 1 ถึง 100)
- ก่อนออกรอบ
x
คุณจะได้รับจำนวนคันโยกสีน้ำเงินและสีแดงที่มีอยู่เหรียญจะโยนผลลัพธ์จนกว่าจะมีการเปิดx
(รวม) และหน่วยความจำของคุณ (ครั้งสุดท้าย)x-1
รอบที่คุณ - การดึงคันโยกสีน้ำเงินในรอบนั้น
x
จะเป็นการหยุด TT ใด ๆ ที่มีปลายทางในรอบx
หรือก่อนหน้า (จะบล็อก TT ถ้ามันเกิดขึ้นในรอบเดียวกันนั้นเหมือนกัน) - ย้อนกลับไปในรอบหมายความว่ารอบต่อไปจะเป็นรอบ
x
x
- หากผู้เล่นทั้งสองคนเลือกที่จะย้อนกลับเมื่อสิ้นสุดรอบเวลาจะถูกเปลี่ยนกลับไปยังปลายทางก่อนหน้าซึ่งไม่ถูกบล็อก ผู้เล่นที่พยายามย้อนกลับมาในเวลานี้จะเก็บความทรงจำไว้
รายละเอียดทางเทคนิค
- คุณควรเขียนคลาส Java ที่ใช้อินเตอร์เฟส Bot ที่จัดเตรียมไว้
- เพิ่มบอทของคุณไปยังโครงการ
- เพิ่มตัวอย่างของ ธ ปทของคุณไปในแฟ้ม
Bot
Controller.java
- ชั้นของคุณควรจะได้เก็บข้อมูลระหว่างการโทร (ในกรณีส่วนใหญ่ที่มีเพียง
final
ตัวแปรนอกฟังก์ชั่นตรงตามข้อกำหนดนี้) - คุณสามารถให้ข้อมูลกับตัวควบคุมใน
memory
ฟิลด์ของAction
วัตถุที่ส่งคืน สิ่งนี้จะได้รับกลับมาให้คุณในเทิร์นถัดไปหากไม่มี TT เกิดขึ้น หาก TT เกิดขึ้นคุณจะได้รับหน่วยความจำก่อนหน้าของคุณ - คุณสามารถใช้
totalScore()
วิธีการGame
เรียนเพื่อรับคะแนนของสตริงประวัติศาสตร์
มาตรการ
ทุก
takeTurn(...)
วิธีการของคุณถูกเรียกว่ามี 5 อาร์กิวเมนต์:- จำนวนคันโยกสีน้ำเงินที่ไม่ได้ใช้
- จำนวนของคันโยกสีแดงที่ไม่ได้ใช้
- เหรียญที่โยนประวัติความเป็นมาสตริงที่ประกอบด้วย 1 และ 0 ของการทำเครื่องหมายชนะและการสูญเสียของคุณในรอบก่อนหน้า อักขระตัวแรกสอดคล้องกับการโยนเหรียญครั้งแรก (ในรอบแรกความยาวของสตริงจะเป็น
1
) - สตริงหน่วยความจำที่เก็บไว้ของคุณจากรอบก่อนหน้า
- ดัชนีที่ใช้ 1 ของรอบนี้
ทุกครั้งที่เมธอดของคุณส่งคืน
Action
วัตถุที่มีจำนวนเต็มใน
move
ฟิลด์ที่อธิบายถึงการกระทำของคุณ:0
ไม่มีการดำเนินการ-1
เพื่อดึงคันโยกสีน้ำเงินและปิดกั้น TT ที่กำลังผ่านรอบนี้- จำนวนเต็มบวก
x
ซึ่งไม่ใหญ่กว่ารอบปัจจุบันเพื่อดึงคันโยกสีแดงแล้วลองเปลี่ยนกลับเป็นแบบกลมx
0
จำนวนเต็มไม่ถูกต้องจะถือว่าเป็น
สตริงที่มีหน่วยความจำของคุณจากรอบนี้ซึ่งคุณต้องการรักษา โปรดทราบว่าการจัดเก็บหน่วยความจำที่ไม่ได้เป็นส่วนสำคัญของความท้าทาย คุณสามารถสร้างรายการที่ดีได้โดยไม่ต้องเก็บข้อมูลที่เป็นประโยชน์ไว้ในสตริง ในรอบแรกสตริงจะเป็นสตริงว่าง
วิธีการของคุณควรใช้เวลาไม่เกิน 10 ms ต่อรอบโดยเฉลี่ยในการแข่งขัน
- การล้มเหลวของผลการ จำกัด เวลาอย่างสม่ำเสมอเป็นผลให้ถูกตัดสิทธิ์
เกณฑ์การให้คะแนน
- ชนะการแข่งขันจะได้รับ 2 คะแนนและการจับสลากจะได้รับ 1 คะแนนสำหรับผู้เล่นทั้งสอง การสูญเสียไม่ได้รับคะแนน
- คะแนนบ็อตจะเป็นคะแนนรวมทั้งหมดที่รวบรวมไว้
- จำนวนการแข่งขันที่เล่นระหว่างผู้เข้าแข่งขันแต่ละคู่จะขึ้นอยู่กับจำนวนรายการและความเร็ว
บอทตัวอย่างง่าย ๆ สองโพสต์เป็นคำตอบ
ควบคุมและบอทคู่แรกที่มีอยู่ที่นี่
ผลการทดสอบที่ส่งบอทจนถึงวันที่ 3 พฤศจิกายน
คะแนนรวม:
Oldschool: 3163
Random: 5871
RegretBot: 5269
Nostalgia: 8601
Little Ten: 8772
Analyzer: 17746
NoRegretsBot: 5833
Oracle: 15539
Deja Vu: 5491
Bad Loser: 13715
(ตัวควบคุมขึ้นอยู่กับตัวควบคุมความท้าทายของCat catcherขอขอบคุณสำหรับ @flawr ที่ให้เป็นพื้นฐานสำหรับสิ่งนี้)
โบนัส: ภาพยนตร์ 6 นาทีที่ดีตามแนวคิดที่คล้ายกัน
If you pull a blue lever (revert stopper) no TT is possible to the round the lever was used or any earlier round anymore. TT's attempting to go to these rounds will have no effect.
If you pull a blue lever (revert stopper) no TT is possible through that round anymore. TT's attempting to go through the round will have no effect.
"การผ่านรอบ" คืออะไร