鱼C论坛

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

为什么第79道代码的move提示没有被调用

[复制链接]
发表于 2019-9-27 20:44:12 | 显示全部楼层 |阅读模式

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

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

x
import random as r
leng_x =[0,10]
leng_y =[0,10]

class Truet:
    def __init__(self):

        self.power =100

        self.x =r.randint(leng_x[0],leng_x[1])
        self.y =r.randint(leng_y[0],leng_y[1])

        def move(self):
            new_x =self.x + r.choice([1,2,-1,-2])
            new_y =self.y + r.choice([1,2,-1,-2])

            if new_x < leng_x[0]:
                self.x = leng_x[0] - (new_x - leng_x[0])
            elif new_x > leng_x[1]:
                self.x = leng_x[1] - (new_x - leng_x[1])
            else:
                self.x = new_x

            if new_y < leng_y[0]:
                self.y = leng_y[1] - (new_y - leng_y[0])
            elif new_y > leng_y[1]:
                self.y = leng_y[1] - (new_y - leng_y[1])
            else:
                self.y = new_y

            self.power -= 1

            return (self.x,self.y)

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

class Fish:
    def __init__(self):
        self.x =r.randint(leng_x[0],leng_x[1])
        self.y =r.randint(leng_y[0],leng_y[1])

    def move(self):
        new_x = self.x + r.choice([1,-1])
        new_y = self.y + r.choice([1,-1])

        if new_x < leng_x[0]:
            self.x =leng_x[0] - (new_x - leng_x[0])
        elif new_x > leng_x[1]:
            self.x =leng_x[1] - (new_x - leng_x[1])
        else:
            self.x = new_x

        if new_y < leng_y[0]:
            self.y =leng_y[0] - (new_y - leng_y[0])
        elif new_y > leng_y[1]:
            self.y =leng_y[1] - (new_y - leng_y[1])
        else:
            self.y =new_y
        return (self.x,self.y)

turtle = Truet()
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('乌龟体力耗尽,游戏结束!')
        break

    pos =turtle.move()

    for each in fish[:]:
        if each.move() ==pos:
            turtle.eat()
            fish.remove(each)
            print('有要条鱼被吃掉了!')
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-27 20:48:05 | 显示全部楼层
你缩进有问题,把下面的函数都缩进到Init下面了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-27 20:49:07 | 显示全部楼层
缩进错误。
  1. import random as r
  2. leng_x =[0,10]
  3. leng_y =[0,10]

  4. class Truet:
  5.     def __init__(self):

  6.         self.power =100

  7.         self.x =r.randint(leng_x[0],leng_x[1])
  8.         self.y =r.randint(leng_y[0],leng_y[1])

  9.     def move(self):
  10.         new_x =self.x + r.choice([1,2,-1,-2])
  11.         new_y =self.y + r.choice([1,2,-1,-2])

  12.         if new_x < leng_x[0]:
  13.             self.x = leng_x[0] - (new_x - leng_x[0])
  14.         elif new_x > leng_x[1]:
  15.             self.x = leng_x[1] - (new_x - leng_x[1])
  16.         else:
  17.             self.x = new_x

  18.         if new_y < leng_y[0]:
  19.             self.y = leng_y[1] - (new_y - leng_y[0])
  20.         elif new_y > leng_y[1]:
  21.             self.y = leng_y[1] - (new_y - leng_y[1])
  22.         else:
  23.             self.y = new_y

  24.         self.power -= 1

  25.         return (self.x,self.y)

  26.     def eat(self):
  27.         self.power += 20
  28.         if self.power > 100:
  29.             self.power =100

  30. class Fish:
  31.     def __init__(self):
  32.         self.x =r.randint(leng_x[0],leng_x[1])
  33.         self.y =r.randint(leng_y[0],leng_y[1])

  34.     def move(self):
  35.         new_x = self.x + r.choice([1,-1])
  36.         new_y = self.y + r.choice([1,-1])

  37.         if new_x < leng_x[0]:
  38.             self.x =leng_x[0] - (new_x - leng_x[0])
  39.         elif new_x > leng_x[1]:
  40.             self.x =leng_x[1] - (new_x - leng_x[1])
  41.         else:
  42.             self.x = new_x

  43.         if new_y < leng_y[0]:
  44.             self.y =leng_y[0] - (new_y - leng_y[0])
  45.         elif new_y > leng_y[1]:
  46.             self.y =leng_y[1] - (new_y - leng_y[1])
  47.         else:
  48.             self.y =new_y
  49.         return (self.x,self.y)

  50. turtle = Truet()
  51. fish =[]

  52. for i in range(10):
  53.     new_fish = Fish()
  54.     fish.append(new_fish)

  55. while True:
  56.     if not len(fish):
  57.         print('鱼儿都吃完了,游戏结束!')
  58.         break
  59.     if not turtle.power:
  60.         print('乌龟体力耗尽,游戏结束!')
  61.         break

  62.     pos =turtle.move()

  63.     for each in fish[:]:
  64.         if each.move() ==pos:
  65.             turtle.eat()
  66.             fish.remove(each)
  67.             print('有要条鱼被吃掉了!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-19 14:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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