Python作业“骰子游戏”

声明:本文仅供学习参考,太久没写python代码,如果有bug可以在评论区提出,如果有校友搜到本文还请修改一下代码再提交,以免答案一致。
在这里插入图片描述
学校作业内容如下:
1.模拟一款投掷3个骰子的游戏,每个骰子能够投出的数字为1-6间的整数。如果
投出豹子、顺子、对子,则分别打印”豹子”、”顺子”和”对子”,否则打印”你输了”。
2.接上题,如果初始资金为10000元,投出豹子赚1000元,投出顺子赚300元,
投出对子赚100元,输了则亏200元,模拟玩100轮,显示每轮投出的3个点数、结果
和资金余额。
我的代码:

import random


class Sievegame(object):
    def __init__(self):
        # 初始金额
        self.money = 0

    def start(self):
        point = [random.randint(1, 6) for n in range(3)]
        # 排序
        point.sort()
        result = None
        if len(set(point)) == 1:
            result = '豹子'
        elif len(set(point)) == 2:
            result = '对子'
        elif min(point) + 2 == max(point):
            result = '顺子'
        return result, point

    def judge(self, result):
        if result == None:
            self.money -= 200
            result = '你输了'
        elif result == '豹子':
            self.money += 1000
        elif result == '顺子':
            self.money += 300
        elif result == '对子':
            self.money += 100
        return result

    def play(self, num):
        for i in range(int(num)):
            if self.money >= 200:
                result, point = self.start()
                jieguo = self.judge(result)
                print("点数:{" + "筛子1点数:" + str(point[0]) + "," +
                    "筛子2点数:" + str(point[1]) + "," +
                    "筛子3点数:" + str(point[2]) + "}",
                    "结果:", jieguo, "余额:", self.money)
            else:
                print("您的余额不足了 余额大于200才能进行游戏")
                print("当前您的余额为:",self.money)
                exit()

    def run(self):
        print("游戏开始了喔!注意您输入的初始金额必须大于等于200才能正常进行游戏")
        while (True):
            money = input("请输入您的初始金额:")
            money_flag = money.isdigit()
            if money_flag:
                if 200 <= int(money):
                    self.money = int(money)
                    break
                else:
                    print("帅哥您的初始金额必须大于等于200才能进行游戏喔")
                    continue
            else:
                print("帅哥请您输入数字类型")
                continue
        while (True):
            if self.money < 200:
                print("您的余额为:", self.money, "无法进行游戏了")
                print("进行游戏的话余额必须大于等于200")
                exit()
            else:
                num = input("帅哥请您输入玩多少次:")
                flag = num.isdigit()
                if flag:
                    self.play(num)
                    continue
                else:
                    print("帅哥您输入的有误,请输入一个数字")
                    continue

if __name__ == '__main__':
    shaizi = Sievegame()
    shaizi.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值