左右横跳的小狐狸
题目概述
编写抓狐狸游戏。假设共有5个洞,小狐狸最初随机跳入一个洞中。玩家有三次机会输入一个洞的编号,若狐狸恰好在该洞中,则玩家胜利;若狐狸不在该洞并且猜测没有超过三次,则狐狸会在玩家下一次猜测之前跳入隔壁洞中。要求定义Fox类描述狐狸的位置,编程实现该游戏判断胜负并统计玩家猜测的次数。
本题的核心是利用random库中的函数确定这只小狐狸的位置以及对小狐狸到达边缘洞穴的处理
import random
# 调皮小狐狸的位置
class Fox():
# 构造函数
def __init__(self, currentPositon):
Fox.currentPositoin = currentPositon
# 随机生成小狐狸的位置
def position(self):
currentPosition = random.randint(1, 5) # 随机生成小狐狸的初始位置[1,5]
return currentPosition
f = Fox(3) # 3是随意填的数,如果不给它一个数值会报错(自己编写构造函数的话)
l = f.position()
Count = 0
for i in range(3):
x = int(input('请输入要打开的洞口编号(1-5):'))
Count += 1
if x == l:
print('玩家胜利,您共猜了:%d次'%(Count))
break
if l == 1:
l += 1
elif l == 5:
l -= 1
else:
# 中间位置,小狐狸的左右横跳
l += random.choice([-1, 1]) # choice从序列中随机返回一个元素
if i == 2:
print('玩家失败,您的次数用光了')
运行结果如图:
觉得有帮助点个赞再走!!!