python第37讲 课后习题1 【乌龟吃鱼】 哪位大佬可以拯救一下我的代码‼
本帖最后由 Python_春树 于 2020-12-31 14:56 编辑import random
class Tortoise:
tortoise_coor =
hp = 100
def move(self):
self.hp -= 1
orientation = random.randint(1, 4)
speed = random.randint(1, 2)
if orientation == 1:
self.tortoise_coor += speed
elif orientation == 2:
self.tortoise_coor += speed
elif orientation == 3:
self.tortoise_coor -= speed
else:
self.tortoise_coor -= speed
if self.tortoise_coor < 0 or self.tortoise_coor < 0:
self.tortoise_coor = abs(self.tortoise_coor)
self.tortoise_coor = abs(self.tortoise_coor)
elif self.tortoise_coor > 10:
self.tortoise_coor = 20 - self.tortoise_coor
elif self.tortoise_coor > 10:
self.tortoise_coor = 20 - self.tortoise_coor
print('乌龟', self.tortoise_coor, '小乌龟体力剩余:', self.hp)
return self.tortoise_coor
class Fish:
fish_coor =
sums = 10
def move(self):
orientation = random.randint(1, 4)
if orientation == 1:
self.fish_coor += 1
elif orientation == 2:
self.fish_coor += 1
elif orientation == 3:
self.fish_coor -= 1
else:
self.fish_coor -= 1
if self.fish_coor < 0 or self.fish_coor < 0:
self.fish_coor = abs(self.fish_coor)
self.fish_coor = abs(self.fish_coor)
elif self.fish_coor > 10:
self.fish_coor = 20 - self.fish_coor
elif self.fish_coor > 10:
self.fish_coor = 20 - self.fish_coor
print('小鱼', self.fish_coor)
return self.fish_coor
tortoise = Tortoise()
fish = Fish()
while True:
if Tortoise.hp == 0:
print('乌龟的体力耗尽了,游戏结束!')
break
if Fish.sums == 0:
print('小鱼被吃光了,游戏结束!')
break
if tortoise.move() == fish.move():
Fish.sums -= 1
print('小鱼和龟相遇了, 小鱼被吃掉一只')
fish_coor =
Tortoise.hp += 20
if Tortoise.hp > 100:
Tortoise.hp = 100
如题, 一顿操作以后 都不知道自己写的什么东西了
每次都会把鱼吃光??? {:10_249:}{:10_249:}{:10_249:} 你的位置设置的有问题
我也没改出来,我要出去了,下次写个注释吧。
不然很难懂你的思路的{:10_266:}
import random
class Tortoise:
tortoise_coor =
hp = 100
def move(self):
orientation = random.randint(1, 4)
speed = random.randint(1, 2)
if orientation == 1:
self.tortoise_coor += speed
elif orientation == 2:
self.tortoise_coor += speed
elif orientation == 3:
self.tortoise_coor -= speed
else:
self.tortoise_coor -= speed
if self.tortoise_coor < 0 or self.tortoise_coor < 0:
self.tortoise_coor = abs(self.tortoise_coor)
self.tortoise_coor = self.tortoise_coor
elif self.tortoise_coor > 10:
self.tortoise_coor = 20 - self.tortoise_coor
elif self.tortoise_coor > 10:
self.tortoise_coor = 20 - self.tortoise_coor
self.hp -= 1
return self.tortoise_coor
class Fish:
fish_coor =
sums = 9
def move(self):
orientation = random.randint(1, 4)
if orientation == 1:
self.fish_coor += 1
elif orientation == 2:
self.fish_coor += 1
elif orientation == 3:
self.fish_coor -= 1
else:
self.fish_coor -= 1
if self.fish_coor < 0 or self.fish_coor < 0:
self.fish_coor = abs(self.fish_coor)
elif self.fish_coor > 10:
self.fish_coor = 20 - self.fish_coor
elif self.fish_coor > 10:
self.fish_coor = 20 - self.fish_coor
return self.fish_coor
while True:
if Tortoise.hp < 0:
print('乌龟的体力耗尽了,游戏结束!')
break
if Fish.sums < 0:
print('小鱼被吃光了,游戏结束!')
break
tortoise = Tortoise()
fish = Fish()
if tortoise.move() == fish.move():
Fish.sums -= 1
print('小鱼和龟相遇了, 小鱼被吃掉一只')
print('龟龟坐标:',tortoise.move())
print('鱼儿坐标:',fish.move())
fish_coor =
Tortoise.hp += 20
if Tortoise.hp > 100:
Tortoise.hp = 100
=
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼和龟相遇了, 小鱼被吃掉一只
龟龟坐标:
鱼儿坐标:
小鱼被吃光了,游戏结束!
>>>
小伤口 发表于 2020-12-31 14:43
你的位置设置的有问题
我也没改出来,我要出去了,下次写个注释吧。
不然很难懂你的思路的
咳咳我刚才已经发现问题了 Python_春树 发表于 2020-12-31 14:55
咳咳我刚才已经发现问题了
然后我修改了一下 发现变成了 无限体力龟龟 Python_春树 发表于 2020-12-31 14:58
然后我修改了一下 发现变成了 无限体力龟龟
要不把乌龟的体力再创一个实例方法? 不懂帮顶 小伤口 发表于 2020-12-31 16:22
要不把乌龟的体力再创一个实例方法?
是的解决了 重新添加一个体力的实例,之前体力放在那里每次读取都是100 所以 会无限体力{:10_266:}{:10_266:}
页:
[1]