鱼C论坛

 找回密码
 立即注册
查看: 2758|回复: 5

[已解决]第37课最后一题

[复制链接]
发表于 2017-2-18 19:03:07 | 显示全部楼层 |阅读模式
10鱼币
请大家帮我看看,我把小甲鱼老师的稍微改动了一下,不知道为什么运行不了
import random as r
   
class Turtle():
    def _init_ (self):
        self.x = r.randint(0,10)
        self.y = r.randint(0,10)
        self.power=100
    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<0:
            self.x = -new_x
        elif new_x>10:
            self.x = 20-new_x
        else:
            self.x = new_x
        if new_y<0:
            self.y = -new_y
        elif new_y>10:
            self.y = 20-new_y
        else:
            self.y = new_y
        return self.x,self.y
    def eat(self):
        self.power+=20
   

class Fish:
    def _init_ (self):
        self.x=r.randint(0,10)
        self.y=r.randint(0,10)
    def move(self):
        new_x = self.x+r.choice([1,-1,])
        new_y = self.y+r.choice([1,-1,])
        if new_x<0:
            self.x = -new_x
        elif new_x>10:
            self.x = 20-new_x
        else:
            self.x = new_x
        if new_y<0:
            self.y = -new_y
        elif new_y>10:
            self.y = 20-new_y
        else:
            self.y = new_y
        return self.x,self.y

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

while True:

    if len(fish)==0:
        print('鱼被吃光了,游戏结束!')
        break
    if turtle.power==0:
        print('老甲鱼没力气了,游戏结束!')
        break
    pos=turtle.move()   
    for each_fish in fish:
        if new_fish.move==pos:
            fish.remove(each_fish)
            print('有一条鱼被吃掉了!')
            turtle.eat()
     
最佳答案
2017-2-18 19:03:08
问题1,你所有魔法方法都是单下划线,应该用双下划线

最佳答案

查看完整内容

问题1,你所有魔法方法都是单下划线,应该用双下划线
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-18 19:03:08 | 显示全部楼层    本楼为最佳答案   
问题1,你所有魔法方法都是单下划线,应该用双下划线
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-18 19:16:00 | 显示全部楼层
问题一:F5后提示:??我的turtle在_init_中有power??电脑是不是秀逗了
Traceback (most recent call last):
  File "C:/Users/杜一鸣/Desktop/as.py", line 60, in <module>
    if turtle.power==0:
AttributeError: 'Turtle' object has no attribute 'power'
问题二:
legal_x = [0, 10]
legal_y = [0, 10]
这两个貌似没有什么用呀,直接0,10不行吗?
本人小白一个,这道题做得焦头烂额了,完全转不过来弯,哪位大神,能深入讲讲,不胜感激!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-18 20:47:14 | 显示全部楼层
冬雪雪冬 发表于 2017-2-18 20:12
问题1,你所有魔法方法都是单下划线,应该用双下划线

对对,,谢谢指点,我都没有发现
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-24 20:53:18 | 显示全部楼层
yamal 发表于 2017-2-18 19:16
问题一:F5后提示:??我的turtle在_init_中有power??电脑是不是秀逗了
Traceback (most rec ...

我只能回答以下问题二,我感觉之所以要用legal这种东西主要是因为防止以后想要改变游戏的边界就不用那么麻烦的具体去改变那么多涉及到的代码了。还有建议在这里问问题的时候复制代码时可以用<>这个东西,比较方便看一点。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-24 20:54:37 | 显示全部楼层
wxkang15 发表于 2017-2-24 20:53
我只能回答以下问题二,我感觉之所以要用legal这种东西主要是因为防止以后想要改变游戏的边界就不用那么 ...

奥还有帮我看下我提的那个问题行吗   我想改编一下这个游戏然后碰到好多问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-3 08:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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