lxping 发表于 2022-11-21 22:39:36

乌龟吃鱼

本帖最后由 lxping 于 2022-11-21 23:04 编辑

from random import *
   
class Trutle:
    def __init__(self,name):
      self.name = name
      self.power = 100
      self.x = randint(0,10)
      self.y = randint(0,10)

    def position(self):
      self.power -= 1      
      dire = choice(direction)
      om = randint(1,2)
      new_x = self.x + dire*om
      new_y = self.y + dire*om
      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
      print(f"trutle:{self.x, self.y}")
      return (self.x,self.y)

    def eatfish(self):
      self.power += 20
      if self.power > 100:
            self.power = 100

class Fish:
    def __init__(self,name):
      self.name = name
      self.x = randint(0,10)
      self.y = randint(0,10)

    def position(self):
      dire = choice(direction)
      om = 1
      new_x = self.x + dire*om
      new_y = self.y + dire*om
      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)



origin = (0, 0)       #原点
legal_x =       #x轴的移动范围
legal_y =       #y轴的移动范围
direction = [[-1,0], , , ]
trutle = Trutle("小甲鱼")
for i in range(1,11):
    locals()["fish"+ str(i)] = Fish("fish"+str(i))
fish_list =
trutle_pos = (trutle.x,trutle.y)
for each in fish_list:
    if (each.x,each.y) == trutle_pos:
      trutle.eatfish()
      fish_list.remove(each)
print(f"还剩{len(fish_list)}条鱼")

while True:
    if len(fish_list) and trutle.power:
      trutle_pos = trutle.position()
      for each in fish_list:
            each_pos = each.position()
            if each_pos == trutle_pos:
                trutle.eatfish()
                fish_list.remove(each)
      print(f"还剩{len(fish_list)}条鱼")

    elif not len(fish_list):
      print("没鱼啦~")
      break
    elif not trutle.power:
      print("游不动啦~")
      break
print("游戏结束")

zhangjinxuan 发表于 2022-11-22 15:46:27

{:5_108:}
页: [1]
查看完整版本: 乌龟吃鱼