peipur 发表于 2021-2-11 00:24:07

37.1小乌龟吃鱼小游戏

from random import *
step_turtle = [-2, -1, 1, 2]
step_fish = [-1, 1]

legal_x =
legal_y =


class Fish:
    def __init__(self):
   
      self.x = randint(legal_x, legal_x)
      self.y = randint(legal_y, legal_y)

    def move(self, step):
      new_x = self.x + choice(step)
      new_y = self.y + choice(step)

      if new_x < legal_x:
            self.x = legal_x - (new_x - legal_x)
      elif new_x > legal_x:
            self.x = legal_x -(new_x - legal_x)
      else:
            self.x = new_x

      if new_y < legal_y:
            self.y = legal_y - (new_y - legal_y)
      elif new_y > legal_y:
            self.y = legal_y - (new_y - legal_y)
      else:
            self.y = new_y
      return (self.x, self.y)

class Turtle(Fish):
    def __init__(self):
      super().__init__()
      self.power = 100
    def move(self, step):
      super().move(step)
      new_x = self.x + choice(step)
      new_y = self.y + choice(step)
      self.power -=1
    def eat(self):
      self.power += 20
      if self.pwoer >100:
            self.power = 100

turtle = Turtle()
fish = []
for i in range(10):
    new_fish = Fish()
    fish.append(new_fish)

while True:
    if not len(fish):
      print('鱼儿都吃完了,游戏结束!')
      break
    if not turtle.power:
      print('乌龟体力耗尽,挂掉了!%d' %len(fish))
      break

    pos = turtle.move(step_turtle)

    for each_fish in fish[:]:
      if each_fish.move(step_fish) == pos:
            turtle.eat()
            fish.remove(each_fish)
            print('有一条鱼儿被吃掉了... 还剩%d条鱼' %len(fish))
      '''else:
            print('乌龟在(%d, %d),鱼儿在(%d, %d)' %(turtle.x, turtle.y, each_fish.x, each_fish.y))'''


这个是对原答案进行小小的改变,就是用类对象的继承省了些代码
但是却发现一个问题,乌龟始终吃不到鱼

洋洋痒 发表于 2021-2-11 08:18:22

    def move(self, step):
      new_x = self.x + choice(step)
      new_y = self.y + choice(step)
      self.power -=1
      return super().move(step)

第45行power拼写错误

peipur 发表于 2021-2-11 14:39:13

洋洋痒 发表于 2021-2-11 08:18
第45行power拼写错误

谢谢,找到根本原因了,38行没有返回参数(导致pos没有参数)
页: [1]
查看完整版本: 37.1小乌龟吃鱼小游戏