หุ่นยนต์ของฉันลัดวงจรและวิ่งออกจากห้องแล็บของฉันแบบสุ่ม!
โชคดีที่เมื่อใดก็ตามที่เขาทำสิ่งนี้ลำดับการปิดของเขาจะเริ่มต้นทำให้เขามีเวลามากพอที่จะหมุนและวิ่งไปในทิศทางที่หันหน้าไปทางห้ารอบก่อนที่เขาจะปิด ฟังก์ชั่น gyro และ accelerometer ของเขายังคงส่งข้อมูลกลับไปที่ห้องแล็บในขณะที่เขายังอยู่
ข้อมูลจะมาในรูปของตัวเลขสองชุดห้าชุดเสมอ
12:234,-135:47,-68:230,140:324,127,87
ภารกิจนักกอล์ฟของคุณคือ a) จำลองการวิ่งและหมุนรอบของหุ่นยนต์โดยการแสดงตัวเลขห้าชุดในรูปแบบa1:d1,a2:d2,a3:d3,a4:d4,a5:d5
ที่a
(n) คือมุมตามเข็มนาฬิกา (เป็นองศา) เช่นนั้น-179<=a<=+180
เพื่อให้หุ่นยนต์หันจากตำแหน่งปัจจุบัน ( ในขั้นต้นมันจะอยู่ที่ศูนย์ส่วนหัวก่อนที่มันจะวิ่งอาละวาดและหมุนเป็นครั้งแรก) และd
(n) คือระยะทางเป็นฟุตที่มันจะวิ่งก่อนที่การเปลี่ยนส่วนหัวครั้งถัดไปจะเป็นเช่น0<=d<=500
นั้น และ b) ส่วนหัวที่คำนวณได้จากห้องปฏิบัติการ (ซึ่งหันหน้าไปทางส่วนหัวเป็นศูนย์), ระยะทางเป็นฟุต (สนับสนุนความแม่นยำสูงสุดถึงทศนิยม 3 ตำแหน่ง, -5 ไบต์ถ้าคุณทำได้) และการวางแนว (เป็นองศา) หุ่นยนต์ของฉันหันหน้าไปทางไหนเมื่อปิดสวิตช์
ตัวอย่างง่าย ๆ :
Data: 0:1,45:1,90:1,90:1,90:1
Heading: 0
Distance: 1
Orientation: -45
การเลี้ยวและระยะทางแบบสุ่มนั้นสุ่ม ไม่มีค่าชุดที่จะเขียนโค้ดยากเราต้องเห็นการกระทำที่สุ่มภายในโค้ด
ข้อ จำกัด ในการสุ่ม: ไม่มีการอ้างอิงตามนาฬิกาหรือวันที่เราจำเป็นต้องดูการrandom
อ้างอิงดั้งเดิมภายในโค้ด เมื่อใดก็ตามที่คุณเรียกใช้รหัสนี้การสุ่มต้องนำเสนอตัวเองด้วยความเป็นไปได้ที่จะแสดงมุมที่เป็นไปได้ 1 ใน 360 ของการหมุนในแต่ละรอบการหมุน ดังนั้นหุ่นยนต์อาจหมุน -36 องศาในคราวเดียวและอาจเลี้ยว +157 องศาต่อไปตามด้วยอีกเทิร์น +2 องศาอีกเทิร์น -116 องศาและรอบสุดท้ายของ +42 องศาในเทิร์นสุดท้าย ต้องมีค่าที่แตกต่างอย่างน้อย 360 ค่า (ระหว่าง -179 ถึง +180 องศา) กับการสร้างมุมแบบสุ่มแต่ละอัน
ข้อ จำกัด สำหรับการวิ่งทางไกล: ตั้งค่าในทำนองเดียวกันมีระยะทางที่เป็นไปได้ 501 จุดที่หุ่นยนต์สามารถวิ่งได้ (รวมตั้งแต่ 0 ถึง 500 ฟุต) ดังนั้นฉันคาดว่าการสุ่มจะพร้อมใช้งานเมื่อพิจารณาระยะการวิ่งของหุ่นยนต์ หุ่นยนต์สามารถวิ่ง 45, 117, 364, 27 และ 6 ฟุตในแต่ละรอบของมัน ...
ข้อมูลที่ป้อนให้กับคุณจะเป็นค่าจำนวนเต็มเสมอ ... หุ่นยนต์จะเปลี่ยนเป็นช่วงจำนวนเต็มขององศาและจะทำงานในช่วงจำนวนเต็มของระยะทาง อย่างไรก็ตามค่าที่ส่งออกจะลอย ...
นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดชนะ ... ตอนนี้ไปหาหุ่นยนต์ของฉัน!
ป.ล. : อ้างอิงถึง "ความแม่นยำสูงสุดทศนิยม 3 ตำแหน่ง" ของฉันหากคุณสามารถระบุหัวเรื่อง (ในหน่วยองศาให้ถึงตำแหน่งทศนิยมขั้นต่ำ 3 ตำแหน่ง) และระยะทางเป็นฟุต (และแม่นยำเช่นกันกับตำแหน่งทศนิยมขั้นต่ำ 3) จะได้รับโบนัส -5 ไบต์)
-180 < a <= +180
เป็น<
เครื่องหมายในวิธีการของตัวเองน้อยกว่า แต่ไม่รวมถึง AFAIK ...