Le Craps est un jeu de dés assez simple souvent joué dans les casinos. Même si vous n'êtes pas un joueur (ce que je ne suis pas), c'est toujours un jeu assez intéressant. Voici les règles:
Au début d'une partie de Craps, il y a ce qu'on appelle le round de sortie . Le joueur lance deux d6 (dé à six faces) et les deux jets de dé sont ajoutés. Si le résultat est 7 ou 11, la personne gagne automatiquement (c'est ce qu'on appelle un naturel ). Si le résultat est 2, 3 ou 12, la personne perd automatiquement (c'est ce qu'on appelle le crapping out ). Sinon, le résultat est défini comme le point pour le point rond.
Après cela, le tour de points commence. Pendant le tour de points, le joueur doit lancer en continu 2 d6s jusqu'à ce que la personne lance un 7 ou son point du tour précédent. Si la personne obtient un 7, elle perd. S'ils roulent leur point, ils gagnent.
Défi
Implémentez un programme simple qui simule un jeu de craps. Si la personne lance un naturel ou un crap-out pendant le round de come-out, le programme devrait sortir "Natural:" ou "Crapping out:" suivi du dé et puis quitter. Sinon, il devrait afficher "Point:" suivi du point. Ensuite, pendant le round de points, il devrait sortir chaque jet de dé jusqu'à ce qu'un 7 ou le point soit atteint. Si la personne gagne, elle devrait sortir "Pass"
; s'ils perdent, il devrait sortir "Don't Pass"
.
Implémentation de référence
Groovy, 277 octets
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)}}()}}()}()
Exemples de sorties
Natural: 7
Crapping out: 3
Point: 9
4
8
11
9
Pass
et
Point: 5
3
7
Don't Pass
C'est le code-golf , donc le code le plus court l'emporte.
(AVERTISSEMENT: ce défi n'est pas destiné à promouvoir le jeu en aucune façon. N'oubliez pas, la maison gagne toujours.)
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'en est-il de choisir une valeur aléatoire dans [1, 12] à partir d'une distribution identique à l'ajout de deux valeurs aléatoires uniformes dans [1, 6]?