Si no ha jugado golf antes, aquí hay una lista de términos relacionados con el golf que uso en esta pregunta
- Tiro , también llamado golpe : cada vez que se golpea la pelota, este es un tiro.
- Hoyo : Un campo de golf se divide en hoyos, en los cuales el objetivo es golpear una pelota de un lugar designado a otro en la menor cantidad de golpes posibles.
- Tee : donde comienzas un hoyo.
- Pin o bandera : donde terminas un hoyo
- Fairway , Rough , Water y Green : características en un campo de golf que afectan la forma en que uno juega la pelota en la vida real. (La forma en que afectan el programa se especifica a continuación)
Mañana saldré a jugar al golf, y me doy cuenta de que, a veces, tengo problemas para determinar qué palo usar para alcanzar cierto yardaje. Así que decidí escribir mis palos y sus yardas por disparo.
Primera suposición: Todos los agujeros se deben al norte de sus cajas de te.
Todos estos yardas miden las posibilidades de qué tan al norte viaja la pelota. La pelota viajará una distancia entera aleatoria entre los límites especificados para cada club (inclusive).
Como maestro de golf, ninguno de mis tiros tiene desplazamiento horizontal. Esto significa que todos mis disparos van en línea recta directamente a la bandera.
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)
Como persona que disfruta de la programación, decido que quiero modelar una ronda de golf y establecer una meta para lo bien que quiero hacerlo mañana. Sin embargo, como cualquier programador aficionado, después de diez minutos, me di por vencido y pedí ayuda sobre Stack Overflow (es broma). Aquí hay algunos datos más sobre el curso.
Segunda Asunción: Geografía del Hoyo
Todos los números que describen distancias en el curso son enteros.
Cada hoyo es una línea recta. La distancia en línea recta entre cada orificio y el pasador (el extremo del orificio) es
Length
.Las calles son segmentos con longitud definida por
flen
. El valor indicadoflen
es el rango de yardas al norte desde el tee donde se encuentra la calle.Los peligros del agua son segmentos que tienen una longitud definida por
wlen
, que tiene las mismas propiedades queflen
.El verde tiene una longitud definida por
glen
.Todas las partes del curso que no son de calle, agua o verde son ásperas.
Aquí hay una tabla que describe cada hoyo en el campo.
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
Cómo jugar golf (para este programa)
- Apunte siempre exactamente a la bandera.
- Golpee la pelota lo más cerca posible del alfiler, tratando de mantener la pelota en la calle o (preferiblemente) en el green.
- Cuando aterrizas un tiro en el agua, tu próximo tiro debe jugarse desde el mismo lugar que el tiro que cayó al agua.
- Una vez que la pelota cae en el green, solo se puede usar el putter. Si la pelota cae estrictamente a más de 5 yardas del pin, entonces lo golpeo dos veces. De lo contrario, lo puse una vez.
- Es posible golpear un tiro más allá del pin.
Puntuación
Mi puntaje en un hoyo es la cantidad de disparos que tomo, más un golpe por cada vez que aterrizo en el mar o en el agua.
El programa
Bien, esas eran muchas reglas, ahora hablemos sobre el programa.
El curso debe definirse como anteriormente en el programa , porque el curso es constante. Sin embargo, diferentes jugadores de golf tienen diferentes distancias para cada tiro, por lo que la entrada a STDIN debe ser un conjunto de rangos de yardas, dispuestos en orden creciente de número de palo y separados por comas (sin espacios en blanco).
La salida debería ser cómo "juego" la ronda de golf. El número de espera debe especificarse al comienzo de cada línea como Hole #:
donde #
está el hoyo actual. Cada tiro que no es un putt es de la forma siguiente: {club,distance of shot,condition of ball,distance to pin}
. Los detalles de la toma deben estar separados por comas pero sin espacios en blanco en el orden anterior. Los disparos en sí deben escribirse en orden de cómo se juegan y separados por un espacio. Una vez que la pelota cae en el green, el programa debe imprimir cuántos putts tomo, en el formato {# putts}
. Al final de cada línea, el número de disparos que hice en el hoyo debe estar separado de los otros disparos por un espacio e impreso como(#)
. Cada hoyo debe estar en su propia línea y escrito en orden. Finalmente, en la última (décima) línea del programa, el número total de disparos para la ronda debe imprimirse como Total: # shots
.
No hay una "estrategia" establecida que su programa deba tomar. Puede escribir un programa con cualquier estrategia que desee. Las estrategias de ejemplo incluyen maximizar el porcentaje de posibilidades de aterrizar en el green y maximizar la distancia de cada disparo hasta llegar al hoyo.
ENTRADA DE MUESTRA
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
SALIDA DE MUESTRA
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
Admito que este es un desafío bastante ambicioso para una primera publicación en CG.SE, por lo que me alegraría hablar sobre cómo mejorar este desafío en los comentarios. Gracias por tu ayuda.
0~299
yardas, verde de 300~315
yardas y agua de 316~330
yardas. ¿Qué club será elegido? ¿Qué pasa si el agua es reemplazada por agua?