假設一共有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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/150096.html
標籤:其他
