鱼C论坛

 找回密码
 立即注册
查看: 576|回复: 2

[已解决]第37讲的乌龟吃鱼的问题

[复制链接]
发表于 2019-5-10 18:55:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
根据要求,参照小甲鱼的示例代码,敲出了如下代码,运行虽不报错,但却一直输出“乌龟累死了”,不知问题在哪里,请指教!
  1. import random as r

  2. class Turtle:
  3.         def __init__(self):
  4.                 # 初始化体力值
  5.                 self.hp = 100
  6.                 # 初始化移动距离
  7.                 self.step = r.randint(1,3)
  8.                 #        初始化位置
  9.                 self.x = r.randint(1, 11)
  10.                 self.y = r.randint(1, 11)
  11.         def move(self):
  12.                 # 随机选择移动方向
  13.                 choice = r.choice('xy')

  14.                 if choice == 'x':        # 横向移动
  15.                         # 随机选择左右
  16.                         op = r.choice('+-')
  17.                         if op == '+':
  18.                                 if self.x < 9:
  19.                                         self.x += self.step
  20.                                 if self.x == 9:
  21.                                         self.x += 1
  22.                                 if self.x == 10:        # 触边反向移动
  23.                                         self.x -= self.step
  24.                         else:       
  25.                                 if self.x > 1:
  26.                                         self.x -= self.step
  27.                                 if self.x == 1:
  28.                                         self.x -= 1
  29.                                 if self.x == 0:        # 触边反向移动
  30.                                         self.x += self.step                       
  31.                 else:        #        纵向移动
  32.                         # 随机选择上下
  33.                         op = r.choice('+-')
  34.                         if op == '+':
  35.                                 if self.y < 9:
  36.                                         self.y += self.step
  37.                                 if self.y == 9:
  38.                                         self.y += 1
  39.                                 if self.y == 10:        # 触边反向移动
  40.                                         self.y -= self.step
  41.                         else:
  42.                                 if self.y > 1:
  43.                                         self.y -= self.step
  44.                                 if self.y == 1:
  45.                                         self.y -= 1
  46.                                 if self.y == 0:        # 触边反向移动
  47.                                         self.y += self.step
  48.                 self.hp -= 1
  49.                 return [self.x, self.y]
  50.         def eat(self):
  51.                 self.hp += 20
  52.                 if self.hp > 100:
  53.                         self.hp = 100
  54.                        
  55. class Fish:
  56.         def __init__(self):
  57.                 # 初始化移动距离
  58.                 self.step = 1
  59.                 #        初始化位置
  60.                 self.x = r.randint(1, 11)
  61.                 self.y = r.randint(1, 11)
  62.         def move(self):
  63.                 # 随机选择移动方向
  64.                 choice = r.choice('xy')

  65.                 if choice == 'x':
  66.                         # 随机选择左右
  67.                         op = r.choice('+-')
  68.                         if op == '+':
  69.                                 if self.x <= 9:
  70.                                         self.x += self.step
  71.                                 if self.x == 10:        # 触边反向移动
  72.                                         self.x -= self.step
  73.                         else:
  74.                                 if self.x >= 1:
  75.                                         self.x -= self.step
  76.                                 if self.x == 0:        # 触边反向移动
  77.                                         self.x += self.step                       
  78.                 else:
  79.                         # 随机选择上下
  80.                         op = r.choice('+-')
  81.                         if op == '+':
  82.                                 if self.x <= 9:
  83.                                         self.x += self.step
  84.                                 if self.x == 10:        # 触边反向移动
  85.                                         self.x -= self.step
  86.                         else:
  87.                                 if self.x >= 1:
  88.                                         self.x -= self.step
  89.                                 if self.x == 0:        # 触边反向移动
  90.                                         self.x += self.step       
  91.                 return [self.x, self.y]
  92.                
  93. turtle = Turtle()
  94. fishs = []
  95. for i in range(10):
  96.         perfish = Fish()
  97.         fishs.append(perfish)

  98. while True:
  99.         if not len(fishs):
  100.                 print('鱼被吃光了!')
  101.                 break
  102.         if not turtle.hp:
  103.                 print('乌龟累死了!')
  104.                 break
  105.         pos = turtle.move()
  106.         for eachFish in fishs:
  107.                 if eachFish.move() == turtle:
  108.                         turtle.eat()
  109.                         fishs.remove(eachFish)
  110.                         print('一条鱼被吃了')
复制代码
最佳答案
2019-5-10 19:12:51
本帖最后由 凌九霄 于 2019-5-10 19:16 编辑
  1.     for eachFish in fishs:
  2.         if eachFish.move() == pos: #判定鱼的位置跟乌龟的位置是否相同
  3.             turtle.eat()
  4.             fishs.remove(eachFish)
  5.             print('一条鱼被吃了')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-10 19:12:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 凌九霄 于 2019-5-10 19:16 编辑
  1.     for eachFish in fishs:
  2.         if eachFish.move() == pos: #判定鱼的位置跟乌龟的位置是否相同
  3.             turtle.eat()
  4.             fishs.remove(eachFish)
  5.             print('一条鱼被吃了')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-10 19:20:36 | 显示全部楼层

我草,这么弱智的错误,我竟然没发现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 05:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表