Si vous n'avez pas joué au golf auparavant, voici une liste de termes liés au golf que j'utilise dans cette question
- Tir , également appelé coup : chaque fois que la balle est frappée, c'est un tir.
- Trou : Un parcours de golf est divisé en trous, dans lesquels le but est de frapper une balle d'un endroit désigné à un autre en aussi peu de coups que possible.
- Tee : où vous commencez un trou.
- Épinglette ou drapeau : où vous terminez un trou
- Fairway , Rough , Water et Green : Caractéristiques d'un parcours de golf qui affectent la façon dont on joue le ballon dans la vraie vie. (Comment ils affectent le programme est spécifié ci-dessous)
Je vais jouer au golf demain, et je trouve que parfois, j'ai du mal à déterminer quel club utiliser pour atteindre un certain métrage. J'ai donc décidé d'écrire mes clubs et leurs distances par coup.
Première hypothèse: tous les trous sont dus au nord de leurs tertres de départ.
Tous ces métrages mesurent les possibilités de parcourir le nord du ballon. Le ballon parcourra une distance entière aléatoire entre les limites spécifiées pour chaque club (inclus).
En tant que maître golfeur, aucun de mes coups n'a de décalage horizontal. Cela signifie que tous mes clichés vont en ligne droite directement sur le drapeau.
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)
En tant que personne qui aime la programmation, je décide que je veux modéliser une ronde de golf et fixer un objectif pour la façon dont je veux faire demain. Cependant, comme tout programmeur amateur, après dix minutes, j'ai abandonné et demandé de l'aide sur Stack Overflow (je plaisante). Voici quelques données supplémentaires sur le cours.
Deuxième hypothèse: géographie des trous
Tous les nombres qui décrivent les distances sur le parcours sont des nombres entiers.
Chaque trou est une ligne droite. La distance en ligne droite entre chaque trou et la goupille (l'extrémité du trou) est
Length
.Les fairways sont des segments dont la longueur est définie par
flen
. La valeur indiquéeflen
est la plage de mètres au nord du tee où se trouve le fairway.Les dangers liés à l'eau sont des segments dont la longueur est définie par
wlen
, qui a les mêmes propriétés queflen
.Le vert a une longueur définie par
glen
.Toutes les parties du parcours qui ne sont pas du fairway, de l'eau ou du vert sont rugueuses.
Voici un tableau décrivant chaque trou sur le parcours.
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
Comment jouer au golf (pour ce programme)
- Visez toujours exactement le drapeau.
- Frappez la balle aussi près que possible de la goupille, en essayant de garder la balle sur le fairway ou (de préférence) sur le green.
- Lorsque vous décrochez un coup dans l'eau, votre coup suivant doit être joué au même endroit que le coup qui est allé dans l'eau.
- Une fois que la balle atterrit sur le green, seul le putter peut être utilisé. Si la balle atterrit strictement à plus de 5 mètres de la goupille, je fais deux coups roulés. Sinon, j'ai mis une fois.
- Il est possible de frapper un tir au-delà de la broche.
Notation
Mon score sur un trou est le nombre de coups que je prends, plus un coup pour chaque fois que j'atterris dans la mer ou dans l'eau.
Le programme
D'accord, c'était beaucoup de règles, parlons maintenant du programme.
Le cours doit être défini comme ci-dessus dans le programme , car le cours est constant. Différents golfeurs, cependant, ont des distances différentes pour chaque tir, donc l'entrée dans STDIN devrait être un ensemble de plages de mètres, disposées par ordre croissant de numéro de club et séparées par des virgules (sans espace).
La sortie devrait être la façon dont je "joue" la partie de golf. Le numéro de retenue doit être spécifié au début de chaque ligne comme Hole #:
où se #
trouve le trou actuel. Chaque tir qui n'est pas un putt est de la forme suivante: {club,distance of shot,condition of ball,distance to pin}
. Les détails de la prise de vue doivent être séparés par des virgules mais pas d'espaces dans l'ordre ci-dessus. Les plans eux-mêmes doivent être écrits par ordre de lecture et séparés par un espace. Une fois que la balle atterrit sur le green, le programme devrait imprimer le nombre de putts que je prends, au format {# putts}
. À la fin de chaque ligne, le nombre de photos que j'ai prises sur le trou doit être séparé des autres photos par un espace et imprimé comme(#)
. Chaque trou doit être sur sa propre ligne et écrit dans l'ordre. Enfin, sur la dernière (dixième) ligne du programme, le nombre total de prises de vue pour le tour doit être imprimé comme Total: # shots
.
Il n'y a pas de «stratégie» définie que votre programme doit suivre. Vous pouvez écrire un programme avec la stratégie que vous souhaitez. Exemples de stratégies: maximiser le pourcentage de chances d'atterrir sur le green et maximiser la distance de chaque tir jusqu'à atteindre le trou.
ÉCHANTILLON D'ENTRÉE
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
EXEMPLE DE SORTIE
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
J'avoue que c'est un défi plutôt ambitieux pour un premier article sur CG.SE, donc je serais heureux de parler de comment améliorer ce défi dans les commentaires. Merci de votre aide.
0~299
yards, le green depuis les 300~315
yards et l'eau depuis les 316~330
yards. Quel club sera choisi? Et si l'eau est remplacée par de l'eau brute?