Craps ist ein ziemlich einfaches Würfelspiel, das oft in Casinos gespielt wird. Auch wenn Sie kein Spieler sind (was ich nicht bin), ist es immer noch ein ziemlich interessantes Spiel. Hier sind die Regeln:
Zu Beginn eines Craps-Spiels gibt es eine sogenannte Come-out- Runde. Der Spieler würfelt mit zwei Würfeln (sechsseitiger Würfel) und die beiden Würfelwürfe werden addiert. Wenn das Ergebnis 7 oder 11 ist, gewinnt die Person automatisch (dies wird als natürlich bezeichnet ). Wenn das Ergebnis 2, 3 oder 12 ist, verliert die Person automatisch (dies wird als Ausscheißen bezeichnet ). Andernfalls wird das Ergebnis als Punkt für die Punktrunde festgelegt.
Danach beginnt die Punkterunde . Während der Punkterunde muss der Spieler kontinuierlich 2 W6 würfeln, bis die Person eine 7 oder ihren Punkt aus der vorherigen Runde würfelt. Wenn die Person eine 7 würfelt, verliert sie. Wenn sie ihren Punkt rollen, gewinnen sie.
Herausforderung
Implementieren Sie ein einfaches Programm, das ein Würfelspiel simuliert. Wenn die Person während der Come-Out-Runde ein Natural oder Crap-Out würfelt, sollte das Programm "Natural:" oder "Crapping out:" ausgeben, gefolgt vom Würfelwurf und dann beenden. Andernfalls sollte "Point:" gefolgt von dem Punkt ausgegeben werden. Dann sollte es während der Punktrunde jeden Würfelwurf ausgeben, bis eine 7 oder der Punkt erreicht ist. Wenn die Person gewinnt, sollte sie ausgeben "Pass"
; Wenn sie verlieren, sollte es ausgegeben werden "Don't Pass"
.
Referenzimplementierung
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)}}()}}()}()
Beispielausgaben
Natural: 7
Crapping out: 3
Point: 9
4
8
11
9
Pass
und
Point: 5
3
7
Don't Pass
Das ist Code-Golf , also gewinnt der kürzeste Code.
(HAFTUNGSAUSSCHLUSS: Diese Herausforderung soll das Glücksspiel in keiner Weise fördern. Denken Sie daran, dass das Haus immer gewinnt.)
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.
- Was ist mit der Auswahl eines Zufallswerts in [1, 12] aus einer Verteilung, die mit der Addition von zwei einheitlichen Zufallswerten in [1, 6] identisch ist?