Craps, genellikle casinolarda oynanan oldukça basit bir zar oyunudur. Bir kumarbaz olmasanız bile (ki ben değilim), hala oldukça ilginç bir oyun. İşte kurallar:
Bulut bir oyunun başında ne denir var come-out yuvarlak. Oynatıcı iki d6 (altı taraflı kalıp) alır ve iki kalıp silindiri eklenir. Sonuç 7 veya 11 ise, kişi otomatik olarak kazanır (bu doğal olarak bilinir ). Sonuç 2, 3 veya 12 ise, kişi otomatik olarak kaybeder (buna kırılma denir ). Aksi takdirde, sonuç olarak ayarlanır noktaya noktası tur için.
Bundan sonra nokta turu başlar. Nokta turu sırasında, oyuncu bir önceki turdan 7 veya puanını alana kadar oyuncu sürekli olarak 2 d6 döndürmelidir. Kişi 7 yuvarlarsa kaybeder. Puanlarını yuvarlarlarsa kazanırlar.
Meydan okuma
Craps oyununu simüle eden basit bir program uygulayın. Eğer kişi çıkış turu sırasında bir doğal yol ya da bok çıkarırsa, program "Doğal:" ya da "Çıkarma:" ardından kalıp ruloyu çıkarmalı ve sonra çıkmalıdır. Aksi takdirde, "Nokta:" ve ardından nokta çıkmalıdır. Daha sonra, nokta turu sırasında, 7 veya noktaya ulaşılana kadar her kalıp rulosunu çıkarmalıdır. Kişi kazanırsa, çıktı almalıdır "Pass"
; eğer kaybederse çıktı almalıdır "Don't Pass"
.
Referans uygulaması
Groovy, 277 bayt
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)}}()}}()}()
Örnek çıktılar
Natural: 7
Crapping out: 3
Point: 9
4
8
11
9
Pass
ve
Point: 5
3
7
Don't Pass
Bu kod golf , bu yüzden en kısa kod kazanır.
(YASAL UYARI: Bu zorluğun kumar oynamayı hiçbir şekilde teşvik etmesi amaçlanmamıştır. Unutmayın, ev her zaman kazanır.)
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.
- [1, 6] 'da iki eşit rastgele değer eklemeye özdeş bir dağılımdan [1, 12]' de rastgele bir değer seçmeye ne dersiniz?