ยินดีต้อนรับสู่ Code Bots 2!
คุณได้เรียนรู้บทเรียนของคุณตั้งแต่รหัสบอทสุดท้าย คุณได้พยายามหาวิธีเพิ่มเติมเพื่อให้เหมาะกับการกระทำที่มากขึ้นโดยใช้บรรทัดน้อยลงและในที่สุดคุณก็มีมันแล้ว คุณกำลังจะสร้าง Code Bot ที่ขับเคลื่อนด้วยเหตุการณ์
บอตของคุณต้องประกอบด้วย 24 บรรทัด แต่ละบรรทัดมีหนึ่งในสองรูปแบบ:
Condition:Action
หรือ
Action
บอทของคุณยังมีการจัดเก็บพอที่จะเก็บ 5 จำนวนเต็มชื่อผ่านA
E
จำนวนเต็มสามารถเก็บค่าได้ตั้งแต่ 0 ถึง 23
ทุกเทิร์นคุณจะสามารถใช้งานไลน์C
ได้เว้นแต่จะมีเงื่อนไขข้อใดข้อหนึ่งเป็นจริง ถ้าเป็นเช่นนั้นC
จะมีหมายเลขบรรทัดของเงื่อนไขที่เป็นจริงจากนั้นบรรทัดนั้นจะถูกดำเนินการ ในตอนท้ายของแต่ละเทิร์นC
จะเพิ่มขึ้น
มีเงื่อนไขที่มีอยู่:
Start
เป็นจริงในเทิร์นแรกเท่านั้น คุณต้องมีสิ่งนี้ในรหัสของคุณทันทีBotAt(N)
เป็นจริงถ้ามีบอตที่ตำแหน่งที่กำหนดโดย NEquals(A,B)
เป็นจริงถ้า A เท่ากับ B พวกเขาสามารถเป็นประเภทที่แตกต่างกันถ้าเป็นเช่นนั้นพวกเขาจะไม่เท่ากันModified(A)
เป็นจริงหากA
ถูกคัดลอกไปยังในเทิร์นสุดท้ายA
ต้องเป็นชื่อตัวแปรบรรทัดหรือเงื่อนไขAny(C1,C2,...)
เป็นจริงถ้าเงื่อนไขใด ๆ เป็นจริงNone(C1,C2,...)
เป็นจริงหากไม่มีเงื่อนไขใดเป็นจริงAll(C1,C2,...)
เป็นจริงถ้าเงื่อนไขทั้งหมดเป็นจริงNot(C)
เป็นจริงถ้า C เป็นเท็จC
ต้องเป็นเงื่อนไข
ตัวแปรสามารถอยู่ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้ 9 ตัวแรกเป็นตัวเลขและสามารถใช้ได้เมื่อใดก็ตามที่มีการใช้ N ในหน้านี้
A
,B
,C
,D
,E
- ตัวเลขตั้งแต่ 0 ถึง 23
This
จะส่งคืนหมายเลขบรรทัดที่มีอยู่ในปัจจุบันAdd(N1,N2,...)
จะส่งคืนผลรวมของค่าทั้งหมดSub(N1,N2)
จะกลับ N1 ลบ N2Mult(N1,N2,...)
จะส่งคืนผลิตภัณฑ์ของค่าทั้งหมดDiv(N1,N2)
จะกลับ N1 หารด้วย N2Mod(N1,N2)
จะกลับ N1 mod N2OVar(N)
จะยอมรับชื่อตัวแปรและจะคืนค่าตัวแปรของคู่ต่อสู้Line(N)
จะส่งคืนบรรทัดที่ N ในรหัสของคุณType(N)
จะส่งคืนประเภทบรรทัด Nth ในรหัสของคุณ (ประเภทคือชื่อของการกระทำ)Cond(N)
จะส่งคืนเงื่อนไขในบรรทัด NthCondType(N)
จะส่งคืนชนิดเงื่อนไขบนบรรทัด Nth (ชนิดคือชื่อของเงื่อนไข)OLine(N)
จะส่งคืนบรรทัดที่ N ในโค้ดของคู่ต่อสู้ของคุณOType(N)
จะส่งคืนประเภทบรรทัด Nth ในรหัสของฝ่ายตรงข้ามOCond(N)
จะส่งคืนเงื่อนไขในบรรทัด NthOCondType(N)
จะคืนค่าชนิดเงื่อนไขบนบรรทัด Nth
A
และB
เพื่อการใช้งานส่วนตัวของคุณใช้C
เพื่อกำหนดว่าบรรทัดใดที่จะดำเนินการในโค้ดของคุณและD
ใช้เป็นทิศทาง ค่าแต่ละค่าของการD
อ้างอิงถึงสแควร์และทิศทางที่แตกต่างกัน E
สร้างค่าสุ่มในแต่ละครั้ง D
และจะได้รับการเริ่มต้นเป็นค่าสุ่มมิฉะนั้นE
0
[North,East,South,West][D%4]
ทิศทางที่ใช้จะเป็น ฝ่ายตรงข้ามของคุณคือบอทในจตุรัสทันทีในทิศทางนั้น
คุณสามารถดำเนินการได้ 4 การกระทำ:
Move
จะย้ายคุณไปข้างหน้า 1 ตารางไปในD
ทิศทางที่ หากมีบอทอยู่ที่นั่นคุณจะไม่ย้ายCopy(A,B)
จะคัดลอกตัวแปรที่จะA
ไม่สามารถเป็นค่าตัวเลขได้ยกเว้นชื่อตัวแปร และไม่สามารถเป็นประเภทที่แตกต่างกัน การคัดลอกบรรทัดไม่ได้คัดลอกเงื่อนไขB
B
A
B
Flag
ไม่ทำอะไรเลย บอทที่มีค่าสถานะมากที่สุดในรหัสของคุณจะได้รับคะแนน บอทที่มีคะแนนมากที่สุดชนะIf(C,L1,L2)
จะดำเนินการในสายL1
ถ้าเป็นจริงจะดำเนินการอื่นC
ๆ เป็นเงื่อนไขและและจะต้องเป็นเส้นL2
C
L1
L2
รูปภาพขนาดใหญ่
บอททุก 50 สำเนาจะถูกวางไว้ในโลก เป้าหมายของคุณคือการทำให้ธงของคุณเป็นบอทมากที่สุด สำหรับบ็อตแต่ละตัวที่มีประเภทธงของคุณมากกว่าประเภทธงอื่น ๆ คุณจะได้รับคะแนน
บอทจะถูกวางไว้ดังนี้:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
จะมีการวิ่ง 10 เกมและคะแนนจะได้รับการเฉลี่ยในทุกเกมโดยพิจารณาว่าใครเป็นผู้ชนะ
หมายเหตุด้านข้าง
หากมีการใช้หลายเงื่อนไขStart
จะมีการดำเนินการเงื่อนไขที่ immedately มากที่สุดดังนี้
บอทจะถูกบรรจุอย่างใกล้ชิด แต่คุณจะไม่เริ่มใกล้กับบ็อตอื่น (มันจะเป็นรูปแบบเดียวกับ CodeBots ล่าสุด)
เนื่องจากความท้าทายนี้ไม่ได้โพสต์ไว้ในกล่องทราย (เพื่อให้ไม่มีใครได้เปรียบ) ฉันขอสงวนสิทธิ์ในการเปลี่ยนแปลงรายละเอียดเล็กน้อยเพื่อความเป็นธรรมหรือความสามารถเพิ่มเติม นอกจากนี้หากมีข้อผิดพลาดในนักวิ่ง CodeBots ฉันจะเปลี่ยนมันแม้ว่าบอทจะขึ้นอยู่กับข้อบกพร่องนั้นเพื่อความสำเร็จ ฉันพยายามที่จะยุติธรรมเท่าที่จะทำได้
If
งบเรียกซ้ำจะไม่ถูกดำเนินการ
หากบอทของคุณสั้นกว่า 24 บรรทัดบรรทัดที่เหลือจะถูกเติมด้วย Flag
จำไว้ว่าเมื่อคัดลอกไปยังของคุณเองC
ที่C
เพิ่มขึ้นในตอนท้ายของตาคุณ
ล่าม CodeBots สามารถพบได้ที่นี่ มันมีไฟล์. jar สำหรับการดำเนินการที่ง่าย เพียงเพิ่มบอตของคุณไปยังโฟลเดอร์บอท
คะแนน
- 893.9 Borg
- 1.3 LazyLioness
- 0.9 ผู้พิทักษ์
- 0.5 Flagger
- 0.4 CliqueBot
- 0.4 ร้ายกาจ
- 0.3 ผู้โจมตี
- 0.3 Gard
- 0.3 SingleTarget
- 0.2 แช่แข็ง
- 0.2 Sentinel
- 0.2 Driveby
- 0.0 AntiInsidious
- 0.0 MoveBot
- 0.0 CliqueBorg
- 0.0 เครื่องคิดเลข
- 0.0 TestBot
- 0.0 ผู้ลอกเลียนแบบ
UPDATE
เส้นรหัสหมุนตอนนี้เมื่อคุณดูรหัสของคู่ต่อสู้ นั่นหมายความว่าสาย 1 ของคู่ต่อสู้ของคุณอาจเป็นสาย 14 (หรือเส้นใดก็ได้) บอทจะได้คงชดเชยซึ่งจะชดเชยเส้นของเขาโดยX
จำนวนเงินที่เมื่อมองจากฝ่ายตรงข้าม C
ตัวแปรของฝ่ายตรงข้ามจะถูกชดเชยด้วยX
จำนวน เดียวกัน X
จะไม่เปลี่ยนแปลงภายในเกมเดียวกัน แต่จะเปลี่ยนจากเกมเป็นเกม