声明:本文仅供学习参考,太久没写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()