เพื่อนนักธรณีวิทยาของคุณเกือบจะเตะประตูสำนักงานของคุณในขณะที่เขาระเบิดดวงตาเบิกกว้างด้วยความตื่นเต้นและขอให้คุณมากับเขาในเว็บไซต์ที่เขาเพิ่งค้นพบ ระหว่างที่เขาอธิบายว่าเขาคิดว่าเขาเพิ่งหลงทอง ปัญหาอย่างเดียวคือมันถูกฝังอยู่ใต้ดินในถ้ำที่มีหลังคาไม่มั่นคง มันอันตรายเกินไปที่จะไป spelunking ดังนั้นเขาต้องการให้คุณเขียนโปรแกรมหนึ่งในการสำรวจหุ่นยนต์เพื่อเก็บทองให้มากที่สุดเท่าที่จะทำได้ก่อนที่เขาจะดึงมันขึ้นมา นอกจากนี้เขายังกล่าวว่าเขาตรวจสอบถ้ำและพบสัตว์ป่าบางชนิดที่อาจเป็นอันตรายต่อหุ่นยนต์และยังทิ้งอุปกรณ์บางอย่างไว้ที่นั่นซึ่งอาจใช้งานได้ หุ่นยนต์แต่ละตัวมีสองแขนและมีเซ็นเซอร์หลากหลาย เมื่อคุณมาถึงที่เกิดเหตุเขาจะบอกคุณว่าเขาวางแผนที่จะสรรหาคนเข้ารหัสเพิ่มขึ้น
ตอนนี้ลงไปที่ nitty-gritty เซ็นเซอร์ส่งข้อมูลไปยังโปรแกรมของคุณเป็นอักขระ ASCII นี่คือรายการความหมายของตัวละครแต่ละตัวและคำอธิบายสำหรับสิ่งที่บอตอาจพบในถ้ำ:
Code Name/Description
Y Your bot
You do things
@ Other bots
They do other things
- Ground
This doesn't do things
C Centipede
These will bite you and leave a poison effect
The bite will cost 1 health
The poison effect will last for 3 turns, costing 2 health each turn
B Bats
If bats end up in the same space you are, your bot runs in a random direction during its turn rather than what you told it to do
L Lion (because reasons)
Lions deal heavy damage, 10 health, each time they attack
F Food
Eating this will give you 5 health
Can only be used once
W Water
Drinking this will cure poison effects early
Can only be used once
R Revealer
This will increase the range of your visibility to an 11x11 grid
The extra range will only be 75% correct, but the original range won't be effected
K Knife
You do twice as much damage to other bots if you have a knife
G Gold
The whole reason you're doing this in the first place
N Nurse Nina
She mend you good
Restores your health by 10 while you occupy the same space as her
} Boulder
You can't walk over boulders, and neither can anything else
P Pit
If you fall in a pit, you will be stuck for 3 turns
ขนาดของถ้ำโตขึ้นตามจำนวนบอตที่เข้าร่วม มันเริ่มต้นเป็น 30x30 และจะได้รับ 10x10 พิเศษสำหรับบอททุกคน ดังนั้น 2 บอทจะสำรวจถ้ำขนาด 50x50
บอตเริ่มต้นที่ 20 พลังชีวิต แต่ไม่มีขีด จำกัด สูงสุดต่อสุขภาพ
การป้อนข้อมูล:
คุณจะได้รับอินพุตผ่าน STDIN ในรูปแบบต่อไปนี้:
20,5,10,1,0,True,False <-health, number gold pieces, number of turns your bot has lasted, number of until the poison wears off, number of turns until you are no longer stuck in a pit, if you have a revealer, if you have a knife
-----
-G}--
--Y-L
-C---
---B-
บรรทัดแรกมีข้อมูลเกี่ยวกับบอตของคุณและที่เหลือคือตารางที่บอทของคุณมองเห็น หากบอทของคุณติดกับหนึ่งใน 4 กำแพงของถ้ำคุณจะได้รับกริดที่มีลักษณะเช่นนี้มากขึ้น (ในกรณีที่ไปทางตะวันตก):
---
}--
Y--
---
---
ถ้ำไม่ได้ห่อหุ้มและไม่มีวิสัยทัศน์ของคุณ กำแพงถ้ำไม่ได้ถูกทำเครื่องหมายสิ่งเดียวที่บ่งบอกว่าบอทของคุณได้รับว่ามันอยู่ใกล้กับกำแพงก็คือมุมมองของมันจะลดลง ด้วย Revealer คุณอาจได้รับสิ่งนี้:
--------C--
LW--------B
---K-N-----
--------BR-
-F---------
--B--Y---@N
-W@---F----
------K-F--
----@-}----
R@---G}--}-
--------G-R
เอาท์พุท:
คุณได้รับสองการเคลื่อนไหวต่อเทิร์นซึ่งคุณส่งออกในรูปแบบต่อไปนี้:
MNNANW <- Moves are groups of 3 characters representing the action and the direction
การกระทำที่เป็นไปได้มีดังนี้:
M Move - Move your bot in the specified direction
A Attack - Attack the square in the specified direction
H Hold - Do nothing
ทิศทางที่เป็นไปได้มีดังต่อไปนี้:
NN - North (up)
NE - Northeast (up-right)
EE - East (right)
SE - Southeast (down-right)
SS - South
SW - Southwest
WW - West
NW - Northwest
การเคลื่อนไหวจะใช้จากซ้ายไปขวา
ย้อนกลับ:
เปลี่ยนความคืบหน้าในแบบต่อไปนี้:
เอฟเฟกต์พิษจะถูกนำไปใช้กับผู้เล่นที่ถูกวางยาพิษ
ปลอดบอทเคลื่อนที่และโจมตี
2a สิงโตตะขาบและค้างคาวเคลื่อนไหวแบบสุ่ม
2b ไลออนส์และตะขาบจะโจมตีทุกอย่างที่ติดกับมันโดยตรง (รวมถึงแนวทแยงมุม)
2c เอฟเฟกต์แบ็ตจะถูกนำไปใช้กับบอทหากอยู่ในพื้นที่เดียวกับแบ็ต
2d พยาบาลนีน่าจะอยู่ในที่ตั้ง 3 รอบจากนั้นข้ามไปที่ตำแหน่งสุ่ม
บอทเคลื่อนที่
3a หากบอทของคุณให้ผลลัพธ์ที่ไม่ถูกต้องมันจะไม่ย้าย
3b บอทของคุณจะพยายามเข้าใกล้พื้นที่ที่กำหนดโดยเอาท์พุทให้มากที่สุด (ดูรายละเอียดเพิ่มเติมที่ด้านล่าง)
3c การโจมตีหนึ่งครั้งกับ Centipede, Lion หรือ Bat จะฆ่ามัน
3d โจมตีบอทอื่นที่ไม่มีมีดจะทำดาเมจ 5 ดาเมจและ 10 ด้วยมีด
กฎ:
ยึดติดกับภาษาทั่วไปที่สามารถเรียกใช้บน OS X หรือ Linux
คุณสามารถเลือกเขียนได้สูงสุดและไม่เกิน 1kb ข้อมูลไปยังไฟล์
เกณฑ์การให้คะแนน:
บอทจะอยู่ในถ้ำจนกว่าจะมีเพียงซากเดียวเท่านั้นหรือจนกว่าจะครบ 50 รอบแล้วแต่ว่าสิ่งใดจะมาถึงก่อน บอทของคุณจะถูกตัดสินจากผลรวมของจำนวนเหรียญทองที่เก็บรวบรวมและจำนวนรอบที่จะใช้
คุณสามารถดาวน์โหลดรหัสคอนโทรลเลอร์เพื่อทำการทดสอบได้ที่นี่ (สร้างโฟลเดอร์ชื่อ "บอท" ในไดเรกทอรีเดียวกับที่คุณดาวน์โหลดและใส่บอทของคุณไว้ใน "บ็อต") คุณจะต้องใช้ NumPy เพื่อเรียกใช้ รู้สึกอิสระที่จะขุดมัน แต่คุณจะต้องแก้ตัว ...
นี่คือรหัสสำหรับบอทแบบสุ่มบางส่วน:
#!/usr/bin/python
import random as r
a = ['M','A','H']
d = ['NN','NE','EE','SE','SS','SW','WW','NW']
print(a[r.randint(0,2)]+d[r.randint(0,7)]+a[r.randint(0,2)]+d[r.randint(0,7)])
**** บอทของคุณจะเคลื่อนไหวไปในทิศทางทั่วไปที่เอาต์พุตของคุณระบุ แต่ถ้ามันถูกบดบังด้วยหินหรือผนังทิศทางที่แน่นอนจะขึ้นอยู่กับสถานการณ์ ตัวอย่างเช่นหากบอทของคุณอยู่ติดกับกำแพงเช่นนั้น:
---
}--
Y--
---
---
และผลลัพธ์ของคุณคือ
MNWMSW
บอทของคุณจะเลื่อนหนึ่งช่องว่างลง มันไม่สามารถเคลื่อนที่ไปทางเหนือหรือตะวันตกดังนั้นการเคลื่อนไหวนั้นจึงไม่มีผลกระทบ มันสามารถเคลื่อนย้ายไปทางใต้ได้ (และทำได้) แต่ไม่สามารถเคลื่อนที่ไปทางตะวันตกได้ อย่างไรก็ตามถ้าบอทของคุณพยายามที่จะย้ายภาคตะวันออกเฉียงเหนือมันจะตรงไปยังพื้นที่นั้น (การเคลื่อนไหวในแนวทแยงเป็นแนวทแยงไม่ใช่ขั้นตอน)
ลีดเดอร์บอร์ด
เหล่านี้เป็นคะแนนเฉลี่ยของ 4 เกม
The bot of Survival: 54.75
Coward: 52.25
Pufferfish: 50.00
Randombot: 50.00
Indiana Jones: 47.50
TheoremBot: 46.50