Se non hai mai giocato a golf prima, ecco un elenco di termini relativi al golf che uso in questa domanda
- Tiro , chiamato anche colpo : ogni volta che la palla viene colpita, questo è un tiro.
- Buca : un campo da golf è diviso in buche, in cui l'obiettivo è quello di colpire una palla da una posizione designata all'altra nel minor numero di colpi possibile.
- Tee : dove inizi una buca.
- Spilla o bandiera : dove finisci un buco
- Fairway , Rough , Water e Green : caratteristiche su un campo da golf che influenzano il modo in cui si gioca la palla nella vita reale. (In che modo influiscono sul programma è specificato di seguito)
Domani vado a giocare a golf e, a volte, ho difficoltà a capire quale club usare per colpire un certo cantiere. Così ho deciso di scrivere i miei club e i loro cortili per colpo.
Primo presupposto: tutte le buche sono dovute a nord delle loro scatole a T.
Tutti questi yardage misurano le possibilità per quanto viaggia a nord la palla. La palla percorrerà una distanza intera casuale tra i limiti specificati per ogni club (incluso).
Come maestro golfista, nessuno dei miei tiri ha uno spostamento orizzontale. Ciò significa che tutti i miei scatti vanno in linea retta direttamente sulla bandiera.
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)
Come persona che ama la programmazione, decido che voglio modellare una partita di golf e fissare un obiettivo per quanto voglio fare domani. Tuttavia, come ogni programmatore dilettante, dopo dieci minuti, ho rinunciato e ho chiesto aiuto su Stack Overflow (scherzando). Ecco alcuni altri dati sul corso.
Secondo presupposto: geografia del foro
Tutti i numeri che descrivono le distanze sul percorso sono numeri interi.
Ogni buco è una linea retta. La distanza in linea retta tra ciascun foro e il perno (l'estremità del foro) è
Length
.I fairway sono segmenti con lunghezza definita da
flen
. Il valore elencato perflen
è la gamma di iarde a nord dal tee dove si trova il fairway.Gli ostacoli d'acqua sono segmenti con lunghezza definita da
wlen
, che ha le stesse proprietà diflen
.Il verde ha una lunghezza definita da
glen
.Tutte le parti del corso che non sono fairway, acqua o green sono ruvide.
Ecco una tabella che descrive ogni buca del percorso.
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
Come giocare a golf (per questo programma)
- Mirare sempre esattamente alla bandiera.
- Colpisci la palla il più vicino possibile al perno, cercando di mantenere la palla sul fairway o (preferibilmente) sul green.
- Quando si lancia un colpo in acqua, il colpo successivo deve essere giocato dallo stesso punto del colpo che è andato in acqua.
- Una volta che la palla atterra sul green, solo il putter può essere usato. Se la palla atterra rigorosamente a più di 5 iarde dal perno, allora metto due volte. Altrimenti, ho messo una volta.
- È possibile colpire un colpo oltre il perno.
punteggio
Il mio punteggio in una buca è il numero di colpi che faccio, più un colpo per ogni volta che atterro in mare duro o in acqua.
Il programma
Ok, c'erano molte regole, ora parliamo del programma.
Il corso dovrebbe essere definito come sopra nel programma , perché il corso è costante. Giocatori di golf diversi, tuttavia, hanno distanze diverse per ogni tiro, quindi l'ingresso a STDIN dovrebbe essere un insieme di intervalli di yardage, disposti in ordine crescente di numero di mazza e separati da virgole (senza spazi bianchi).
L'output dovrebbe essere il modo in cui "gioco" il round di golf. Il numero di mantenimento deve essere specificato all'inizio di ogni riga come Hole #:
dove si #
trova il foro corrente. Ogni colpo che non è un putt è nella forma seguente: {club,distance of shot,condition of ball,distance to pin}
. I dettagli dello scatto devono essere separati da virgole ma senza spazi bianchi nell'ordine sopra. I colpi stessi dovrebbero essere scritti in ordine di come sono giocati e separati da uno spazio. Una volta che la pallina si ferma sul green, il programma dovrebbe stampare il numero di put che prendo, nel formato {# putts}
. Alla fine di ogni riga, il numero di scatti che ho fatto sul buco dovrebbe essere separato dagli altri scatti da uno spazio e stampato come(#)
. Ogni buca dovrebbe essere sulla propria linea e scritta in ordine. Infine, sull'ultima (decima) riga del programma, il numero totale di colpi per il round dovrebbe essere stampato come Total: # shots
.
Non esiste una "strategia" definita che il tuo programma deve prendere. Puoi scrivere un programma con qualsiasi strategia tu voglia. Le strategie di esempio includono massimizzare la probabilità percentuale di atterrare sul green e massimizzare la distanza di ogni tiro fino a raggiungere la buca.
INGRESSO CAMPIONE
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
USCITA DEL CAMPIONE
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
Devo ammettere che questa è una sfida piuttosto ambiziosa per un primo post su CG.SE, quindi sarei felice di parlare di come migliorare questa sfida nei commenti. Grazie per l'aiuto.
0~299
iarde, verde da 300~315
iarde e acqua da 316~330
iarde. Quale club verrà scelto? Cosa succede se l'acqua viene sostituita da una di massima?