场景概述:
玩家摇两颗色子,如果第一次摇出了7点或11点,玩家胜;如果摇出了2点、3点、12点,庄家胜;如果摇出了其他的点数,游戏继续,玩家重新摇色子;如果玩家摇出了第一次摇的点数,玩家胜;如果玩家摇出了7点,庄家胜;如果玩家摇出其他点数,游戏继续,玩家重新摇色子,直到分出胜负。另外,假设玩家有1000元,直至输光为止。
import random
money = 1000
while money > 0:
print(f'玩家总资产为{money}元。')
zhuma = 0
while zhuma <= 0 or zhuma > money:
try: # 此处用try和except防止用户输入非想要的值
zhuma = int(input('请下注:'))
except ValueError:
pass
f1 = random.randrange(1, 7)
f2 = random.randrange(1, 7)
first_point = f1 + f2
print(f'玩家摇出了{first_point}点')
if first_point in (7, 11):
# 等价于 if first_point==7 or first_point==11:
print('玩家胜!')
money += zhuma
elif first_point in (2, 3, 12):
# 等价于 elif first_point==2 or first_point==3 or first_point==12:
print('庄家胜!')
money -= zhuma
else:
while True:
curr_point = random.randrange(1, 7) + random.randrange(1, 7)
print(f'玩家摇出了{curr_point}点')
if curr_point == first_point:
print('玩家胜!')
money += zhuma
break
elif curr_point == 7:
print('庄家胜!')
money -= zhuma
break
print('玩家已经破产,游戏结束!')
|