课后作业第37讲运行为什么没有结果
import random as rlegal_x =
legal_y =
class Turtle:
def __init__(self):
self.power = 100
self.legal_x = r.randint(legal_x,legal_x)
self.legal_y = r.randint(legal_x,legal_y)
def move(self):
new_legal_x = self.legal_x +r.choice()
new_legal_y = self.legal_y +r.choice()
if new_legal_x >= legal_x:
self.legal_x = legal_x - (new_legal_x - legal_x)
elif new_legal_x <= legal_x:
self.legal_x = legal_x - (new_legal_x - legal_x)
else:
self.legal_x = new_legal_x
if new_legal_y >= legal_y:
self.legal_y = legal_y - (new_legal_y - legal_y)
elif new_legal_y <= legal_y:
self.legal_y = legal_y - (new_legal_y - legal_x)
else:
self.legal_y = new_legal_y
self.power -= 1
return (self.legal_x,self.legal_y)
def eat(self):
self.power += 20
if self.power > 100:
self.power = 100
class Fish:
def __init__(self):
self.legal_x = r.randint(legal_x,legal_x)
self.legal_y = r.randint(legal_x,legal_y)
def move(self):
new_legal_x = self.legal_x +r.choice()
new_legal_y = self.legal_y +r.choice()
if new_legal_x >= legal_x:
self.legal_x = legal_x - (new_legal_x - legal_x)
elif new_legal_x <= legal_x:
self.legal_x = legal_x - (new_legal_x - legal_x)
if new_legal_y >= legal_y:
self.legal_y = legal_y - (new_legal_y- legal_y)
elif new_legal_y <= legal_y:
self.legal_y = legal_y - (new_legal_y - legal_x)
else:
self.legal_x = new_legal_x
self.legal_y = new_legal_y
return (self.legal_x,self.legal_y)
turtle = Turtle()
fish = []
for i in range(10):
new_fish = Fish()
fish.append(new_fish)
while 1:
if len(fish)==0 :
print('鱼没了')
break
if turtle.power == 0:
print('龟死了')
break
pos = Turtle.move
for each in fish[:]:
if each.move() == pos:
Turtle.eat()
fish.remove(each)
print('有一条鱼被吃了')
{:10_266:}
算法太慢 错都在最后一段,改好就行了。
pos = turtle.move() #大写改小写,加一对括号
for each in fish[:]:
if each.move() == pos:
turtle.eat() #大写改小写
fish.remove(each)
print('有一条鱼被吃了') if new_legal_x >= legal_x:
self.legal_x = legal_x - (new_legal_x - legal_x)
elif new_legal_x <= legal_x:
self.legal_x = legal_x - (new_legal_x - legal_x)
if new_legal_y >= legal_y:
self.legal_y = legal_y - (new_legal_y- legal_y)
elif new_legal_y <= legal_y:
self.legal_y = legal_y - (new_legal_y - legal_x)
else:
self.legal_x = new_legal_x
self.legal_y = new_legal_y
红线部分应该是上个else 里面的代码
页:
[1]