Vamos a jugar al golf mientras jugamos al golf.
Problema:
- La distancia al hoyo inicialmente es de 700 m.
- Cada golpe a la pelota lo hará avanzar al hoyo 250-350m, esto debería ser aleatorio.
- Cada golpe tiene un 5% de probabilidades de caer al agua, esto hará que la cantidad de golpes aumente en 1 como penalización.
- Cuando la pelota está por debajo de los 250 m, avanzará del 70% al 90% (al azar nuevamente) de la distancia faltante con una probabilidad del 80%, avance del 90% al 99% con una probabilidad del 14%, 1% de hacer el 10% (y terminar) y 5 % de ir al agua y aumentar el número de golpes en 1 como penalización.
- Cuando la pelota está por debajo de los 10 m, tiene el 95% de entrar en el hoyo (terminar) y el 5% de avanzar el 75% del camino perdido. No hay probabilidad de ir al agua.
Aclaraciones:
-Imagine la pelota está a 270m del hoyo, si golpeamos durante 300m, la distancia al hoyo ahora es 30, esto significa que la distancia será un valor absoluto.
-Los números siempre serán enteros debido a la probabilidad de golpear, por ejemplo, 300 m cuando la pelota está a 300 m del hoyo.
- Redondea el número de m del golpe, imagina que estás a 1 m, si caes con un 5% de no entrar en el hoyo, avanzará 0.
Entrada:
Nada
Salida:
Distancia al hoyo en cada golpe / n
Número total de visitas
Ejemplo de salida (no imprimir comentarios)
433m // Golpe durante 267m (700-267 = 433)
130m // Golpeado durante 303m (433-303 = 130)
130m // Bola sobre el agua +1 golpe de penalización
35 m // Golpe durante 95 m (130-95 = 35)
7m // Hit durante 28m (35-28 = 7
0m // Bola en el hoyo
Total de golpes 7 // 6 golpes +1 penalización
¡Esto es codegolf!
fuente

Respuestas:
JavaScript,
204198 bytesMenos golfizado:
fuente
Python 3.6 , 250 bytes
¡Ahorré 4 bytes gracias a isaacg, y 1 gracias a KoishoreRoy!
Pruébalo en línea! (Utiliza la sintaxis de impresión Python 3.5 a un costo de 6 bytes ya que TIO aún no es compatible con Python 3.6).
fuente
from random import randrange as rfrom random import*;r=randrangelugar. Eso reduce 1 byte.Perl 6 , 212 bytes
&pes una función auxiliar que selecciona un número aleatorio de0uno menos que su argumento. La expresión after'Total hits 'es una lista construida con pereza que genera cada elemento en función del elemento anterior. Los elementos se imprimen a medida que se generan, lo que no es muy funcional, pero es más corto que almacenarlos en una matriz intermedia.fuente