1
Code Golf: ชะตากรรมของยานอวกาศคืออะไร? [เวอร์ชันศิลปะ ASCII]
พื้นหลัง ในกาแลคซี (และอาจเป็นจักรวาล) ไกลออกไป ... มียานอวกาศและดาวเคราะห์จำนวนหนึ่ง การทำงานผิดพลาดบนเรือทำให้ยานอวกาศหมดเชื้อเพลิง ตอนนี้มันเคลื่อนที่ด้วยความเร็วช้าที่อันตรายใกล้กับกลุ่มดาวเคราะห์ซึ่งมันจะต้องหลบหนี! ชะตากรรมของลูกเรือจะเป็นอย่างไร ความท้าทาย คุณเป็นโปรแกรมเมอร์นำใน USS StackExchange เช่นนี้คุณต้องการที่จะเขียนโปรแกรมจำลองที่จะเปิดเผยหรือไม่ว่าคุณกำลังถูกโจมตีจากพื้นดินบนดาวเคราะห์หรือไม่ก็จะหนีออกจากระบบดาวเคราะห์หรือจะติดอยู่ในวงโคจรตลอดกาล อย่างไรก็ตามการระเบิดบนยานอวกาศของคุณหมายความว่ามีทรัพยากรการคำนวณ จำกัด มาก โปรแกรมของคุณจะต้องเล็กที่สุดเท่าที่จะทำได้ นอกจากนี้หมายความว่าวิธีเดียวที่เป็นไปได้ในการป้อนข้อมูลการจำลองเพื่อเรียกใช้คือผ่าน ASCII art การจำลองสถานการณ์ ในจตุภาคของลิขสิทธิ์นี้กฎของฟิสิกส์มีการเปลี่ยนแปลงเล็กน้อยเพื่อรองรับศิลปะ ASCII ซึ่งหมายความว่าจักรวาลแบ่งออกเป็นเซลล์ การเคลื่อนไหวจะถูกอธิบายในหน่วยของเซลล์และเวลาจะอยู่ในหน่วยของขั้นตอนเวลา ตัวเรือเองมีโมเมนตัม ถ้าเรือรบเคลื่อนที่ +2 เซลล์บนแกน x และ -1 เซลล์บนแกน y (ย่อมาจาก (2, -1)) ในขั้นตอนก่อนหน้านี้และไม่มีสนามแรงโน้มถ่วงจากนั้นเรือจะเคลื่อนที่ด้วยความแม่นยำ ความเร็วเดียวกันในขั้นตอนต่อไป จะมีดาวเคราะห์หลายดวงซึ่งทั้งหมดนี้มีสนามแรงโน้มถ่วงอยู่ในแปดเซลล์รอบ ๆ มันซึ่งจะส่งผลต่อความเร็วของเรือและจะดึงเรือเข้ามาใกล้ดาวเคราะห์มากขึ้น การเป็นแค่ "ทิศเหนือ" ของดาวเคราะห์จะส่งผลให้มีการดึงเรือหนึ่งเซลล์ไปยัง "ทิศใต้" ด้วยแรง (-1,0) การเป็นแค่ …