รหัสบอท
ฉันเกลียดตัวแปรที่เป็นส่วนตัวและมีการป้องกัน ฉันแค่ต้องการเข้าถึงทุกสิ่ง!
หากคุณเป็นเหมือนฉันความท้าทายนี้เหมาะสำหรับคุณ!
เขียนบอทที่ทำงานร่วมกันอย่างกลมกลืนกับบ็อตอื่นทำให้บอทอื่นทำในสิ่งที่คุณต้องการ คุณเป็นโปรแกรมเมอร์และคุณรู้ว่าสิ่งต่าง ๆ ควรทำงานอย่างไร งานของคุณคือแปลงบ็อตอื่น ๆ ให้เป็นไปตามที่คุณต้องการ
รหัส
คุณจะมีรหัส 24 บรรทัดในการเขียนบอทของคุณ ทุกเทิร์นทุกบอทจะรัน 1 บรรทัดตามลำดับ
แต่ละบอเก็บ 5 ตัวแปรผ่าน A
และสำหรับการใช้งานส่วนตัวเก็บบรรทัดถัดไปเพื่อดำเนินการจัดเก็บทิศทางปัจจุบันและเป็นตัวเลขสุ่ม ตัวแปรเริ่มต้นที่ 0 ยกเว้นซึ่งจะเริ่มต้นด้วยค่าสุ่ม ตัวแปรทั้งหมดมีการจัดเก็บ 0-23 เท่านั้น ตัวเลขที่ใหญ่กว่าหรือเล็กกว่าจะถูกปรับด้วย 24E
A
B
C
D
E
D
ในโพสต์นี้ฉันจะใช้คู่ต่อสู้เป็นบอทที่อยู่ติดกันที่คุณเผชิญ
แต่ละบรรทัดต้องมีหนึ่งใน 5 คำสั่งต่อไปนี้:
Flag
ไม่ทำอะไรเลย ยกเว้นว่าเป็นวิธีการที่คุณชนะMove
ย้ายบอทของคุณไปในD
ทิศทางที่ หากบอทครอบครองพื้นที่แล้วจะไม่มีการเคลื่อนไหวเกิดขึ้นCopy Var1 Var2
คัดลอกเนื้อหาของ Var1 ลงใน Var2If Condition Line1 Line2
ถ้า Condition เป็น true ให้เรียกใช้ Line1 หรือ Line2Block Var1
บล็อกการเขียนครั้งต่อไปของตัวแปร
ตัวแปรสามารถใช้ดังนี้:
#Var
จะใช้ตัวแปรเป็นหมายเลขบรรทัด ถ้าA
เป็น 17 Copy #8 #A
จะคัดลอกเนื้อหาของบรรทัดที่ 8 ไปยังบรรทัดที่ 17
*Var
จะใช้ตัวแปรของฝ่ายตรงข้ามของคุณ Copy 5 *C
จะตั้งค่าC
ตัวแปรของคู่ต่อสู้เพื่อ5
Var+Var
เพิ่มตัวแปรสองตัว Copy D+1 D
จะหมุนบอทไปทางขวา
เมื่อD
ใช้เป็นทิศทาง[North, East, South, West][D%4]
จะถูกใช้
ตัวดัดแปลงเหล่านี้สามารถถูกล่ามโซ่: Copy *#*C #9
จะคัดลอกบรรทัดถัดไปที่คู่ต่อสู้ของคุณจะดำเนินการเป็นรหัสของคุณเองในบรรทัดที่ 9 **D
หมายถึงD
ตัวแปรของฝ่ายตรงข้ามของคุณ
เงื่อนไขจะถูกประเมินดังนี้:
- ถ้า
Var
:- ถ้า Var
A
ผ่านไปC
มันจะคืนค่าจริงถ้า Var ไม่ใช่ศูนย์มิฉะนั้นจะเป็นเท็จ - ถ้า Var คือ
D
มันจะกลับมาจริงถ้ามีบอทไปในD
ทิศทางที่สามเป็นเท็จ - ถ้า Var คือ
E
มันจะกลับจริงถ้า E เป็นคี่เท็จอื่น - ถ้า Var เป็นเส้นมันจะคืนค่าจริงถ้าเป็นเส้นธง
- ถ้า Var
- ถ้า
Var1=Var2
:- ผลตอบแทนจริงถ้าทั้งสอง
A-E
และเท่ากับจำนวนเดียวกัน - ผลตอบแทนจริงถ้าทั้งสองเป็นเส้นและประเภทของเส้นจะเท่ากัน
- ผลตอบแทนจริงถ้าทั้งสอง
- ถ้า
Var1==Var2
:- ผลตอบแทนจริงถ้าทั้งสอง
A-E
และเท่ากับจำนวนเดียวกัน - ผลตอบแทนจริงถ้าทั้งคู่เป็นเส้นและเหมือนกัน (ธงจากบอตที่แตกต่างกันจะไม่เท่ากัน)
- ผลตอบแทนจริงถ้าทั้งสอง
50 บอทของแต่ละประเภทจะถูกวางไว้ในโลก toroidal ในรูปแบบดังต่อไปนี้:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
..B...B...B...B.
หลังจากแต่ละเกมครบ 5,000 รอบธงในแต่ละบอทจะถูกนับ คุณจะได้รับคะแนนถ้าบอทมีธงของคุณมากกว่าธงประเภทอื่น ๆ หากกรณีของการเสมอกันระหว่างN
บอทจะไม่มีการให้คะแนน
จะมี 10 เกมและคะแนนจะถูกสะสมในตอนท้าย
หมายเหตุด้านข้าง
อนุญาตให้แสดงความคิดเห็นในตอนท้ายของบรรทัดและแสดงด้วย //
การพยายามทำสิ่งที่ไม่สมเหตุสมผลเช่นการเพิ่มเข้าไปในบรรทัดจะไม่ทำอะไรเลย
ความพยายามที่จะทำอะไรบางอย่างบนบอทที่ไม่มีอยู่จริงจะไม่ทำอะไรเลย
การเรียกซ้ำแบบไม่มีที่สิ้นสุดในIf
พินัยกรรมจะสิ้นสุดลงโดยไม่มีบรรทัดที่ดำเนินการ
If
ไม่เปลี่ยนค่าของ C
A Block
ไม่หมดอายุจนกว่าจะมีคนพยายามเขียนถึงมัน
ตัวแปรและบรรทัดหลายรายการสามารถบล็อกได้ในครั้งเดียว
Block
การเปลี่ยนแปลงตัวแปรหลายครั้งจะบล็อกหลายครั้งตราบเท่าที่คำสั่งบล็อกที่สองอยู่ในบรรทัดของรหัสที่แตกต่างจากครั้งแรกของคุณ
ช่องว่างได้รับอนุญาตเฉพาะระหว่างการขัดแย้ง (และหลังคำสั่ง)
หากบอทสั้นกว่า 24 บรรทัดแฟล็กจะเป็นเส้นที่เหลือ
โปรแกรมตัวอย่าง
Copy 2 C //Skip to the If line
Flag //Where I'm storing my flag
Move //Move in the D'th direction
If D #5 #2 //If there's a bot, copy code, otherwise, move!
Copy #1 *#E //Copy my flag onto a random spot in my bot's code
Copy 2 C //Skip back to the If line
โปรแกรมจะทำงานโดยการควบคุมงูหลามของฉันที่นี่
ตัวควบคุมจาวาอยู่ที่นี่ มันเร็วและดูดีกว่างูหลาม
สกอร์:
- 6837 $ คัดลอก
- 3355 ฮีด
- 1695 MindControl
- 967 ไบเซนไทน์
- โจมตี 959 หรือ
- 743 Cadmyllion
- 367 ไข้หวัดใหญ่
- 251 TheCommonCold
- 226 Magus
- 137 HideBlockAttack
- 129 RowBot
- 123 FastMoveCloneDodge
- 112 FastForwardClone
- 96 QuickFreeze
- 71 ซ่อมและป้องกัน
- 96 SuperFreeze
- 93 RovingVirus
- 80 ForwardClone
- 77 FreezeTag
- 68 Palimpseste
- 62 BlockFreezeAttack
- 51 RushAttackDodge
- 46 Blocker
- 40 TurretMaker
- 37 Copycat
- 37 กามิกาเซ่
- 35 FlagInjector
- 33 RandomCopier
- 31 ร้ายกาจ
- 29 HappyAsAClam
- 25 NanoVirus
- 21 Nullifier
- 19 Nanoviris
- 17 BoringCopybot
- 16 Movebot
- 14 Flagbot
- 13 Neutralizer
- 12 โรคมะเร็ง
- 9 DNAbot
- 9 ปรสิต
- 8 MetaInsidious
- 8 Rebranding
- 8 AdaptiveBot
- 8 ReproducingBot
- 8 KungFuBot
- 5 QuickFreezerbot
- 4 ผู้โจมตี