Me ajudem com esse código em python

4 respostas
programaçãopython
4

Estou com problemas com um com um código em python, vindo de um curso online, e não estou conseguindo resolver:

class point(object):

def __init__(self, x, y):
    self.x = x
    self.y = y

class reward(point):
def init(self, x, y, name):
super(reward, self).init(x, y)
self.name = name

class robo:
def init(self, x, y):
self.x = x
self.y = y

def move_up(self, x, y):
    if self.y < 10:
        self.y = self.y + 1

    else:
        print("Comando proibido")

def move_down(self, x, y):
    if self.y > 1:
        self.y = self.y - 1

    else:
        print("Comando proibido")

def move_left(self, x, y):
    if self.x > 1:
        self.x = self.x - 1

    else:
        print("Comando proibido")

def move_right(self, x, y):
    if self.x < 10:
        self.y = self.y + 1

    else:
        print("Comando proibido")

def check_rewards(robo, reward):
ok = False

for reward in rewards:
    if robo.x == reward.x and reward.y == robo.y:
        print("O robô achou a recompensa: {}".format(reward.name))
        ok = True

    return ok

r1 = reward(1, 2, “moeda”)
r2 = reward(5, 3, “gasolina”)

robot = robo(2, 2)

rewards = [r1, r2]

check_rewards(robo, rewards)

Me ajudem por favor

erros:
Traceback (most recent call last):
File “/home/vitor/PycharmProjects/JogoDoRobo/robojogo.py”, line 66, in
check_rewards(robo, rewards)
File “/home/vitor/PycharmProjects/JogoDoRobo/robojogo.py”, line 52, in check_rewards
if robo.x == reward.x and reward.y == robo.y:
AttributeError: type object ‘robo’ has no attribute ‘x’

Process finished with exit code 1

4 Respostas

R
Não fique abrindo vários tópicos com o mesmo assunto:

<aside class="quote" data-post="1" data-topic="376980">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="20" height="20" src="/letter_avatar_proxy/v2/letter/4/839c29/40.png" class="avatar">
    <a href="//www.guj.com.br/t/alguem-me-diz-o-erro-nesse-codigo-em-python/376980?source_topic_id=376982">Alguém me diz o erro nesse código em python?</a> <a class="badge-wrapper  bullet" href="/c/programacao/python">Python</a>
  </div>
  <blockquote>
    class point(object):
def __init__(self, x,y):
    self.x=x
    self.y=y

class reward(point): 
def __init__(self, x, y, name):
    super(reward, self).__init__(x,y)
    self.name=name

reward1 = reward(1,1,“Moeda de ouro”) 
print(reward1.x) 
print(<a href="http://reward1.name">reward1.name</a>) 
class robo: 
def init(self,x,y): 
self.y=y 
self.x=x 
def move_up(self,x,y):
    if y < 10:
        self.y= self.y+1

    else:
        print("comando proibido")

def move_down(self,x,y):
    if y > 1:
        self.y= self.y-1

    else:…
  </blockquote>
</aside>

Pressa não vai resolver nada e ainda vai poluir o fórum…

Quanto ao erro, está dizendo que a classe robo não tem o atributo x talvez porque vc não escreveu os métodos init corretamente, falta os dois underlines de cada lado…

isso:

init(self, x, y)

onde deveria ser:

__init__(self, x, y)
4

brother, ainda estou com dificuldade, estou preos nesse codigo desde ontem:

class point(object):
def init(self,x,y):
self.x=x
self.y=y

class reward(point):
def init(self,x,y,name):
super(reward, self).init(x,y)
self.name=name

class robo(point):
def init(self):
self.x = x
self.y = y

def move_up(self):
    if self.y < 10:
        self.y = self.y + 1

    else:
        print("Comando proibido")

def move_down(self):
    if self.y > 1:
        self.y = self.y - 1

    else:
        print("Comando proibido")

def move_left(self, x, y):
    if self.x > 1:
        self.x = self.x - 1

    else:
        print("Comando proibido")

def move_right(self):

    if self.x < 10:
        self.x = self.x + 1

    else:
        print("Comando proibido")


def check_reward(robo,rewards):
    ok = False

    for reward in rewards:
        if robo== reward.y and robo.x== reward.x:
            print("O robô achou {}" .format(self.name))
            ok= True

r1 = reward(5,3,“moeda”)
r2 = reward(3,2,“gasolina”)

rewards= [r1,r2]

robot1=robo(1,4)

check_reward(robo, rewards)

erro:
Traceback (most recent call last):
File “/home/vitor/PycharmProjects/JogoDoRobo/robojogo.py”, line 66, in
check_reward(robo, rewards)
File “/home/vitor/PycharmProjects/JogoDoRobo/robojogo.py”, line 54, in check_reward
if robo.y == reward.y and robo.x == reward.x:
AttributeError: type object ‘robo’ has no attribute ‘y’

Process finished with exit code 1

R

isso:

init(self, x, y)

onde deveria ser:

__init__(self, x, y)

Não consigo ser mais claro do que isso, reveja a forma como vc fez o init na classe point, reward e robo e ajuste…

R

E seu robo ta faltando passar o x e o y:

class robo(point):
    def __init__(self, x, y):
        self.x = x
        self.y = y

Atenção aos detalhes jovem, atenção aos detalhes!

Criado 22 de outubro de 2018
Ultima resposta 25 de out. de 2018
Respostas 4
Participantes 2