Craps - це досить проста гра в кубики, яку часто грають в казино. Навіть якщо ви не азартний гравець (чого я не є), це все-таки досить цікава гра. Ось правила:
На початку гри в Craps є те, що називається раунд виходу . Гравець накручує два d6s (шість-шматок) та додаються два ролики. Якщо результат дорівнює 7 або 11, людина автоматично перемагає (це відомо як природне ). Якщо результат 2, 3 або 12, людина автоматично програє (це відомо як вистригання ). В іншому випадку результат встановлюється як точка для точкового раунду.
Після цього починається точковий раунд. Під час точкового раунду гравець повинен постійно перекочувати 2 d6, поки людина не скочує 7 або свою точку з попереднього раунду. Якщо людина котить 7, вона програє. Якщо вони перекочують свою точку, вони виграють.
Виклик
Реалізуйте просту програму, яка імітує гру в калачі. Якщо під час раунду виїзду людина викочує натуральну або ганчірну, програма повинна вивести "Natural:" або "Crapping out:" з подальшим викруткою, а потім вийти. В іншому випадку він повинен вивести "Точку:", а потім точку. Потім, під час точкового раунду, він повинен виводити кожен шматок, до досягнення 7 чи точки. Якщо людина перемагає, вона повинна вийти "Pass"
; якщо вони програють, це повинно вийти "Don't Pass"
.
Довідкова реалізація
Groovy, 277 байт
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)}}()}}()}()
Зразки виходів
Natural: 7
Crapping out: 3
Point: 9
4
8
11
9
Pass
і
Point: 5
3
7
Don't Pass
Це код-гольф , тому найкоротший код виграє.
(ВІДМОВА ВІДПОВІДАЛЬНІСТЬ: Ця задача не має жодних зусиль сприяти азартній грі. Пам'ятайте, що будинок завжди виграє.)
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, 12] з розподілу, ідентичного додавання двох рівномірних випадкових значень у [1, 6]?