หากคุณไม่เคยเล่นกอล์ฟมาก่อนนี่เป็นรายการคำศัพท์ที่เกี่ยวข้องกับกอล์ฟที่ฉันใช้ในคำถามนี้
- ช็อต: เรียกอีกอย่างว่าสโตรก : ทุกครั้งที่ลูกบอลถูกยิงนี่คือช็อต
- Hole : สนามกอล์ฟถูกแบ่งออกเป็นหลุมโดยมีเป้าหมายเพื่อตีลูกจากตำแหน่งที่กำหนดหนึ่งไปยังอีกสนามหนึ่งในไม่กี่นัดเท่าที่จะทำได้
- ที : ที่ที่คุณเริ่มหลุม
- ปักหมุดหรือตั้งค่าสถานะ : ตำแหน่งที่คุณเล่นจบหลุม
- แฟร์เวย์ , ขรุขระ , น้ำและสีเขียว : คุณสมบัติในสนามกอล์ฟที่มีผลต่อวิธีการเล่นลูกบอลในชีวิตจริง (สิ่งที่ส่งผลกระทบต่อโปรแกรมมีการระบุไว้ด้านล่าง)
ฉันจะออกไปเล่นกอล์ฟในวันพรุ่งนี้และฉันพบว่าบางครั้งฉันมีปัญหาในการค้นหาว่าสโมสรใดที่จะใช้ตีระยะทางที่แน่นอน ดังนั้นฉันจึงตัดสินใจที่จะเขียนไม้กอล์ฟและความระมัดระวังของพวกเขาต่อการยิงหนึ่งครั้ง
ข้อสันนิษฐานแรก: หลุมทั้งหมดเกิดขึ้นทางเหนือของกล่องทีออฟ
ระยะการวัดเหล่านี้ทั้งหมดวัดความเป็นไปได้ที่ลูกบอลจะเดินทางไปทางทิศเหนือไกลแค่ไหน ลูกบอลจะเดินทางเป็นจำนวนเต็มแบบสุ่มระหว่างขอบเขตที่ระบุสำหรับแต่ละสโมสร (รวมอยู่ด้วย)
ในฐานะนักกอล์ฟมืออาชีพไม่มีช็อตใดของฉันที่มีการเลื่อนในแนวนอน ซึ่งหมายความว่าภาพทั้งหมดของฉันไปเป็นเส้นตรงที่ธง
Club # Club Yardage
1 Driver 300-330
2 3-Wood 270-299
3 5-Wood 240-269
4 3-Iron 220-239
5 4-Iron 200-219
6 5-Iron 180-199
7 6-Iron 160-179
8 7-Iron 140-159
9 8-Iron 120-139
10 9-Iron 100-119
11 P-Wedge 80-99
12 S-Wedge 50-79
13 L-Wedge 0-49
14 Putter (only on green)
ในฐานะคนที่สนุกกับการเขียนโปรแกรมฉันตัดสินใจว่าฉันต้องการที่จะจำลองการเล่นกอล์ฟและตั้งเป้าหมายว่าพรุ่งนี้ฉันจะทำยังไงดี อย่างไรก็ตามเช่นเดียวกับโปรแกรมเมอร์มือสมัครเล่นหลังจากผ่านไปสิบนาทีฉันก็เลิกขอความช่วยเหลือจาก Stack Overflow (แค่ล้อเล่น) นี่คือข้อมูลเพิ่มเติมเกี่ยวกับหลักสูตร
สมมติฐานที่สอง: หลุมภูมิศาสตร์
ตัวเลขทั้งหมดที่อธิบายระยะทางของหลักสูตรเป็นจำนวนเต็ม
แต่ละหลุมเป็นเส้นตรง ระยะทางเส้นตรงระหว่างแต่ละหลุมและขา (ตอนจบของหลุม)
Length
เป็นflen
แฟร์เวย์จะมีกลุ่มที่มีความยาวที่กำหนดโดย ค่าที่ระบุไว้flen
คือช่วงของระยะทางทิศเหนือจากทีออฟที่แฟร์เวย์อยู่อันตรายจากน้ำเป็นส่วนที่มีความยาวที่กำหนดโดยที่มีคุณสมบัติเช่นเดียวกับ
wlen
flen
glen
สีเขียวมีความยาวที่กำหนดโดยทุกส่วนของเส้นทางที่ไม่แฟร์เวย์น้ำหรือสีเขียวนั้นขรุขระ
นี่คือแผนภูมิที่อธิบายแต่ละหลุมในสนาม
Hole # Length flen wlen glen
1 401 54-390 391-425
2 171 1-165 166-179
3 438 41-392 393-420 421-445
4 553 30-281,354-549 282-353 550-589
5 389 48-372 373-404
6 133 125-138
7 496 37-413 414-484 484-502
8 415 50-391 392-420
9 320 23-258 259-303 304-327
วิธีเล่นกอล์ฟ (สำหรับโปรแกรมนี้)
- เล็งไปที่ธงเสมอ
- ตีลูกบอลให้ใกล้กับหมุดมากที่สุดพยายามเก็บลูกบอลบนแฟร์เวย์หรือ (โดยเฉพาะ) บนกรีน
- เมื่อคุณลงจอดในน้ำช็อตต่อไปของคุณจะต้องเล่นจากที่เดียวกับที่ลงไปในน้ำ
- เมื่อลูกบอลตกลงบนกรีนจะสามารถใช้พัตเตอร์ได้เท่านั้น ถ้าลูกบอลตกลงมาจากพินอย่างเคร่งครัดเกิน 5 หลาฉันจะวางสองครั้ง มิฉะนั้นฉันพัตหนึ่งครั้ง
- มันเป็นไปได้ที่จะตีช็อตที่ผ่านมา
เกณฑ์การให้คะแนน
คะแนนของฉันในหลุมคือจำนวนนัดที่ฉันรับบวกหนึ่งจังหวะทุกครั้งที่ฉันลงจอดในที่ขรุขระหรือในน้ำ
โปรแกรม
ตกลงนั่นเป็นกฎจำนวนมากทีนี้มาพูดเกี่ยวกับโปรแกรมกันดีกว่า
ควรกำหนดรายวิชาดังกล่าวข้างต้นในโปรแกรมเนื่องจากรายวิชาคงที่ อย่างไรก็ตามนักกอล์ฟที่แตกต่างกันมีระยะทางที่แตกต่างกันสำหรับแต่ละช็อตดังนั้นการป้อนข้อมูลไปยัง STDIN ควรเป็นชุดของระยะการเรียงในลำดับที่เพิ่มขึ้นของหมายเลขสโมสรและคั่นด้วยเครื่องหมายจุลภาค (โดยไม่มีช่องว่าง)
ผลลัพธ์ควรเป็นวิธีที่ฉัน "เล่น" รอบกอล์ฟ ควรระบุหมายเลขพักสายไว้ที่จุดเริ่มต้นของแต่ละบรรทัดในHole #:
กรณีที่#
เป็นหลุมปัจจุบัน {club,distance of shot,condition of ball,distance to pin}
การยิงแต่ละครั้งที่ไม่ได้เป็นพัตเป็นรูปแบบต่อไปนี้: รายละเอียดของการยิงควรคั่นด้วยเครื่องหมายจุลภาค แต่ไม่มีช่องว่างตามลำดับด้านบน ภาพตัวเองควรเขียนตามลำดับวิธีการเล่นและคั่นด้วยช่องว่าง {# putts}
เมื่อลูกบอลตกลงบนสีเขียวโปรแกรมควรพิมพ์วิธีการหลายพัตฉันใช้เวลาในรูปแบบ ในตอนท้ายของแต่ละบรรทัดจำนวนช็อตที่ฉันถ่ายบนหลุมควรแยกออกจากช็อตอื่นด้วยช่องว่างและพิมพ์เป็น(#)
. แต่ละหลุมควรอยู่ในบรรทัดของตัวเองและเขียนตามลำดับ ในที่สุดที่ผ่านมาสาย (สิบ) Total: # shots
ของโปรแกรมที่จำนวนของภาพสำหรับรอบที่ควรจะพิมพ์เป็น
ไม่มีชุด "กลยุทธ์" ที่โปรแกรมของคุณต้องใช้ คุณสามารถเขียนโปรแกรมด้วยกลยุทธ์ที่คุณต้องการ ตัวอย่างกลยุทธ์รวมถึงการเพิ่มโอกาสร้อยละของการลงจอดบนกรีนและเพิ่มระยะห่างของการยิงแต่ละครั้งให้สูงสุดจนกว่าจะถึงรู
ตัวอย่างอินพุต
300-330,270-299,240-269,220-239,200-219,180-199,160-179,140-159,120-139,100-119,80-99,50-79,0-49
ตัวอย่างผลลัพธ์
Hole 1: {Driver,324,Fairway,77} {S-Wedge,70,Green,7} {Two putts} (4)
Hole 2: {6-Iron,162,Water,171} {6-Iron,168,Green,3} {One putt} (4)
Hole 3: {Driver,301,Fairway,137} {8-Iron,131,Green,6} {Two putts} (4)
Hole 4: {3-Wood,288,Water,553} {3-Wood,276,Fairway,277} {3-Wood,291,Green,14} {Two putts} (6)
Hole 5: {Driver,322,Fairway,67} {S-Wedge,62} {One putt} (3)
Hole 6: {8-Iron,120,Rough,18} {L-Wedge,10,Green,8} {Two putts} (5)
Hole 7: {Driver,325,Fairway,171] {6-Iron,170,Green,1} {One putt} (3)
Hole 8: {Driver,306,Fairway,109} {9-Iron,100,Green,9} {Two putts} (4)
Hole 9: {Driver,308,Green,12} {Two putts} (3)
Total: 36 shots
ฉันจะยอมรับว่านี่เป็นความท้าทายที่ค่อนข้างท้าทายสำหรับการโพสต์ครั้งแรกใน CG.SE ดังนั้นฉันยินดีที่จะพูดคุยเกี่ยวกับวิธีปรับปรุงความท้าทายนี้ในความคิดเห็น ขอขอบคุณสำหรับความช่วยเหลือของคุณ.
0~299
หลากรีนจาก300~315
หลาและน้ำจาก316~330
หลา สโมสรใดจะถูกเลือก? เกิดอะไรขึ้นถ้าน้ำถูกแทนที่ด้วยหยาบ