Craps è un gioco di dadi abbastanza semplice spesso giocato nei casinò. Anche se non sei un giocatore d'azzardo (cosa che non sono), è comunque un gioco abbastanza interessante. Ecco le regole:
All'inizio di una partita di Craps c'è quello che viene chiamato il round uscente . Il giocatore lancia due d6 (dado a sei facce) e vengono aggiunti i due tiri di dado. Se il risultato è 7 o 11, la persona vince automaticamente (questo è noto come naturale ). Se il risultato è 2, 3 o 12 la persona perde automaticamente (questo è noto come crapping out ). Altrimenti, il risultato viene impostato come punto per il punto rotondo.
Successivamente, inizia il punto circolare. Durante il round di punti, il giocatore deve tirare continuamente 2 d6s fino a quando la persona ottiene un 7 o il suo punto dal round precedente. Se la persona ottiene un 7, perde. Se ottengono il loro punto, vincono.
Sfida
Implementa un semplice programma che simula un gioco di craps. Se la persona tira un naturale o uno schifo durante il round di lancio, il programma dovrebbe produrre "Natural:" o "Crapping out:" seguito dal lancio del dado e quindi uscire. Altrimenti, dovrebbe essere visualizzato "Punto:" seguito dal punto. Quindi, durante il round di punti, dovrebbe emettere ogni tiro di dado fino a raggiungere un 7 o il punto. Se la persona vince, dovrebbe produrre "Pass"
; se lo perdono dovrebbe essere prodotto "Don't Pass"
.
Implementazione di riferimento
Groovy, 277 byte
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)}}()}}()}()
Output di esempio
Natural: 7
Crapping out: 3
Point: 9
4
8
11
9
Pass
e
Point: 5
3
7
Don't Pass
Questo è code-golf , quindi vince il codice più corto.
(ESCLUSIONE DI RESPONSABILITÀ: questa sfida non ha lo scopo di promuovere il gioco d'azzardo in alcun modo. Ricorda, la casa vince sempre.)
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.
- Che ne dite di scegliere un valore casuale in [1, 12] da una distribuzione identica all'aggiunta di due valori casuali uniformi in [1, 6]?