Craps es un juego de dados bastante simple que a menudo se juega en los casinos. Incluso si no eres un jugador (que yo no soy), sigue siendo un juego bastante interesante. Aquí están las reglas:
Al comienzo de un juego de dados no es lo que se llama el de Salida ronda. El jugador tira dos d6s (dado de seis lados) y se suman las dos tiradas de dado. Si el resultado es 7 u 11, la persona gana automáticamente (esto se conoce como natural ). Si el resultado es 2, 3 o 12, la persona pierde automáticamente (esto se conoce como basura ). De lo contrario, el resultado se establece como el punto para la ronda de puntos.
Después de esto, comienza la ronda de puntos . Durante la ronda de puntos, el jugador debe tirar continuamente 2 d6s hasta que la persona saque un 7 o su punto de la ronda anterior. Si la persona saca un 7, pierde. Si sacan su punto, ganan.
Desafío
Implemente un programa simple que simule un juego de dados. Si la persona lanza un natural o una basura durante la ronda de salida, el programa debería mostrar "Natural:" o "Recorte:" seguido por la tirada del dado y luego salir. De lo contrario, debería mostrar "Punto:" seguido del punto. Luego, durante la ronda de puntos, debería generar cada tirada hasta que se alcance un 7 o el punto. Si la persona gana, debería salir "Pass"
; si lo pierden debería salir "Don't Pass"
.
Implementación de referencia
Groovy, 277 bytes
def a={return Math.random()*6+1};int b=a()+a();(b<4||b==12)?{println"Crapping out: "+b}():{(b==7||b==11)?{println"Natural: "+b}():{println"Point: "+b;for(;;){int x=a()+a();println x;(x==7)?{println"Don't Pass";System.exit(0)}():{if(x==b){println"Pass";System.exit(0)}}()}}()}()
Resultados de muestra
Natural: 7
Crapping out: 3
Point: 9
4
8
11
9
Pass
y
Point: 5
3
7
Don't Pass
Este es el código de golf , por lo que gana el código más corto.
(DESCARGO DE RESPONSABILIDAD: Este desafío no pretende promover el juego de ninguna manera. Recuerde, la casa siempre gana).
You can't make your program shorter by picking a random number between 1 and 12 for the die roll; it must be two numbers picked between 1 and 6.
- ¿Qué pasa con elegir un valor aleatorio en [1, 12] de una distribución que es idéntica a sumar dos valores aleatorios uniformes en [1, 6]?