นี่คือมินิกอล์ฟรู:
ขอบเขตด้านนอกเป็นวงกลมที่มีรัศมี 10 และกึ่งกลาง (0,0) ขอบเขตด้านในเป็นวงกลมที่มีรัศมี 3 และกึ่งกลาง (0,5) ทีคือที่ (0, -8) สมมติว่าลูกบอลเป็นเพียงจุดที่มีรัศมี 0
การเปลี่ยนแปลงของลูกบอลถูกควบคุมโดยกฎต่อไปนี้:
เริ่มแรกลูกบอลถูกยิงด้วยพลังงาน 50 และด้วยมุมที่กำหนด
- มุมอยู่ในสภาพลดน้อยลงในระบบพิกัดคาร์ทีเซียนดังนั้น 0 °หมายถึงทางด้านขวาโดยตรง 90 °จะขึ้นตรงและต่อไปเรื่อย ๆ
เมื่อลูกบอลกระทบกับขอบของวงกลมด้านในหรือด้านนอกมันกระดอนออกจากวงกลมโดยใช้กฎการสะท้อนกลับ
ลูกบอลสูญเสียพลังงานเมื่อมันเคลื่อนที่
สำหรับทุกหน่วยของพื้นดินมันครอบคลุมจะสูญเสียพลังงาน 1 หน่วย
ทุกครั้งที่มันกระเด้งออกมาจากผนังจะสูญเสียพลังงาน 5 หน่วย
ลูกบอลหยุดทั้งเมื่อพลังงานหมดหรือเมื่อตกลงไปในหลุม
หากลูกบอลชนกำแพงด้วย <= 5 หน่วยพลังงานลูกบอลจะหยุด
มันตกลงไปในรูถ้ามันมีพลังงาน <10 เมื่ออยู่ภายในระยะ 1 ของหลุมมิฉะนั้นจะเคลื่อนที่ต่อไป
ท้าทาย
เมื่อกำหนดพิกัด xy ของหลุมให้คืนค่ามุมที่คุณสามารถตีลูกบอลเพื่อให้ลูกบอลตกลงไปในหลุม (หากมีมุมดังกล่าวอยู่)
อินพุต
ใช้เป็นอินพุทพิกัด x และ y ของกึ่งกลางของหลุมในรูปแบบที่สะดวก อินพุตอาจถูกนำมาจาก STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด) พารามิเตอร์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชัน
เอาท์พุต
พิมพ์หรือคืนมุมเป็นองศาที่ลูกบอลสามารถถูกตีจากทีเช่นว่าลูกบอลจะตกลงไปในหลุม หากมุมดังกล่าวมีอยู่เอาต์พุตควรอยู่ในช่วง [0, 360) มิฉะนั้นเอาต์พุตควรเป็น -1