用PythonCharm製作抓狐狸的小遊戲。

2020-10-02 13:00:26

假設一共有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()