zoukankan      html  css  js  c++  java
  • 第一阶段:Python开发基础 day09 阶段性小结--猜年龄游戏升级版

    猜年龄升级版

    '''
    需求如下:

    1. 年龄随机(18-60)之间 ,只能猜三次,三次之后还想玩需要充值
    2. 猜中之后可以进行两次大转盘抽奖 奖品存储在文件中,用户可以抽两次奖
    3. 注要做输入的字符判断
      '''
    # 导入随机数的模块库
    import random
    # 首先随机一个18-60之间的年龄
    random_age = random.randint(18,60)
    # 定义一个变量做游戏次数计数
    count = 0
    # 打印一个游戏开始的头(纯属为了显示好看)
    print('*'*25,'游戏开始','*'*25)
    
    # 程序主题,开始进行循环控制
    while count < 3:
        # 用户输入自己猜测的年龄
        guess_age = input(f'请输入你猜的年龄,还有{3-count}次游戏机会:')
        # 游戏次数减一
        count += 1
        # 判断输入的字符是否符合要求,不符合则跳出重新输入
        if not guess_age.isdigit():
            print('你的输入有误,请输入正确的格式')
            if count == 3:
                inp_y = input('你的游戏次数已用完,请输入"y or Y "获得三次游戏机会:').lower()
                # 如果输入了y就,将count 置为 0 ,继续游戏
                if inp_y == 'y':
                    count = 0
                else:
                    # 如果没有输入y,而是其他字符就直接结束游戏
                    print('你的输入有误,已退出游戏')
                    break
            continue
    
        # 将输入的字符型数据转换为整型
        guess_age = int(guess_age)
        # 判断输入的年龄和我们要猜的年龄
        if guess_age == random_age :
            print('恭喜您,猜中了。接下来进入抽奖环节')
    
            # 猜对之后就进入到抽奖环节
            get_prize = {}  # 定义一个空字典,用于存储接下来获得奖励
            # 首先打印出所有的奖品选项
            with open('prize.txt', 'r', encoding='utf8') as f:
                data = f.read()
            # 将文件中的数据放入到一个数据字典中
            data_dict = dict(eval(data))
            # 打印这个字典中的数据
            for k, v in data_dict.items():
                print(f'奖品编号:{k} {v}')
            # 进行抽奖循环
            for i in range(2):
                in_start = input(f'请输入"s or S"进行抽奖,剩余{2 - i}次抽奖机会:').lower()
                if in_start == 's':
                    # 随机获取中奖的编号
                    prize_num = random.randint(0, 8)
                    # 打印抽出来的结果
                    print(f'恭喜您抽得以下奖品:{data_dict[prize_num]}')
                    # 将 抽出来的奖品放入到我们的奖品字典中
                    if data_dict[prize_num] in get_prize.keys():
                        get_prize[data_dict[prize_num]] += 1
                    else:
                        get_prize[data_dict[prize_num]] = 1
                else:
                    print('你放弃了一次抽奖机会')
            else:
                print('您的抽奖机会已用完,您获得以下奖品:')
                # 打印出我们抽到的奖品汇总信息
                for i, j in get_prize.items():
                    print(f'奖品{i} {j}个', end=' ')
                # 跳出while循环,结束游戏
                break
    
        elif guess_age > random_age :
            print('对不起,猜大了')
        elif guess_age < random_age :
            print('对不起猜小了')
        # 当count为3的时候证明已经猜了三次,这个时候要选择是否继续猜下去了
        if count == 3:
            inp_y = input('你的游戏次数已用完,请输入"y or Y "获得三次游戏机会:').lower()
            # 如果输入了y就,将count 置为 0 ,继续游戏
            if inp_y == 'y':
                count = 0
                continue
            else:
                # 如果没有输入y,而是其他字符就直接结束游戏
                print('你的输入有误,已退出游戏')
                break
    # 打印游戏结束语(纯属好看,没有实际意义)
    print('
    ',"*"*25,"游戏结束","*"*25)
    
  • 相关阅读:
    决策树
    flask数据库的迁移
    flask的查询,一对多,多对多
    django的验证码
    第一讲:python环境配置(python2.7+python3.7)
    pytest
    【TS】-类型兼容性
    HTML--src和href的区别
    JS--为什么null是对象?
    JS--null和undefined的区别
  • 原文地址:https://www.cnblogs.com/foreversun92/p/11310343.html
Copyright © 2011-2022 走看看