Jika Anda belum pernah bermain golf sebelumnya, berikut adalah daftar istilah terkait golf yang saya gunakan dalam pertanyaan ini
- Tembakan , juga disebut stroke : Setiap kali bola dipukul, ini adalah tembakan.
- Lubang : Lapangan golf dibagi menjadi beberapa lubang, di mana tujuannya adalah untuk memukul bola dari satu lokasi yang ditentukan ke lokasi yang lain dengan sesedikit mungkin tembakan.
- Tee : Di mana Anda memulai sebuah lubang.
- Pin atau Bendera : Di mana Anda menyelesaikan lubang
- Fairway , Rough , Water , dan Green : Fitur di lapangan golf yang memengaruhi cara seseorang memainkan bola di kehidupan nyata. (Bagaimana mereka mempengaruhi program ditentukan di bawah ini)
Saya akan pergi bermain golf besok, dan saya menemukan bahwa kadang-kadang, saya mengalami kesulitan mencari tahu klub apa yang akan digunakan untuk memukul yardage tertentu. Jadi saya memutuskan untuk menuliskan klub saya dan halamannya per tembakan.
Asumsi Pertama: Semua lubang ada di sebelah utara kotak tee mereka.
Semua yardage ini mengukur kemungkinan sejauh mana perjalanan bola ke utara. Bola akan menempuh jarak bilangan bulat acak antara batas yang ditentukan untuk masing-masing klub (termasuk).
Sebagai pegolf utama, tidak ada satu pun pukulan saya yang memiliki pergeseran horizontal. Ini berarti bahwa semua bidikan saya masuk dalam garis lurus langsung di bendera.
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)
Sebagai orang yang suka pemrograman, saya memutuskan bahwa saya ingin membuat model golf dan menetapkan tujuan seberapa baik yang ingin saya lakukan besok. Namun, seperti programmer amatir, setelah sepuluh menit, saya menyerah dan meminta bantuan pada Stack Overflow (hanya bercanda). Berikut adalah beberapa data tentang kursus ini.
Asumsi Kedua: Geografi Lubang
Semua angka yang menggambarkan jarak pada kursus adalah bilangan bulat.
Setiap lubang adalah garis lurus. Jarak garis lurus antara setiap lubang dan pin (ujung lubang) adalah
Length
.Fairways adalah segmen dengan panjang yang ditentukan oleh
flen
. Nilai yang tercantum untukflen
adalah jarak pekarangan utara dari tee tempat fairway berada.Bahaya air adalah segmen yang panjangnya ditentukan oleh
wlen
, yang memiliki sifat sama denganflen
.Hijau memiliki panjang yang ditentukan oleh
glen
.Semua bagian dari jalur yang tidak fairway, air, atau hijau adalah kasar.
Berikut adalah bagan yang menggambarkan setiap lubang di lapangan.
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
Cara bermain Golf (untuk program ini)
- Selalu arahkan tepat ke bendera.
- Memukul bola sedekat mungkin dengan pin, mencoba menjaga bola di fairway atau (lebih disukai) di green.
- Ketika Anda mendaratkan tembakan ke dalam air, tembakan Anda berikutnya harus dimainkan dari tempat yang sama dengan tembakan yang masuk ke dalam air.
- Setelah bola mendarat di hijau, hanya putter yang bisa digunakan. Jika bola mendarat lebih dari 5 meter dari pin, maka saya putt dua kali. Kalau tidak, saya putt sekali.
- Dimungkinkan untuk melakukan tembakan melewati pin.
Mencetak gol
Skor saya pada hole adalah jumlah tembakan yang saya ambil, ditambah satu pukulan untuk setiap kali saya mendarat di air atau kasar.
Program
Oke, itu banyak peraturan, sekarang mari kita bicara tentang programnya.
Kursus harus didefinisikan seperti di atas dalam program , karena kursusnya konstan. Namun, pegolf yang berbeda memiliki jarak yang berbeda untuk setiap pukulan, sehingga input ke STDIN harus berupa serangkaian jarak pekarangan, diatur dalam urutan peningkatan jumlah klub dan dipisahkan dengan koma (tanpa spasi putih).
Keluarannya adalah bagaimana saya "memainkan" putaran golf. Nomor penahanan harus ditentukan pada awal setiap baris karena di Hole #:
mana #
lubang saat ini. Setiap tembakan yang tidak putt adalah dari bentuk berikut: {club,distance of shot,condition of ball,distance to pin}
. Detail bidikan harus dipisahkan dengan koma tetapi tidak ada spasi putih dalam urutan di atas. Tembakan itu sendiri harus ditulis dalam urutan bagaimana mereka dimainkan dan dipisahkan oleh spasi. Setelah bola mendarat di hijau, program harus mencetak berapa banyak putt yang saya ambil, dalam format {# putts}
. Pada akhir setiap baris, jumlah tembakan yang saya ambil pada lubang harus dipisahkan dari tembakan lainnya dengan spasi dan dicetak sebagai(#)
. Setiap lubang harus pada barisnya sendiri dan ditulis berurutan. Akhirnya, pada baris terakhir (kesepuluh) program, jumlah total tembakan untuk putaran harus dicetak sebagai Total: # shots
.
Tidak ada "strategi" yang harus diambil oleh program Anda. Anda dapat menulis program dengan strategi apa pun yang Anda inginkan. Contoh strategi termasuk memaksimalkan peluang persen mendarat di hijau dan memaksimalkan jarak setiap tembakan sampai mencapai lubang.
INPUT SAMPEL
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
OUTPUT SAMPEL
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
Saya akui, ini adalah tantangan yang agak ambisius untuk posting pertama di CG.SE, jadi saya akan senang berbicara tentang cara meningkatkan tantangan ini dalam komentar. Terima kasih untuk bantuannya.
0~299
yard, hijau dari 300~315
yard, dan air dari 316~330
yard. Klub apa yang akan dipilih? Bagaimana jika air diganti dengan kasar?