一个投骰子赌大小的游戏
一个投骰子赌大小的游戏
机器人和用户的起始资金都是 10 个硬币
• 要求用户猜大小:
■ 用户输入 b 代表 “大”;
■ 用户输入 s 代表 “小”;
■ 用户输入 q 代表 “退出”;
• 用户的输入和随机产生的数字比较有以下几种情况:
■ 随机数小于 7,用户猜小,用户赢;
■ 随机数小于 7,用户猜大,用户输;
■ 随机数等于 7,用户无论猜大还是猜小,结局平,不输不赢;
■ 随机数大于 7,用户猜小,用户输;
■ 随机数大于 7,用户猜大,用户赢; • 游戏结束条件:
■ 机器人和用户,若任意一方硬币数量为 0,则游戏结束;
■ 用户输入了 q 主动终止游戏。
from random import randrangecoin_user, coin_bot = 10, 10 # 可以用一个赋值符号分别为多个变量赋值
rounds_of_game = 0def bet(dice, wager): # 接收两个参数,一个是骰子点数,另一个用户的输入if dice == 7:print(f'The dice is {dice};\nDRAW!\n') # \n 是换行符号return 0elif dice < 7:if wager == 's':print(f'The dice is {dice};\nYou WIN!\n')return 1else:print(f'The dice is {dice};\nYou LOST!\n')return -1elif dice > 7:if wager == 's':print(f'The dice is {dice};\nYou LOST!\n')return -1else:print(f'The dice is {dice};\nYou WIN!\n')return 1while True: # 除 for 之外的另外一个循环语句print(f'You: {coin_user}\t Bot: {coin_bot}')dice = randrange(2, 13) # 生成一个 2 到 12 的随机数wager = input("What's your bet? ")if wager == 'q':break elif wager in 'bs': # 只有当用户输入的是 b 或者 s 得时候,才 “掷骰子”……result = bet(dice, wager)coin_user += result # coin_user += result 相当于 coin_user = coin_user + resultcoin_bot -= resultrounds_of_game += 1if coin_user == 0:print("Woops, you've LOST ALL, and game over!")breakelif coin_bot == 0:print("Woops, the robot's LOST ALL, and game over!")breakprint(f"You've played {rounds_of_game} rounds.\n")
print(f"You have {coin_user} coins now.\nBye!")
def bet (dice ,wager ):
函数主要是被调用配合下面
while True:主函数
def判断骰子点数和用户输入大小确定返回值大小while True:(无限循环碰到break直接跳出)
首先输出用户和机器所拥有的筹码
再输入骰子点数和用户选项赋给def bet 函数
判断用户选项通过def的返回值给筹码进行加减
同时游戏场数+1
最后分出胜负输出结果(玩家主动退出也可结束游戏)