Jump to content

Ayuda con clases en Python (o clases en general)


Recommended Posts

Resulta que he estado resolviendo un problema, especificamente este:

 

  Quote
A)(1.5 ptos) Complete la sgte clase para un móvil que se mueve en dirección Norte(1), Sur(2), Este(3) u Oeste(4) en un cuadriculado de 1000 unidades horizontales y 1000 verticales (numeradas entre 0 y 999).

class Movil:

# Representar usando variables self.H,self.V: coordenadas horizontal y vertical de la ubicación del móvil

def __init__(self, X, Y): #inicializa H,V con X,Y si están en rango 0-999(sino abortar)

def mover(self, dist, direc): #mover en dist unidades en dirección direc(1,2,3,4)

 

B)(1.5 ptos) Escriba una clase que extienda la anterior con un método para mover el móvil en dist unidades en dirección direc (1,2,3 o 4), dibujando una línea en el componente Canvas CV (de 1000x1000 pixeles). Hint: Redefina la función mover con el siguiente encabezado: def mover (self, dist, direc, CV):

 

C)(3 ptos) Use la clase anterior en un programa que controle un móvil que se ubica inicialmente al centro de un Canvas de 1000x1000. Cada vez que se presione un botón (N,S,E,O) debe mover el móvil dibujando una línea de 20 pixeles en la dirección indicada.

 

He estado resolviendo las dos primeras partes, pero me asalta una duda, cuando uno crea una clase, como se puede hacer para que, cuando meta valores en la consola, en vez de cambiarse unos por otros, se sumen? (por ejemplo, si meto un valor 3, y luego meto un valor 4, se sumen los dos, en vez de que se cambie el 3 por el 4)

 

Creo que mi pregunta está mal explicada, así que les dejo lo que he hecho hasta ahora:

 

class Movil:

    def __init__(self, x, y):        
        self.h=x
        self.v=y
        if self.h>999 or self.h<0 or self.v>999 or self.v<0:            
            return "Está afuera"

    def mover(self, dist, direc):
        if direc==1:
            return self.h, self.v+dist
        elif direc==2:
            return self.h, self.v-dist
        elif direc==3:
            return self.h+dist, self.v
        elif direc==4:
            return self.h-dist, self.v

class Extension(Movil):

def mover(self, dist, direc, CV):

 

 

Muchas gracias de antemano!!

Edited by ~Helloween~
Link to comment
Share on other sites

  • 3 months later...

chuuta te voy a responder terrible tarde jajaj xd

si todavia teni la duda:

podi crear una funcion dentro de la clase (y que se "envie" a esa funcion el dato que entre) que te sume los valores que ingresan, y luego al final de la funcion podi poner algo como self.x=datosumado

medio tarde xd

espero que te hayas eximido (yo si xd) jaja :D

saludos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...