鱼C论坛

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

[已解决]哪位大佬帮忙看看哪里语法错误。。。

[复制链接]
发表于 2017-5-28 14:27:00 | 显示全部楼层 |阅读模式

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

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

x
跪求大佬看看哪里语法错误了,这是一个文字游戏,虫和蚂蚁的位置相同就表示游戏结束。错误只要出现在最后一个类里面的if判断句里面(按理说 if判断句后面得接上冒号: ,可是我输入冒号:后系统提示语法错误,但是我把冒号:删除后,又提示我return这个地方语法错误)  代码如下
import random
class Sprite(object):
    '''精灵类'''
    step = [-2,+2,-3,+3]
    def __init__(self,gm,point=None):
        self.gm = gm
        if point is None:
            self.point = random.randint(0,20)
        else:
            self.point = point
    def jump(self):
        astep = random.choice(Sprite.step) #从list里面随机选一个步长作为位置
        if 0<= self.point + astep <= 20 :
            self.point += astep
                       
class Worm(Sprite):
    def __init__(self,gm,point = None):
        super(Worm,self).__init__(gm,point) #调用父类的方法
        self.gm.set_point('Worm',self.point)
    def jump(self):
        super(Worm,self).jump()
        self.gm.set_point('Worm',set.point)
               
class Ant(Sprite):
    def __init__(self,gm,point = None):
        super(Ant,self).__init__(gm,point) #调用父类的方法
        self.gm.set_point('Ant',self.point)
    def jump(self):
        super(Ant,self).jump()
        self.gm.set_point('Ant',set.point)
               
class Gamemap(object):
    def __init__(self):
        self.worm_point = None
        self.ant_point = None
    def set_point(self,src,point):
        if src == 'ant':
            self.ant_point = point
        if src == 'worm':
            self.worm_point = point
    def catched(self):
        print('ant:%s;worm:%s'%(self.ant_point,self.worm_point)
        if self.ant_point is not None and self.worm_point is not None and self.ant_point == self.worm_point
            return True
                       
if _name_ == 'main':
    gm = Gamemap()
    worm = Worm(gm)
    ant = Ant(gm)
    while not gm.catched():
        worm.jump()
        ant.jump()
最佳答案
2017-5-29 12:59:47
你这段代码问题比较多:
1.if __name__ == "__main__":
2. while not gm.catched():   逻辑错误,会进入死循环,改为while gm.catched():
3.print('ant:%s;worm:%s'%(self.ant_point,self.worm_point))后面缺少一个')'
4.self.gm.set_point('Worm',set.point)   不存在set。应该是self吧,这个问题有两处。
改完这四处代码是可以运行了,但不知道是不是你想要的结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-5-28 14:31:23 | 显示全部楼层
求助 别沉呀= =
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-28 14:52:02 | 显示全部楼层
不是if的毛病,是你上面那个print函数右边少写了一个“)”
  1. print('ant:%s worm:%s'%(self.ant_point,self.worm_point))
复制代码


还有最后那个,是两个“_”
  1. if __name__ == 'main':
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-29 12:59:47 | 显示全部楼层    本楼为最佳答案   
你这段代码问题比较多:
1.if __name__ == "__main__":
2. while not gm.catched():   逻辑错误,会进入死循环,改为while gm.catched():
3.print('ant:%s;worm:%s'%(self.ant_point,self.worm_point))后面缺少一个')'
4.self.gm.set_point('Worm',set.point)   不存在set。应该是self吧,这个问题有两处。
改完这四处代码是可以运行了,但不知道是不是你想要的结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-29 18:03:10 | 显示全部楼层
overflow 发表于 2017-5-29 12:59
你这段代码问题比较多:
1.if __name__ == "__main__":
2. while not gm.catched():   逻辑错误,会进入 ...

谢谢大佬, 我是在熊猫tv里面看别人放的培训班视频手抄下来的,不能暂停,所以可能抄错了什么     不管能不能运行,起码没错误就可以了。3Q
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-29 18:03:54 | 显示全部楼层
shuofxz 发表于 2017-5-28 14:52
不是if的毛病,是你上面那个print函数右边少写了一个“)”

谢谢大佬, 按你的方法问题解决了,自己太粗心
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-27 18:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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