1.题目

编写程序,模拟抓狐狸小游戏。假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之前跳到隔壁洞口里。如果在规定的次数内抓到了狐狸就提前结束游戏并提示成功;如果规定的次数用完还没有抓到狐狸,就结束游戏并提示失败。

2.代码实现如下

import random

hole = []
for i in range(10):  # 猜十天的,天数可以改
    for j in range(0, 5):  # 用列表模拟五个洞口
        hole.append([])  # 产生了[[],[],[],[],[]]
    position = random.randrange(0, 5)  # 随机产生0-4之间的数,注意randrange右边取不到,即第几个洞口
    hole[position] = 1  # 用1代替兔子 有可能为[1,[],[],[],[]]像这样的形式,兔子在第一个洞口
    try:
        a = int(input('今天打算打开哪一个洞口?(0-4):'))  # 用户输入洞口号
        if a not in [0, 1, 2, 3, 4]:
            raise 2
    except Exception as e:  # 当用户输入的不是0-4之间的数字是,程序会抛出异常
        print(e, '你输入的数字不合理,请重新输入')
        continue  # 进行下一次循环,下面代码都不会执行
    if hole[a] == 1:
        print('恭喜你抓到了')
        break  # 使循环结束
    else:
        print('你今天没有抓到')
    if position == 4:
        new_position = 3
    elif position == 0:
        new_position = 1
    else:
        new_position = position + random.choice([1, -1]) # choice表示在1或-1选一个数出来
    position = new_position
else:
    print('再接再厉吧')

3.若有不好的地方,请大佬指教

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐