说明:来源 CRAPS又称花旗骰,是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。该游戏使用两粒骰子,玩家通过摇两粒骰子获得点数进行游戏。简单的规则是:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;其他点数玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数,玩家继续要骰子,直到分出胜负。
1. 分析/思路
- 思路:
- 只要你有钱money,就可以一直下注一直玩: while money>0:pass
- 先下注,钱数不能超过总资产 <= money
- 第一次摇骰子,清点后判输赢
- 若继续摇骰子,清点后判输赢
- 循环步骤4
2. 程序
【实例 1】
from random import randint
money = 1000
while money > 0:
print('你的总资产: ', money)
while True:
debt = int(input('请下注: '))
if 0 < debt <= money:
break
needs_go_on = False
first = randint(1, 6) + randint(1, 6)
if first == 7 or first == 11:
print('\n你的点数是 {{ {} }},玩家胜'.format(first))
money += debt
elif first in (2, 3, 12):
print('\n你的点数是 {{ {} }},庄家胜'.format(first))
money -= debt
else:
print('\n你的点数是 {{ {} }},请继续'.format(first))
needs_go_on = True
while needs_go_on:
needs_go_on = False
current = randint(1, 6) + randint(1, 6)
if current == 7:
print('\n你的点数是 {{ {} }},庄家胜'.format(current))
money -= debt
elif current == first:
print('\n你的点数是 {{ {} }},玩家胜'.format(current))
money += debt
else:
print('\n你的点数是 {{ {} }},请继续'.format(current))
needs_go_on = True
print('你破产了,游戏结束!')
2. 扩展
- random 模块 ```python import random import string
生成 [1, 10] 区间的随机整数
random.randint(1,10)
生成从1到100的间隔为2的随机整数(就是偶数)
random.randrange(1, 100, 2)
生成 (0, 1) 之间的随机浮点数
random.random()
生成 (1.5, 5.8) 之间的随机浮点数
random.uniform(1.5, 5.8)
从字符串中随机选取一个元素
random.choice(‘abcdefghijklmnopqrstuvwxyz!@#$%^&*()’)
随机选取字符串:
random.choice([‘剪刀’, ‘石头’, ‘布’])
多个字符中生成指定数量的随机字符:
random.sample(‘zyxwvutsrqponmlkjihgfedcba’,5)
从a-zA-Z0-9生成指定数量的随机字符:
ran_str = ‘’.join(random.sample(string.ascii_letters + string.digits, 8))
多个字符中选取指定数量的字符组成新字符串:
‘’.join(random.sample([‘z’,’y’,’x’,’w’,’v’,’u’,’t’,’s’,’r’,’q’,’p’,’o’,’n’,’m’,’l’,’k’,’j’,’i’,’h’,’g’,’f’,’e’,’d’,’c’,’b’,’a’], 5))
打乱排序
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] random.shuffle(items) ```