小项目--猜年龄游戏

这是今天需要预习的一个小项目,规则如下

  1. 给定年龄,用户可以猜三次年龄
  2. 年龄猜对,让用户选择两次奖励
  3. 用户选择两次奖励后可以退出

'''
给定年龄,用户可以猜三次年龄

年龄猜对,让用户选择两次奖励

用户选择两次奖励后可以退出
'''
age = 18  # 答案
count = 0  # 游戏次数控制
prize_dict = {0: '布娃娃', 1: '变形金刚', 2: '奥特曼', 3: '<Python从入门到放弃>'}

while count < 3:
    age_of_user = input("输入您猜的年龄:")
    if not age_of_user.isdigit():
        print("请输入数字兄弟")
        continue
    age_of_user = int(age_of_user)
    if age_of_user == age:
        print("恭喜您猜对了,您有两次选择奖励的机会,输入'q'退出")
        count = 2
        prize_key = [0]*2
        k = 0
        while k < 2:
            print(prize_dict)
            choice = input("输入您想要的奖励")
            if choice == 'q':
                count = 99
                break
            if not choice.isdigit():
                print("请输入数字兄弟")
                continue
            choice = int(choice)
            if choice in prize_dict:
                print("您选择了%s" % prize_dict[choice])
                prize_key[k] = choice
                k += 1
            else:
                print("请输入0-3")
                continue
        print("您选择的奖励有:")
        if k:
            for i in range(2):
                print(" %s" % prize_dict[prize_key[i]])
    elif age_of_user < age:
        print("猜 小 了嗷铁子")
    else:
        print("猜 大 了嗷铁子,你还有%d次机会")

    if count == 99:
        print("不要奖励你是真的牛批,拜拜")
        break
    if count == 2:
        while True:
            choice_want_continue = input("机会用完啦,还想继续吗 ['Y'or'y' 是] ['N'or'n' 否]")
            if choice_want_continue == 'Y' or choice_want_continue == 'y':
                count = 0
                break
            elif choice_want_continue == 'N' or choice_want_continue == 'n':
                break;
            else:
                print("不要调皮了,能成熟一点吗")
                continue
    else:
        while True:
            again = int(input("还想继续吗铁子,你还有%s次机会,按0退出,按1继续" % (2 - count)))
            if again == 1:
                count += 1
                break;
            elif again == 0:
                count =3
                break;
            else:
                print("输入0或者1,别玩了兄弟")
                continue

其实也没有什么好说的,我觉得可以更新的一些地方就是,给用户来一个列表用来放已经获得的奖品,或者说奖品每一份有多少,这样选择的时候就比较现实了。

而且我觉得挺有意思的就是关于猜数字,如果有人能够告诉你,你猜的跟实际的是偏大还是偏小的话,每次都选择中间的数字就挺好的,比如给出范围0-100,第一次就猜50,大了就25,小了就75,哈哈哈,就是二分法啦。

不过我觉得可以引申下去,那么在100以内,最多猜多少次就能猜中这个数字呢?

我的猜想是7次,毕竟27>100>26...

原文地址:https://www.cnblogs.com/fanwenkeer/p/11265967.html