鱼C论坛

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

求助!

[复制链接]
发表于 2018-4-5 14:09:45 | 显示全部楼层 |阅读模式

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

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

x

小甲鱼的一个课后作业
问题是这样的:
输出的时候内容总是输出到一半然后就没有了
不一定是在哪一块停下的

......................(省略一部分输出)
==============================回合数:8================================
乌龟已移动到(7, 9)
第1只鱼已死亡...
第2只鱼已移动到(9, 5)
第3只鱼已移动到(5, 9)
第4只鱼已移动到(7, 1)
第5只鱼已移动到(5, 8)
第6只鱼已死亡...
第7只鱼已移动到(10, 4)
第8只鱼已死亡...
第9只鱼已移动到(10, 5)
第10只鱼已移动到(5, 5)
目前乌龟的体力为:99
==============================回合数:9================================



就像这样 输出到‘回合9’之后就没反应了
每一次都在不同的地方就没反应了,但共同点都是到‘回合数:xx’这个地方
  1. <div>import random
  2. class Turtle:
  3.     life = 100
  4.     pos_x = random.randint(1,10)
  5.     pos_y = random.randint(1,10)
  6.     def move(self):
  7.         self.move_dir = random.randint(1,4)
  8.         # 1--上 2--下 3--左 4--右
  9.         self.life -= 1
  10.         self.move_dis = random.randint(1,2)
  11.         while self.move_dis != 0:#乌龟移动
  12.             if self.move_dir == 1:
  13.                 if self.pos_y < 10:
  14.                     self.pos_y += 1
  15.                     self.move_dis -= 1
  16.                 else:
  17.                     self.move_dir == 2
  18.             elif self.move_dir == 2:
  19.                 if self.pos_y > 0:
  20.                     self.pos_y -= 1
  21.                     self.move_dis -= 1
  22.                 else:
  23.                     self.move_dir = 1
  24.             elif self.move_dir == 3:
  25.                 if self.pos_x > 0:
  26.                     self.pos_x -= 1
  27.                     self.move_dis -= 1
  28.                 else:
  29.                     self.move_dir = 4
  30.             else:
  31.                 if self.pos_x < 10:
  32.                     self.pos_x += 1
  33.                     self.move_dis -= 1
  34.                 else:
  35.                     self.move_dir == 3
  36. class Fish():
  37.     def __init__(self):
  38.         self.life = True
  39.         self.pos_x = random.randint(1,10)
  40.         self.pos_y = random.randint(1,10)
  41.     def move(self):#鱼移动
  42.         self.move_dir = random.randint(1,4)
  43.         if self.move_dir == 1:
  44.             if self.pos_y < 10:
  45.                 self.pos_y += 1
  46.             else:
  47.                 self.pos_y -= 1
  48.         elif self.move_dir == 2:
  49.             if self.pos_y > 0:
  50.                 self.pos_y -= 1
  51.             else:
  52.                 self.pos_y += 1
  53.         elif self.move_dir == 3:
  54.             if self.pos_x > 0 :
  55.                 self.pos_x -= 1
  56.             else:
  57.                 self.pos_x += 1
  58.         else:
  59.             if self.pos_x < 10:
  60.                 self.pos_x += 1
  61.             else:
  62.                 self.pos_x -= 1
  63. fishlife = 10#活着的鱼只数
  64. print('游戏开始!')
  65. print('========================================================================================')
  66. turtle1 = Turtle()
  67. print('乌龟的位置:%s' % str((turtle1.pos_x,turtle1.pos_y)))
  68. print('目前乌龟的体力为%s' % turtle1.life)
  69. fish = []
  70. for i in range(10):
  71.     h = i
  72.     i = Fish()
  73.     fish.append(i)
  74.     print('第%s只鱼的位置:%s' % (h+1,(i.pos_x,i.pos_y)))
  75. count = 1#回合数
  76. while True:
  77.     print('==============================回合数:%s================================' % count)
  78.     turtle1.move()
  79.     print('乌龟已移动到%s' % str((turtle1.pos_x,turtle1.pos_y)))
  80.     for i in range(10):
  81.         if fish[i].life == True:
  82.             fish[i].move()
  83.             if fish[i].pos_x == turtle1.pos_x and fish[i].pos_y == turtle1.pos_y :
  84.                 print('第%s只鱼已被乌龟吃掉!' % (i+1))
  85.                 turtle1.life += 20
  86.                 if turtle1.life > 100:
  87.                     turtle1.life = 100
  88.                 fish[i].life = False
  89.                 fishlife -= 1
  90.                 if fishlife == 0:
  91.                     print('鱼已经被吃光啦!')
  92.                     print('===========================================================')
  93.                     break
  94.             else:
  95.                 print('第%s只鱼已移动到%s' % (i+1,str((fish[i].pos_x,fish[i].pos_y))))
  96.         else:
  97.             print('第%s只鱼已死亡...' % (i+1))
  98.     if fishlife == 0:
  99.         break
  100.     if turtle1.life <= 0:
  101.         print('乌龟累死了.....')
  102.         print('游戏结束....')
  103.         break
  104.     print('目前乌龟的体力为:%s' % turtle1.life)
  105.     count += 1</div><div>                    
  106.         </div><div>
  107. </div>
复制代码



小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-5 14:27:57 From FishC Mobile | 显示全部楼层
应该是鱼被吃完了,break跳出了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-5 14:47:20 | 显示全部楼层
BngThea 发表于 2018-4-5 14:27
应该是鱼被吃完了,break跳出了

可是鱼并没有被吃完啊。。是哪里有bug吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 05:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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