CRAPS介绍:
CRAPS又称花旗骰,是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。该游戏使用两粒骰子,玩家通过摇两粒骰子获得点数进行游戏。简单的规则是:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;其他点数玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数,玩家继续要骰子,直到分出胜负。
python实现代码
from random import randint
money = 1000
while money > 0:
check = int(input('请下注:'))
while 0 > check or check > money:
check = int(input('当前资金%d,请下注:'%money))
first = randint(1, 6) + randint(1, 6)
print('first = ', first)
if (first == 2) or (first == 3) or (first == 12):
money -= check
print('you loss')
print('money: ', money)
continue
if first == 7 or first == 11:
money += check
print('You Win!')
print('money: ', money)
else:
nextNum = randint(1, 6) + randint(1, 6)
while nextNum != first and nextNum != 7:
print('nextNum is : ',nextNum)
nextNum = randint(1, 6) + randint(1, 6)
print('nextNum is : ',nextNum)
if nextNum == first:
money += check
print('You Win!')
print('money: ', money)
else:
money -= check
print('you loss')
print('money: ', money)
print('Money < 0 ,You Out!!')
关于概率层面的思考
第一次投掷
两个骰子间互不干扰,总可能性有6x6=36种,掷出7点的情况有六种(1-6、2-5、3-4、4-3、5-2、6-1),掷出11点的可能性有两种(5-6、6-5),掷出2点的可能性有一种(1-1),掷出3点的可能性有两种(1-2、2-1),掷出12点的可能性有一种(6-6)。综上分析,第一轮中玩家获胜的概率为 (6+2)/(6x6) = 2/9;庄家获胜的概率为 (1+2+1)/(6x6) = 1/9。单看第一轮玩家获胜的概率更大。
第二次投掷
两枚骰子,一共可以掷出2~12共11种可能性,当第一次投掷后既不是玩家获胜也不是庄家获胜时,将进行第二轮投掷。而进行第二轮投掷的概率高达2/3。此时规则变为掷出7时庄家获胜,投掷出与第一次相同的点数时玩家获胜,否则将重新投掷。这时庄家的胜率为 1/6;
玩家胜率见上图(黄色为第一次投掷分出胜负),此时玩家的概率最高为 (2/3)x(5/36) 小于 (2/3)x(6/36),而玩家的实际胜率为 (1/11)x(1/12 + 1/9 + 5/36)x2 x(1/6) = (1/11)x(2/3)x(1/6),即第二次投掷中玩家的胜率只有1/99。
综合胜率
玩家:2/9 + 1/99 =
庄家:1/9 + 1/9 =