用PythonCharm制做抓狐狸的小游戏。

假设一共有5个洞口,小狐狸最开始再其中一个洞口,而后玩家随机打开一个洞口,若是里面有狐狸就抓到了,若是里面没有狐狸就次日再来抓,可是次日狐狸会在玩家来以前跳到隔壁洞口里。若是在规定的次数内抓到就算成功。

from random import  choice, randrange

def catchMe(n=5,maxStep = 10):
    """模拟抓小狐狸,一共有n个洞口,容许抓maxStep次 若是失败,小狐狸就会跳到隔壁洞口"""
    #n个洞口,有狐狸为1,没有狐狸为0
    positions = [0] * n
    #狐狸的随机初始位置
    oldPos = randrange(0,n)
    positions[oldPos] = 1

    #抓maxStep次
    while maxStep >=0:
        maxStep-= 1
        #这个循环保证用户输入是有效洞口编号
        while True:
            try:
                x =input('请输入洞口编号(0-{0}):'.format(n-1))
                #若是输入的不是数字,就会跳转except部分
                x = int(x)
                #若是输入的洞口编号有效,结束这个循环,不然就会继续输入
                assert 0 <=x< n
                break
            except:
                #若是输入的不是数字,就执行这里的代码
                print('要按套路来啊,再给你一次机会。')
        if positions[x] == 1:
            print('成功,我抓到小狐狸。')
            break
        else:
            print('今天又没抓到。')
        #若是此次没抓到,狐狸就跳到隔壁洞口
        if oldPos ==n - 1:
            newPos = oldPos - 1
        elif oldPos == 0:
            newPos = 0
        else:
            newPos = oldPos + choice((-1.1))
            positions[oldPos],positions[newPos] =0,1
    else:
        print('放弃吧,你这样乱试是没有但愿的。')
#启动游戏,开始抓狐狸吧
catchMe()