|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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()
你这段代码问题比较多:
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吧,这个问题有两处。
改完这四处代码是可以运行了,但不知道是不是你想要的结果。
|
|