Craps to dość prosta gra w kości, często grana w kasynach. Nawet jeśli nie jesteś hazardzistą (a ja nie jestem), wciąż jest to dość interesująca gra. Oto zasady:
Na początku gry w Craps jest tak zwana runda come-out . Gracz rzuca dwoma k6 (sześciościenna kość) i dodaje dwa rzuty. Jeśli wynik to 7 lub 11, osoba automatycznie wygrywa (jest to znane jako naturalne ). Jeśli wynik wynosi 2, 3 lub 12, osoba automatycznie przegrywa (to się nazywa wyniszczenie ). W przeciwnym razie, wynik jest ustawiony jako punkt za punkt rundzie.
Następnie rozpoczyna się runda punktowa . Podczas rundy punktowej gracz musi nieprzerwanie rzucać 2 k6s, aż osoba rzuci 7 lub swój punkt z poprzedniej rundy. Jeśli osoba wyrzuci 7, przegrywa. Jeśli wyrzucą punkt, wygrywają.
Wyzwanie
Zaimplementuj prosty program symulujący grę w kości. Jeśli dana osoba wyrzuci naturalny lub bzdury podczas rundy come-out, program powinien wypisać „Natural:” lub „Crapping out:”, a następnie rzut i następnie wyjść. W przeciwnym razie powinien wypisać „Punkt:”, a następnie punkt. Następnie, podczas rundy punktowej, powinien generować każdy rzut kością, aż do 7 lub punktu. Jeśli dana osoba wygra, powinna wyjść "Pass"
; jeśli przegrają, powinien wyjść "Don't Pass"
.
Realizacja referencji
Groovy, 277 bajtów
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)}}()}}()}()
Przykładowe wyniki
Natural: 7
Crapping out: 3
Point: 9
4
8
11
9
Pass
i
Point: 5
3
7
Don't Pass
To jest golf golfowy , więc wygrywa najkrótszy kod.
(OŚWIADCZENIE: To wyzwanie nie ma na celu promowania hazardu w jakikolwiek sposób. Pamiętaj, że dom zawsze wygrywa.)
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.
- A co z wybieraniem losowej wartości w [1, 12] z rozkładu, który jest identyczny z dodawaniem dwóch jednolitych losowych wartości w [1, 6]?