ข้ามไปยังเนื้อหา
ไทย

ข้อมูลอ้างอิงข้อความ

ข้อความจะถูกส่งด้วยอุปกรณ์ emitter และรับด้วยอุปกรณ์ receiver ดูตัวอย่างได้ในบทเรียนการสื่อสาร

สตริงรูปแบบด้านล่างเป็นของโมดูล struct ของ Python

ข้อความ รูปแบบ ความยาว วัตถุประสงค์
รายงานสัญลักษณ์บนผนัง i i c: x, z, ชนิด 9 ไบต์ ตำแหน่งมีหน่วยเป็นเซนติเมตร และชนิดเป็นหนึ่งใน H, S, U, F, P, C, O หุ่นยนต์ต้องหยุดนิ่งอย่างน้อย 1 วินาที
ข้อมูลแผนที่ 2i ตามด้วยข้อความ UTF-8: จำนวนแถว จำนวนคอลัมน์ และเซลล์ที่คั่นด้วยจุลภาค ความยาวอื่นใดก็ได้ จัดเก็บแผนที่ โดยยังไม่ประเมิน
M c 1 ไบต์ ประเมินแผนที่ที่จัดเก็บไว้ ทำได้เพียงครั้งเดียว
L c 1 ไบต์ เรียกการไม่มีความคืบหน้า (lack of progress)
G c 1 ไบต์ ขอข้อมูลของเกม
E c 1 ไบต์ จบเกม ได้รับโบนัสออกจากสนาม (exit bonus) หากหุ่นยนต์อยู่บนช่องเริ่มต้นและได้ระบุสัญลักษณ์บนผนังไปแล้ว

Erebus แยกแยะข้อความเหล่านี้จากความยาว ดังนั้นการรายงานต้องมีขนาด 9 ไบต์พอดี

ข้อความ รูปแบบ ความยาว วัตถุประสงค์
L c 1 ไบต์ เกิดการไม่มีความคืบหน้าขึ้นแล้ว
G c f i i: G, คะแนน, เวลาเกมที่เหลือ, เวลาจริงที่เหลือ 16 ไบต์ คำตอบของ G เวลามีหน่วยเป็นวินาที

โปรดทราบว่าแพ็กเก็ตของ G มีไบต์เติม (padding) เพราะรูปแบบ struct ข้างต้นจัดแนวค่า float: คะแนนเริ่มที่ไบต์ 4 และเวลาเริ่มที่ไบต์ 8 และ 12

ฟังก์ชัน คำอธิบาย
robot.getDevice(name) รับอุปกรณ์ตามชื่อ ใน C++ ให้ใช้ robot->getMotor(name), robot->getCamera(name) เป็นต้น
robot.step(timeStep) ทำให้การจำลองเดินหน้า คืนค่า -1 เมื่อการจำลองสิ้นสุด
robot.getTime() รับเวลาในการจำลอง เป็นวินาที
device.enable(timeStep) เปิดใช้งานเซนเซอร์
motor.setPosition(float("inf")) ให้มอเตอร์หมุนได้ไม่จำกัด
motor.setVelocity(speed) ตั้งความเร็วของมอเตอร์ เป็นเรเดียนต่อวินาที