@chengweihuang
2019-01-07T12:38:51.000000Z
字数 2288
阅读 585
数字游戏
单人模式
# encoding: utf-8__author__ = 'ChengweiHuang'__date__ = '2018/7/27 14:10'import randomprint('游戏开始,你有10000元')def roll_dice(numbers = 3,points = None):print('----- ---- ---- 摇骰子 ---- ---- -----')if points is None:points = []while numbers > 0:point = random.randrange(1,7)points.append(point)numbers = numbers - 1return pointsdef roll_result(my_sun):if my_sun<=10:return '小'else:return '大'def game():money = 10000while True:stake=input('请输入下注金额')if int(stake)>money:print('余额不足,请重新下注!')continueelse:your_choice = input('请下注,大 or 小:')numbers=roll_dice()print(numbers)my_sum=sum(numbers)print(my_sum)da_xiao=roll_result(my_sum)print(da_xiao)if your_choice==da_xiao:money=money+int(stake)print('恭喜你,这把赢了%s元,你的余额为%s'%(int(stake),money))if money>=100000:print('你运气太好,请出门右拐隔壁澳门皇家赌场。游戏结束')breakelse:money=money-int(stake)print('这把输了%s元,你的余额为%s'%(stake,money))if money==0:print('余额不足,游戏结束')breakgame()
多人模式
import randomimport timeclass Gambler():'''流浪赌徒类'''users = []def __init__(self, name,money,b_or_s=None, pour_money=None):self.name=nameself.money = moneyself.pour_money = pour_moneyself.b_or_s=b_or_sself.__class__.users.append(self)@classmethoddef dice(cls):'''生成骰子 得到结果:return:'''cls.L = []for i in range(3):nums = random.randint(1, 6)cls.L.append(nums)cls.result = '大' if sum(cls.L) > 9 else '小'#下注方法def bottom_pour(self):'''下注函数 输入金额,判断余额是否足够 ,输入 大或小:return:'''f = Truewhile f:self.pour_money = int(input('请%s (余额%d)输入下注金额' % (self.name, self.money)))if self.pour_money > self.money:print('资金不足,请联系管理员充值')continues = input('请%s,输入大小 1 表示大 2 表示小' % (self.name))self.b_or_s = '大' if s == '1' else '小'f = False# 计算def my_count(self):if self.b_or_s != self.__class__.result:self.pour_money = int(-self.pour_money)self.money = self.money + self.pour_moneydef out(self):print('账单--', self.name, ':', '余额**', self.money, '单注流水**', self.pour_money, '选择**', self.b_or_s)if self.money == 0:self.__class__.users.remove(self)print('%s 出局'%self.name)def mian():while 1:#生成骰子Gambler.dice()for i in Gambler.users:i.bottom_pour() # 下注print('疯狂计算中')time.sleep(3)print('结果 : %s %s'%(Gambler.L,Gambler.result))for j in Gambler.users:j.my_count() # 结算for k in Gambler.users:k.out() # 出局判断if len(Gambler.users) == 1:print('%s: 恕我直言,在座的各位都是辣鸡' % (Gambler.users[0].name))breakif len(Gambler.users) == 0:print('又调皮了')breakif __name__ == '__main__':while True:data = input('请输入玩家姓名和初始金额,以逗号分隔,回车结束')if data=='':breakuser=Gambler(data.split(',')[0],int(data.split(',')[1]))mian()