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 r
from random import*;r=randrange
lugar. Eso reduce 1 byte.Perl 6 , 212 bytes
&p
es una función auxiliar que selecciona un número aleatorio de0
uno 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