一、题干
编程模拟抓狐狸小游戏。假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了,如果里面没有狐狸就到第二天再来抓,但是第二天狐狸会在玩家来抓之前跳到隔壁洞口里。如果在规定的次数内抓到了狐狸就提前结束游戏并提示成功;如果规定的次数用完还没有抓到狐狸,就结束游戏并提示失败。允许用户连续多次玩游戏。
二、解题步骤
1.引入库
因需要随机数,引入random库:
import random
2.产生随机数,产生小狐狸一开始的位置
foxInHole=random.randint(1,5)
3.使用循环,使用户重复输入
代码如下:
def Foxing(maxStep):
foxInHole=random.randint(1,5)
for i in range(maxStep):
userInput=eval(input())
if foxInHole==userInput:
print('成功')
break
elif foxInHole!=userInput:
print('错误,请重试')
if foxInHole!=5 and foxInHole!=1:
guess=random.choice([1,-1]) #用一个guess变量,记录小狐狸的前进或者后退
foxInHole+=guess
elif foxInHole==1: #如果到起点,就只能前进
foxInHole+=1
elif foxInHole==5: #如果到终点,就只能后退
foxInHole-=1
continue
elif i==maxStep-1:
print('失败')
break