pallas 发表于 2021-11-20 23:45:25

python抓狐狸游戏设计与实现

(抓狐狸游戏设计与实现)编写程序,模拟抓狐狸小游戏。假设一共有一排 5 个洞口,小狐狸最开始的时候在其中一个洞口。小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就到第二天再来抓,但是第二天狐狸会在玩家来抓之前跳到隔壁洞口里。如果在规定的次数内抓到了狐狸就提前结束游戏并提示成功;如果规定的次数用完还没有抓到狐狸,就结束游戏并提示失败

麻烦大佬写一下注释,万分感谢!!

suchocolate 发表于 2021-11-20 23:53:43

麻烦你自己动手先写一个

pallas 发表于 2021-11-21 13:19:08

suchocolate 发表于 2021-11-20 23:53
麻烦你自己动手先写一个

import random

days = int(input("请输入抓狐狸的天数:")) # 抓狐狸的天数
day = 1
hole = # 狐狸在那个洞里
holeNum = random.randint(0, 4)# 随机生成狐狸的位置
hole = 1# 狐狸在那个洞 那个洞就为1 不在为0
# print(holeList)


# 狐狸移动
def foxMove(hole):
    move = random.randint(0, 1)
    if move == 1 and hole != 1:# 向右移动
      old = hole.index(1)#检索
      hole = 0
      hole = 1
    else:# 向左移动
      old = hole.index(1)
      hole = 0
      hole = 1
    #print(holeList)

# 游戏体
for i in range(days):
    playerNum = int(input("请输入你洞的编号(1,2,3,4,5):")) - 1
    if hole == 1:
      print(f"恭喜你在第{day}天的{playerNum + 1}号洞抓到了狐狸!")
      break
    else:
      print(playerNum + 1, "号洞没有狐狸")
      day += 1
      foxMove(hole)
else:
    new = hole.index(1)
    print(f"已经第{days}天啦!机会用完啦,狐狸在{hole}号洞里面滴")

pallas 发表于 2021-11-21 13:19:46

还有其他简便点的方法吗?{:10_254:}

傻眼貓咪 发表于 2021-11-21 13:48:23

pallas 发表于 2021-11-21 13:19
还有其他简便点的方法吗?

这其实就是猜数字题,只是换成狐狸和洞罢了,代码类似啊:import random

def game():
    hole = random.choice(range(1, 6))
    n = 3 # 预设 3 次机会
    while n > 0:
      n -= 1
      guess = int(input("请猜测狐狸在哪个洞?"))
      if guess == hole: return True
      hole = random.choice() if not hole else random.choice()
    return False

print("恭喜,你抓到狐狸了") if game() else print("抱歉,次数用完了,你没有抓到狐狸")

pallas 发表于 2021-11-21 15:23:51

傻眼貓咪 发表于 2021-11-21 13:48
这其实就是猜数字题,只是换成狐狸和洞罢了,代码类似啊:

大佬,这句话应该怎么理解呢?
hole = random.choice() if not hole else random.choice()

傻眼貓咪 发表于 2021-11-21 17:35:58

pallas 发表于 2021-11-21 15:23
大佬,这句话应该怎么理解呢?
hole = random.choice() if not hole else random.choice(

假设狐狸在洞一,隔壁就是洞二和洞五。假设狐狸在洞五,隔壁就是洞一和洞四(取模5是为了预防越界,比如洞五+1变洞六模5变洞一)

lightninng 发表于 2021-11-21 22:25:44

pallas 发表于 2021-11-21 15:23
大佬,这句话应该怎么理解呢?
hole = random.choice() if not hole else random.choice(

感觉你可能是对这种语法有疑问,这段代码等于
if not hole:
    hole = random.choice()
else:
    hole = random.choice()
是一种简单写法~~
页: [1]
查看完整版本: python抓狐狸游戏设计与实现