Simulate a game of Craps Craps is a fairly simple dice game often played in casinos. Even if you aren't a gambler (which I'm not), it's still a fairly interesting game. Here's the rules:
At the start of a game of Craps there's what is called the come-out round. The player rolls two d6s (six-sided die) and the two die rolls are added. If the result is 7 or 11, the person automatically wins (this is known as a natural). If the result is 2, 3 or 12 the person automatically loses (this is known as crapping out). Otherwise, the result is set as the point for the point round.
After this, the point round begins. During the point round, the player must continuously roll 2 d6s until the person rolls a 7 or his/her point from the previous round. If the person rolls a 7, they lose. If they roll their point, they win.
Challenge
Implement a simple program that simulates a game of craps. If the person rolls a natural or a crap-out during the come-out round, the program should output &quot;Natural: &quot; or &quot;Crapping out: &quot; followed by the die-roll and then exit. Otherwise, it should output &quot;Point: &quot; followed by the point. Then, during the point round, it should output every die-roll until a 7 or the point is reached. If the person wins, it should output &quot;Pass&quot;; if they lose it should output &quot;Don't Pass&quot;.
Reference Implementation
Groovy, 277 bytes
def a={return Math.random()*6+1};int b=a()+a();(b&lt;4||b==12)?{println&quot;Crapping out: &quot;+b}():{(b==7||b==11)?{println&quot;Natural: &quot;+b}():{println&quot;Point: &quot;+b;for(;;){int x=a()+a();println x;(x==7)?{println&quot;Don't Pass&quot;;System.exit(0)}():{if(x==b){println&quot;Pass&quot;;System.exit(0)}}()}}()}()

Try it online.
Sample outputs
Natural: 7
Crapping out: 3
Point: 9
4
8
11
9
Pass

and
Point: 5
3
7
Don't Pass

This is code-golf, so shortest code wins.
(DISCLAIMER: This challenge is not intended to promote gambling in any way. Remember, the house always wins.)
Ruby 164
Pretty straightforward. Interesting features:
The crapping out cases are summarised as r%12&lt;4 and the remaining natural cases are summarised as r%4==3.
The initial string is stored in c and further rolls are taken only if this is later alphabetically than the single letter ?P (which only occurs for Point.)
f=-&gt;{rand(6)+rand(6)+2}
s=0
r=f[]
print c=r%12&lt;4?'Crapping out':r%4==3?'Natural':'Point',&quot;: #{r}
&quot;
c&gt;?P&amp;&amp;(until s==r||s==7
p s=f[]end
print s==7?&quot;Don't &quot;:&quot;&quot;,&quot;Pass&quot;)