Exemplo n.º 1
0
    def leer(self):
        with open(self.archivo) as plp:
            linea = plp.readline()
            linea = linea.rstrip('\n').split(',')
            while len(linea) > 1:

                if linea[0].upper() == 'C':
                    self.canales = linea[1]

                if linea[0].upper() == 'S':
                    lista = linea[1].split('|')
                    self.sonidos.append(lista)

                if linea[0].upper() == 'T':
                    duracion = float(linea[1])
                    linea = plp.readline()
                    linea = linea.rstrip('\n').split(',')
                    while linea[0].upper() == 'N':
                        t = Tiempo(duracion)
                        for c in linea[1]:
                            t.agregar_nota(c == '#')
                        self.tiempos.append(t)
                        linea = plp.readline()
                        linea = linea.rstrip('\n').split(',')
                    continue
                linea = plp.readline()
                linea = linea.rstrip('\n').split(',')
Exemplo n.º 2
0
    def leer(self):
        '''Abre el archivo en modo lectura y lee. Modifica los atributos
        canales, tiempos y sonido.
        Pre: El archivo esta en formato plp'''
        with open(self.archivo) as plp:
            linea=plp.readline()
            linea=linea.rstrip('\n').split(',')
            while len(linea)>1:

                if linea[0].upper()=='C':
                    self.canales=linea[1]

                if linea[0].upper()=='S':
                    lista=linea[1].split('|')
                    self.sonidos.append(lista)

                if linea[0].upper()=='T':
                    duracion= float(linea[1])
                    linea=plp.readline()
                    linea=linea.rstrip('\n').split(',')
                    while linea[0].upper()=='N':
                        t=Tiempo(duracion)
                        for c in linea[1]:
                            t.agregar_nota(c=='#')
                        self.tiempos.append(t)
                        linea=plp.readline()
                        linea=linea.rstrip('\n').split(',')
                    continue
                linea=plp.readline()
                linea=linea.rstrip('\n').split(',')
Exemplo n.º 3
0
 def anadir_marca_prev(self,duracion):
     tiempo=Tiempo(duracion)
     for iteracion in range(len(self.archivo.objeto_sonidos)):
         tiempo.agregar_nota(False)
     posicion=self.archivo.tiempos.index(self.t_act.dato)-1
     self.archivo.tiempos.insert(posicion,tiempo)
     nodo=self.archivo.tiempos.obtener_nodo(posicion)
     self.pila.apilar(nodo)
Exemplo n.º 4
0
 def __init__(self, weather_json):
     super(InfoTiempo, self).__init__()
     prevision_json = weather_json['query']['results']['channel']['item']
     self.condiciones_actuales = Tiempo(prevision_json['condition'])
     condiciones_futuras = []
     for prevision in prevision_json['forecast']:
         estado_tiempo = Tiempo(prevision)
         condiciones_futuras.append(estado_tiempo)
     self.condiones_futuras = condiciones_futuras
Exemplo n.º 5
0
    def __init__(self):

        #identinficacion
        self.id = uuid.uuid1().hex

        self._x = 0
        self._y = 0
        self.ancho = 0
        self.largo = 0

        self.x_inicial = 0
        self.y_inicial = 0

        self.x_antes = 0
        self.y_antes = 0

        self.sistema_cerradox = [0, 0]
        self.sistema_cerradoy = [0, 0]

        self.enviarGanancia_x = 0
        self.enviarGanancia_y = 0
        self.recibirGanancia_x = 0
        self.recibirGanancia_y = 0

        # estado del personaje
        self.saltar = False
        self.correr= False
        self.caminar = False

        #sentido
        self.sentido = False

        self.protagonista = False
        self.iA = False
        self.agente = None

        #el personaje esta compuesto por cuatro rectangulos
        self.rectangulo = Rect(0,0,0,0)#cuerpo completo
        self.rec1 = Rect(0, 0, 0, 0)#bajo
        self.rec2 = Rect(0, 0, 0, 0)#izquierda
        self.rec3 = Rect(0, 0, 0, 0)#derecha
        self.rec4 = Rect(0, 0, 0, 0)#arriba

        self.ady_left = False
        self.ady_right = False
        self.ady_down = False
        self.ady_up = False

        self.tic = Tiempo()
        self.status={}
        self.status["angulo"] = 0
        self.status["velocidad"]=0
        self.status["velocidad x"] = 0
        self.status["velocidad y"] = 0
        self.status["gravedad"] = 9.8
        self.status["parabola"] = (90, 88)#velocidad inicial, angulo inicial
        self.status["caida"]=(270, 90)
        self.status["correr"] = (23, 1)#velocidad, aceleracion
        self.status["caminar"] = 30 #velocidad
Exemplo n.º 6
0
    def __init__(self,campoAccion, dimen = 3):
        self.monito = None
        self.campoAccion=campoAccion
        self.horizontal = 0
        self.vertical = 0
        self.moverse = False #actividad de la ventana
        self.tiempo = Tiempo()

        #------------estilo
        self.estilo = MOVAUTONOMO
        #------------autonomo
        self.tipoMOVAUT = MOVAUTONOMO_CONSTANTE
        self.velocidad = 10
        self.aceleracion = 2
        self.direccion = MOVAUTONOMO_DERECHA
        #------------personaje
        self.tipoMOVPER = MOVPERSONAJE_CENTRADO
        self.enfocar_personaje = False
        self.fueraRango = False

        self.angulo = 0
        self.altura = 0
        self.eje_x = 0
        self.eje_y = 0

        if dimen == 1:
            self.arriba = 50
            self.abajo = 565
            self.derecha = 790
            self.izquierda = 10
        if dimen == 2:
            self.arriba = 10
            self.abajo = 590
            self.derecha =  750
            self.izquierda =  50
        if dimen == 3:
            self.arriba = 150
            self.abajo = 450
            self.derecha = 580
            self.izquierda = 220
Exemplo n.º 7
0
    def tiempos(self):
        # TODO refactorizar codigo repetido
        tiempo_mas_reciente = Tiempo(Simulacion.INFINITO, None)
        evento_mas_reciente = None

        for key, value in self.lista_de_eventos.items():
            if type(value) is list:
                for i in range(len(value)):
                    if value[i].tiempos:
                        if value[i].tiempos[
                                0].tiempo < tiempo_mas_reciente.tiempo:
                            evento_mas_reciente = value[i]
                            tiempo_mas_reciente = value[i].tiempos[0]
            else:
                if value.tiempos:
                    if value.tiempos[0].tiempo < tiempo_mas_reciente.tiempo:
                        evento_mas_reciente = value
                        tiempo_mas_reciente = value.tiempos[0]

        # Acumular variables de respuesta pasado un mes
        intervalo = (len(self.reportes_por_mes) + 1) * Simulacion.MES

        if self.reloj_simulacion and self.reloj_simulacion / intervalo >= 1:

            self.reportes_por_mes.append(self.reportes())
            # Contadores Estadisticos
            self.tiempo_ocioso = 0
            self.total_material_transportado = 0
            self.total_descomposturas = 0
            self.acrt = 0

        self.reloj_simulacion = tiempo_mas_reciente.tiempo

        evento_mas_reciente.popleft()

        return evento_mas_reciente.nombre_funcion, tiempo_mas_reciente.camion
Exemplo n.º 8
0
 def agregar(self, tiempo, camion):
     self.tiempos.append(Tiempo(tiempo, camion))
Exemplo n.º 9
0
class Camara (object):
    def __init__(self,campoAccion, dimen = 3):
        self.monito = None
        self.campoAccion=campoAccion
        self.horizontal = 0
        self.vertical = 0
        self.moverse = False #actividad de la ventana
        self.tiempo = Tiempo()

        #------------estilo
        self.estilo = MOVAUTONOMO
        #------------autonomo
        self.tipoMOVAUT = MOVAUTONOMO_CONSTANTE
        self.velocidad = 10
        self.aceleracion = 2
        self.direccion = MOVAUTONOMO_DERECHA
        #------------personaje
        self.tipoMOVPER = MOVPERSONAJE_CENTRADO
        self.enfocar_personaje = False
        self.fueraRango = False

        self.angulo = 0
        self.altura = 0
        self.eje_x = 0
        self.eje_y = 0

        if dimen == 1:
            self.arriba = 50
            self.abajo = 565
            self.derecha = 790
            self.izquierda = 10
        if dimen == 2:
            self.arriba = 10
            self.abajo = 590
            self.derecha =  750
            self.izquierda =  50
        if dimen == 3:
            self.arriba = 150
            self.abajo = 450
            self.derecha = 580
            self.izquierda = 220

    def setMov(self, mov):
        self.moverse = mov

    def getMov(self):
        return self.moverse

    def setEstilo(self, estilo):
        self.estilo = estilo

    def setMovAutonomo(self, direccion, tipoMOV, velocidad = 20, aceleracion = 2):
        self.direccion = direccion
        self.aceleracion = aceleracion
        self.velocidad = velocidad
        self.tipoMOVAUT = tipoMOV

    def setMovPersonaje(self, tipoMov):
        self.tipoMOVPER = tipoMov

    def setPersonaje(self, personaje):
        self.enfocar_personaje = True
        self.monito = personaje
        self.tipoMOVPER = MOVPERSONAJE_CENTRADO


    def centrado(self, personajes, entornos):
        self.campoAccion.left = personajes.x*-1
        if self.moverse == False:
            self.tiempo.modPasivo()
            self.horizontal = personajes.x
            self.vertical = personajes.y
        else:
            if self.estilo == MOVAUTONOMO:
                t = self.tiempo.cronometroC()

                if self.tipoMOVAUT == MOVAUTONOMO_ACELERADO:
                    if self.direccion == MOVAUTONOMO_DERECHA:
                        ejex =mov_recAcelerado(t, self.aceleracion, self.velocidad, self.horizontal)
                        personajes.x = ejex
                        entornos.x= ejex
                    elif self.direccion == MOVAUTONOMO_IZQ:
                        ejex =mov_recAcelerado(t, self.aceleracion*-1, self.velocidad*-1, self.horizontal)
                        personajes.x = ejex
                        entornos.x= ejex
                    elif self.direccion == MOVAUTONOMO_ABAJO:
                        pass#construccion
                    elif self.direccion == MOVAUTONOMO_ARRIBA:
                        pass


                elif self.tipoMOVAUT == MOVAUTONOMO_CONSTANTE:

                    if self.direccion == MOVAUTONOMO_DERECHA:
                        ejex = mov_recUniforme(t, self.velocidad, self.horizontal)
                        personajes.x = ejex
                        entornos.x= ejex

                    elif self.direccion == MOVAUTONOMO_IZQ:
                        ejex = mov_recUniforme(t, self.velocidad*-1, self.horizontal)
                        personajes.x = ejex
                        entornos.x= ejex

            elif self.estilo == MOVPERSONAJE:
                if self.tipoMOVPER == MOVPERSONAJE_CENTRADO:
                    coorx, coory = self.monito.coordenadas()
                    tamx, tamy = self.monito.imagen.tam.size


                    if self.enfocar_personaje == True:
                        self.enfocar_personaje = False
                        self.fueraRango = True
                        #self.altura = coory + personajes.y
                        self.eje_x = coorx
                        self.eje_y = coory
                        self.tiempo.modPasivo()
                        self.horizontal = personajes.x
                        self.vertical = personajes.y

                        origen = (coorx+self.horizontal, coory+self.vertical)
                        destino = (400-tamx,300-tamy)
                        self.angulo = instanAng2(origen,destino)

                        print self.altura
                        print "ORIGEN : "+str(origen)
                        print "DESTINO: "+str(destino)
                        print "ANGULO : "+str(self.angulo)


                    if self.fueraRango == True:
                        t = self.tiempo.cronometroC()
                        ejex ,ejey = mov_parabolico(None, 30,0,self.angulo*-1,t, 0)#V_inicial,altura, angulo, tiempo, gravedad)
                        #print ejex, ejey

                        limitx = ejex+self.eje_x+tamx+self.horizontal
                        limity = ejey+self.eje_y+tamy+self.vertical

                        if 395<limitx<405 and 295 <limity<305:
                            self.fueraRango = False
                            self.tipoMOVPER = MOVPERSONAJE_BORDES

                        personajes.x= ejex+self.horizontal
                        #personajes.y= ejey+self.vertical

                        entornos.x =self.horizontal + ejex
                        #entornos.y = self.vertical +ejey
                        #print personajes.x, personajes.y

                elif self.tipoMOVPER == MOVPERSONAJE_BORDES:
                    coorx, coory = self.monito.coordenadas()
                    tamx, tamy = self.monito.imagen.tam.size

                    if self.enfocar_personaje == False:
                        self.enfocar_personaje = True
                        self.eje_x = coorx
                        self.eje_y = coory
                    else:
                        if self.eje_x != coorx:
                            personajes.x-= coorx -self.eje_x
                            entornos.x-=coorx -self.eje_x
                            self.eje_x = coorx
Exemplo n.º 10
0
class Personaje(object):

    def __init__(self):

        #identinficacion
        self.id = uuid.uuid1().hex

        self._x = 0
        self._y = 0
        self.ancho = 0
        self.largo = 0

        self.x_inicial = 0
        self.y_inicial = 0

        self.x_antes = 0
        self.y_antes = 0

        self.sistema_cerradox = [0, 0]
        self.sistema_cerradoy = [0, 0]

        self.enviarGanancia_x = 0
        self.enviarGanancia_y = 0
        self.recibirGanancia_x = 0
        self.recibirGanancia_y = 0

        # estado del personaje
        self.saltar = False
        self.correr= False
        self.caminar = False

        #sentido
        self.sentido = False

        self.protagonista = False
        self.iA = False
        self.agente = None

        #el personaje esta compuesto por cuatro rectangulos
        self.rectangulo = Rect(0,0,0,0)#cuerpo completo
        self.rec1 = Rect(0, 0, 0, 0)#bajo
        self.rec2 = Rect(0, 0, 0, 0)#izquierda
        self.rec3 = Rect(0, 0, 0, 0)#derecha
        self.rec4 = Rect(0, 0, 0, 0)#arriba

        self.ady_left = False
        self.ady_right = False
        self.ady_down = False
        self.ady_up = False

        self.tic = Tiempo()
        self.status={}
        self.status["angulo"] = 0
        self.status["velocidad"]=0
        self.status["velocidad x"] = 0
        self.status["velocidad y"] = 0
        self.status["gravedad"] = 9.8
        self.status["parabola"] = (90, 88)#velocidad inicial, angulo inicial
        self.status["caida"]=(270, 90)
        self.status["correr"] = (23, 1)#velocidad, aceleracion
        self.status["caminar"] = 30 #velocidad

    def runGanancia1(self):
        self.enviarGanancia_x = self._x - self.x_antes
        self.enviarGanancia_y = self._y - self.y_antes
        self._x += self.recibirGanancia_x
        self._y += self.recibirGanancia_y

    def runGanancia2(self):
        self._x += self.sistema_cerradox[1] - self.sistema_cerradox[0]
        self._y += self.sistema_cerradoy[1] - self.sistema_cerradoy[0]
        self._x += self.recibirGanancia_x
        self._y += self.recibirGanancia_y
        self.enviarGanancia_x = self._x - self.x_antes
        self.enviarGanancia_y = self._y - self.y_antes

    def getDiferenciaXY(self):
        x = self._x - self.x_antes
        y = self._y - self.y_antes
        return x,y

    def setGananciaXY(self, g):
        self.recibirGanancia_x=g[0]
        self.recibirGanancia_y=g[1]

    def getGananciaXY(self):
        return self.enviarGanancia_x, self.enviarGanancia_y
    
    def getStatus(self, valor):
        return self.status[valor]

    def tam_rectangulos(self, rec_size):
        self.ancho, self.largo=rec_size
        self.rectangulo.width, self.rectangulo.height = (rec_size[0], rec_size[1])
        self.rec1.width, self.rec1.height = (rec_size[0] / 2.0, rec_size[1] / 4.0)
        self.rec2.width, self.rec2.height = (rec_size[0] / 4.0, rec_size[1] / 2.0)
        self.rec3.width, self.rec3.height = (rec_size[0] / 4.0, rec_size[1] / 2.0)
        self.rec4.width, self.rec4.height = (rec_size[0] / 2.0, rec_size[1] / 4.0)

    def pos_rectangulos(self, coor, tam):
        x, y = coor
        ancho, largo = tam
        self.rectangulo.left, self.rectangulo.top = (x, y)
        (self.rec1.left, self.rec1.top) = (x + (ancho / 4.0),y + largo - self.rec1.height)  # + 3*(largo/4.0))#abajo
        (self.rec2.left, self.rec2.top) = (x, y + (largo / 4.0))
        (self.rec3.left, self.rec3.top) = (x + ancho - self.rec3.width,y + (largo / 4.0))
        (self.rec4.left, self.rec4.top) = (x + (ancho / 4.0), y)

    def actualizacionRec(self):
        self.pos_rectangulos((self._x, self._y),(self.ancho, self.largo))

    def setXY(self, x, y):
        self._x = self.x_antes = x
        self._y = self.y_antes = y
        self.actualizacionRec()

    def getXY(self):
        return (self._x, self._y)


    def saltando(self,):
        self.x_antes = self._x
        self.y_antes = self._y


        if self.saltar == False and self.correr == False and self.caminar == False:
            self.tic.modPasivo()
            self.x_inicial = self._x
            self.y_inicial = self._y

            self.sistema_cerradox[0] = self.sistema_cerradox[1]= 0
            self.sistema_cerradoy[0] = self.sistema_cerradoy[1]= 0

        if self.saltar == True and self.correr == False and self.caminar == False:
            self.tiempo = self.tic.cronometroC()
            self.sistema_cerradox[0] = self.sistema_cerradox[1]
            self.sistema_cerradoy[0] = self.sistema_cerradoy[1]
            velocidad_inicial = self.status["parabola"][0]
            angulo_disparo = self.status["parabola"][1]
            gravedad = self.status["gravedad"]
            tupla = mov_parabolico1(velocidad_inicial ,angulo_disparo, self.tiempo, gravedad)
            (x, y) = tupla
            self.sistema_cerradox[1] = x
            self.sistema_cerradoy[1] = y

            self.status["velocidad x"],self.status["velocidad y"]=velocidad_InstanteXY(velocidad_inicial,angulo_disparo,self.tiempo,gravedad)
            self.status["velocidad"]=velocidad_Instante(self.status["velocidad x"],self.status["velocidad y"])
            self.status["angulo"]=angulo_actual(self.status["velocidad x"],self.status["velocidad y"])
            self.record = self.tiempo

    def corriendo(self,):
        self.x_antes = self._x
        self.y_antes = self._y

        if self.saltar == False and self.correr == False and self.caminar == False:
            self.tic.modPasivo()
            self.x_inicial = self._x
            self.y_inicial = self._y

            self.sistema_cerradox[0] = self.sistema_cerradox[1] = 0
            self.sistema_cerradoy[0] = self.sistema_cerradoy[1] = 0

        if self.correr == True and self.saltar == False and self.caminar == False:
            t = self.tic.cronometroC()

            self.sistema_cerradox[0] = self.sistema_cerradox[1]
            self.sistema_cerradoy[0] = self.sistema_cerradoy[1]
            velocidad = self.status["correr"][0]
            aceleracion =self.status["correr"][1]

            if self.sentido == True:
                self.status["angulo"] = 0
            else:
                self.status["angulo"] = 180
                velocidad *= -1
                aceleracion *= -1

            vel_t = vel_movRecAcelerado(aceleracion,t, velocidad)
            self.status["velocidad"] = vel_t
            self.status["velocidad x"] = vel_t
            self.status["velocidad y"]  = 0
            x = mov_recAcelerado(t, aceleracion, velocidad)
            self.sistema_cerradox[1] = x

    def caminando(self,):
        self.x_antes = self._x
        self.y_antes = self._y

        if self.saltar == False and self.correr == False and self.caminar == False:
            self.tic.modPasivo()
            self.x_inicial = self._x
            self.y_inicial = self._y
            self.sistema_cerradox[0] = self.sistema_cerradox[1] = 0
            self.sistema_cerradoy[0] = self.sistema_cerradoy[1] = 0

        if self.caminar == True and self.saltar == False and self.correr == False:  # aceleracion |            disancia inicial | velocidad inicial
            t = self.tic.cronometroC()
            self.sistema_cerradox[0] = self.sistema_cerradox[1]
            self.sistema_cerradoy[0] = self.sistema_cerradoy[1]

            velocidad = self.status["caminar"]
            self.status["velocidad"] = velocidad

            if self.sentido == True:
                self.angulo = 0
            else:
                self.angulo = 180
                velocidad *= -1
            self.status["angulo"] = self.angulo

            x = mov_recUniforme(t, velocidad)
            self.sistema_cerradox[1]=x

    def getEjeX(self):
        return self._x

    def getEjeY(self):
        return self._y

    def getCoordenadas(self):
        return (self._x, self._y)

    def setSalto(self, salto):
        self.saltar = salto
        self.status["angulo"] = self.status["parabola"][1]

    def getSalto(self):
        return self.saltar

    def getCorrer(self):
        return self.correr

    def setCorrer(self, correr, dic = True):
        self.correr = correr
        self.sentido = dic

    def getCaminar(self):
        return self.caminar

    def setCaminar(self, caminar, dic = True):
        self.caminar = caminar
        self.sentido = dic

    def getSentido(self):
        return self.sentido

    def getStatus(self, status):
        return self.status[status]

    def reseteo(self):
        self.tiempo=0
        self.x_inicial=self._x
        self.y_inicial=self._y
        self.sistema_cerradox[0] = self.sistema_cerradox[1] = 0
        self.sistema_cerradoy[0] = self.sistema_cerradoy[1] = 0
        self.actualizacionRec()
        self.tic.modPasivo()
Exemplo n.º 11
0
 def anadir_marca_next(self,duracion):
     tiempo=Tiempo(duracion)
     for iteracion in range(len(self.archivo.objeto_sonidos)):
         tiempo.agregar_nota(False)
     posicion=self.archivo.tiempos.index(self.t_act.dato)+1
     self.archivo.tiempos.insert(posicion,tiempo)
Exemplo n.º 12
0
 def anadir_marca(self,duracion):
     tiempo=Tiempo(duracion)
     for iteracion in range(len(self.archivo.objeto_sonidos)):
         tiempo.agregar_nota(False)
     self.archivo.tiempos.append(tiempo)
Exemplo n.º 13
0
 def anadir_marca_prev(self, duracion):
     tiempo = Tiempo(duracion)
     for iteracion in range(len(self.archivo.objeto_sonidos)):
         tiempo.agregar_nota(False)
     return