def __init__(self, nombre="", peso=6): """ Constructor @type self: Cuchara @param self: referencia al objeto Cuchara actual @type nombre: string @param nombre: nombre del objeto representado. Default epsilon. @type peso: int @param peso: indicador para establecer si cabe o no en el lugar en el que probablemente se sostenga """ Objeto.__init__(self, nombre,'Cuchara1.png', peso)
def ensamblador(): global id_objeto contA = 0 contB = 0 for x in banda_transAB: if Objeto.getTipo(x) == 1: contA += 1 elif Objeto.getTipo(x) == 2: contB += 1 if (contA%2 == 0) and (contB%3 == 0): id_objeto += 1 C = Objeto(id_objeto, 3) banda_transC.append(C)
def __init__(self, nombre="", peso=10): """ Constructor @type self: Pala @param self: referencia al objeto Pala actual @type nombre: string @param nombre: nombre del objeto representado. Default epsilon. @type peso: int @param peso: peso del objeto. Default 10. """ Objeto.__init__(self, nombre,'Pala.png', peso)
def __init__(self, contenedor=None, porcentaje=100, nombre="grano"): """ Constructor @type self: Gabinete @param self: referencia al objeto Gabinete actual @type nombreContenedor: string @param nombreContenedor: nombre del objeto representado. Default epsilon. @type porcentaje: int @param porcentaje: el porcentaje del contenedor que seran granos @type nombre: string @param nombre: nombre del grano. Default "grano" """ Objeto.__init__(self, nombre, '', 0) IParticula.__init__(self, contenedor)
def __init__(self, nombre="", particula=None, peso=10): """ Constructor @type self: Tarro @param self: referencia al Tarro actual @type nombre: string @param nombre: nombre del Tarro. @type particula: int @param particula: cantidad del contenido que se comprende en una unidad de medida @type peso: int @param peso: peso del objeto. Default 10. """ Objeto.__init__(self, nombre, "Tarro1.png", peso) ITenerParticula.__init__(self, particula)
def __init__(self, nombre="", capacidad=10, elementos={}, peso=None): """ Constructor @type self: Despensa @param self: referencia al objeto Despensa actual @type nombre: string @param nombre: nombre del objeto representado. Default epsilon. @type capacidad: int @param capacidad: cantidad de elementos maxima que la Despensa puede contener. Default 10. @type elementos: dictionary @param elementos: relacion nombre --> objeto sobre los objetos contenidos en la Despensa. """ Objeto.__init__(self, nombre,'Despensa1.png', peso) ITenerOscuro.__init__(self, capacidad, elementos) IAbrir.__init__(self)
def __init__(self, nombre="", capacidad=10, elementos={}, peso=None): """ Constructor @type self: Gabinete @param self: referencia al objeto Gabinete actual @type nombre: string @param nombre: nombre del objeto representado. Default epsilon. @type capacidad: int @param capacidad: indicador de la maxima cantidad de objetos (por peso o tamanio) que el Gabinete puede contener. Default 10. @type elementos: dictionary @param elementos: relacion nombre --> objeto sobre los objetos contenidos. """ Objeto.__init__(self, nombre,'gabinete.png') ITenerOscuro.__init__(self, capacidad, elementos) IAbrir.__init__(self)
def productorA(): global t global id_objeto while t <= 500: #La maquina solo trabajara por 500 segundos t += 1 if t%5 == 0: id_objeto += 1 A = Objeto(id_objeto, 1) banda_transAB.append(A)
def __init__(self, nombre="", particula=None, peso=2, imagen="Sobre1.png"): """ Constructor @type self: Sobre @param self: referencia al Sobre actual @type nombre: string @param nombre: nombre del Sobre. @type particula: int @param particula: cantidad del contenido que se comprende en una unidad de medida @type peso: int @param peso: peso del objeto. Default 2. """ Objeto.__init__(self, nombre, imagen, peso) ITenerParticula.__init__(self, particula)
def mochila(lista, W): xSel = [0 for i in range(0, len(lista))] #lista de Vpup finales auxLista = lista suma = 0 #suma de pesos while suma < W: x = Mayor_Elemento(auxLista, suma, W) if suma + x[1] <= W: xSel[x[2]] = 1 suma += x[1] auxLista[x[2]] = Objeto( 1, 0) #sustituir por uno de valor=0 para que Vpup=0 else: xSel[x[2]] = (W - suma) / x[1] #Tomar una fracción del objeto suma = W auxLista[(x[2])] = Objeto(1, 0) return xSel
def __init__(self, nombre="", capacidad=0, elementos={}, peso=None): """ Constructor @type self: Mesa @param self: referencia a la Mesa actual @type nombre: string @param nombre: nombre de la Mesa. @type elementos: dictionary @param elementos: elementos contenidos, y su relacion nombre --> objeto @type peso: int @param peso: variable que permite definir si la Mesa es soportada o no en un contenedor. @type capacidad: int @param capacidad: cantidad que determina un maximo de elementos a contener, ya sea por peso o por tamanio. """ Objeto.__init__(self, nombre,'Mesa1.png', peso) ITener.__init__(self, capacidad, elementos)
def __init__(self, nombre="", particula=None, peso=6): """ Constructor @type self: Bandeja @param self: referencia al objeto Bandeja actual @type nombre: string @param nombre: nombre del objeto representado. Default epsilon. @type capacidad: int @param capacidad: cantidad de elementos maxima que la Bandeja puede contener. Default 10. @type elementos: dictionary @param elementos: relacion nombre --> objeto sobre los objetos contenidos en la bandeja. @type peso: int @param peso: peso del objeto. Default 6. """ Objeto.__init__(self, nombre,'Hielo.png', peso) ITenerParticula.__init__(self, particula)
def __init__(self, nombre="", particula=None, peso=5): """ Constructor @type self: Frasco @param self: referencia al objeto Frasco actual @type nombre: string @param nombre: nombre del objeto representado. Default epsilon. @type elementos: dictionary @param elementos: elementos contenidos, y su relacion nombre --> objeto @type capacidad: int @param capacidad: cantidad que determina un maximo de elementos a contener, ya sea por peso o por tamanio. @type peso: int @param peso: peso del objeto. Default 5. """ Objeto.__init__(self, nombre,'frasco.png', peso) ITenerParticula.__init__(self, particula)
def __init__(self, nombre="", capacidad=10, elementos={}, peso=None): """ Constructor @type self: Refrigerador @param self: referencia al Refrigerador actual @type nombre: string @param nombre: identificador del refrigerador. @type capacidad: int @param capacidad: cantidad que determina un maximo de elementos a contener, ya sea por peso o por tamanio. @type elementos: dictionary @param elementos: elementos contenidos, y su relacion nombre --> objeto @type peso: int @param peso: peso del objeto. Default None. """ Objeto.__init__(self, nombre, 'refrigerador.png', peso) ITenerOscuro.__init__(self, capacidad, elementos) IAbrir.__init__(self)
def __init__(self, contenedor=None, nombre="agua", revuelto=0): """ Constructor @type self: Agua @param self: referencia al objeto Agua actual @type nombreContenedor: string @param nombreContenedor: nombre del objeto contenedor representado. Default epsilon. @type porcentaje: int @param porcentaje: numero de 0 a 100 que indica que tan ocupada el Agua esta. @type nombre: string @param nombre: nombre del Agua actual. Default "Agua" @type revuelto: int @param revuelto: indica si lo que contenga el agua esta revuelto. Default No (0). """ Objeto.__init__(self, nombre, '', 0) IRevolvible.__init__(self, revuelto) IParticula.__init__(self, contenedor, esLiquida=True, esAbsorbente=False)
def create_object(self, object_name, owner_domain): objeto = Objeto(object_name) self.objects.append(objeto) owner_domain.add_right_to_object(objeto, 'owner', False) return objeto
if suma + x[1] <= W: xSel[x[2]] = 1 suma += x[1] auxLista[x[2]] = Objeto( 1, 0) #sustituir por uno de valor=0 para que Vpup=0 else: xSel[x[2]] = (W - suma) / x[1] #Tomar una fracción del objeto suma = W auxLista[(x[2])] = Objeto(1, 0) return xSel m = Mochila(100, 5) #Capacidad W=100, n=5 objetos o = [ Objeto(10, 20), Objeto(20, 30), Objeto(30, 66), Objeto(40, 40), Objeto(50, 60) ] #Objeto(peso, valor) o2 = [ Objeto(10, 20), Objeto(20, 30), Objeto(30, 66), Objeto(40, 40), Objeto(50, 60) ] oAux = [] for i in range(0, len(o)):
def __init__(self, volumen, peso ): Objeto.__init__(self, volumen,peso)
def __init__(self, nombre="", particula=None, peso=10): Objeto.__init__(self, nombre,'Regadera.png', peso) ITenerParticula.__init__(self, particula)
import socket import pickle from Objeto import Objeto s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((socket.gethostname(), 9999)) obj = Objeto("", 0) asd = s.recv(1024) obj = pickle.loads(asd) print(obj) s.close()
def __init__(self, contenedor=None, nombre="tierra"): Objeto.__init__(self, nombre, '', 0) IParticula.__init__(self, contenedor=contenedor, esLiquida=False, esAbsorbente=True) IExcavable.__init__(self, nombre)
def __init__(self, contenedor=None, nombre="flor"): Objeto.__init__(self, nombre, '', 0) IParticula.__init__(self, contenedor, esLiquida=False)
def __init__(self, contenedor=None, nombre="abono"): Objeto.__init__(self, nombre, '', 0) IParticula.__init__(self, contenedor=contenedor, esLiquida=False, esAbsorbente=False)
import socket import pickle from Objeto import Objeto s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((socket.gethostname(), 9999)) s.listen(1) obj = Objeto("Hola Perro Mundo", 15) dobj = pickle.dumps(obj) cliente, dir = s.accept() cliente.send(dobj) cliente.close()
def pedirBloqueioExclusivo(self, operacao): try: objeto = self.objetosGerenciados[operacao.objetoDaOperacao] if(not(objeto.isSharedLocked() or objeto.isExclusiveLocked())): #Objeto livre, sem locks objeto.transacaoXLock = operacao.transacaoResponsavel self.addInTransacoesComExclusiveLock(operacao) elif(objeto.isExclusiveLocked()): comparacaoDasTransacoes = cmp(operacao.transacaoResponsavel, objeto.transacaoXLock) if(comparacaoDasTransacoes == -1): # wound self.transacoesCanceladas.append(objeto.transacaoXLock) self.transacoesComExclusiveLock[objeto.transacaoXLock].remove(operacao.objetoDaOperacao) objeto.transacaoXLock = operacao.transacaoResponsavel self.addInTransacoesComExclusiveLock(operacao) elif(comparacaoDasTransacoes == 1): # wait objeto.listaDeEspera.append(operacao.transacaoResponsavel) operacao.transacaoResponsavel.isWaiting = True self.transacoesEmWait[operacao.transacaoResponsavel] = operacao.objetoDaOperacao operacao.transacaoResponsavel.inserirNoWaitFor(objeto.transacaoXLock) else: # Precisa colocar algo aqui? pass else: objeto.listaDeBloqueioCompartilhado.sort(reverse = True) tamanhoDaListaDeBloqueioCompartilhado = len(objeto.listaDeBloqueioCompartilhado) indexM = -1 for i in range(tamanhoDaListaDeBloqueioCompartilhado): comparacaoDasTransacoes = cmp(operacao.transacaoResponsavel, objeto.listaDeBloqueioCompartilhado[i]) if(comparacaoDasTransacoes == -1): self.transacoesCanceladas.append(objeto.listaDeBloqueioCompartilhado[i]) self.transacoesComSharedLock[operacao.transacaoResponsavel].remove(operacao.objetoDaOperacao) indexM = i if(comparacaoDasTransacoes == 0): indexM = i if(tamanhoDaListaDeBloqueioCompartilhado == 0): objeto.transacaoXLock = operacao.transacaoResponsavel self.addInTransacoesComExclusiveLock(operacao) else: if(indexM == -1): objeto.listaDeEspera.append(operacao.transacaoResponsavel) operacao.transacaoResponsavel.isWaiting = True self.transacoesEmWait[operacao.transacaoResponsavel] = operacao.objetoDaOperacao operacao.transacaoResponsavel.inserirNoWaitFor(objeto.listaDeBloqueioCompartilhado[0]) else: comparacaoDasTransacoes = cmp(operacao.transacaoResponsavel, objeto.listaDeBloqueioCompartilhado[indexM]) if(comparacaoDasTransacoes == 0 and indexM == tamanhoDaListaDeBloqueioCompartilhado - 1): del objeto.listaDeBloqueioCompartilhado[indexM] objeto.transacaoXLock = operacao.transacaoResponsavel self.transacoesComSharedLock[operacao.transacaoResponsavel].remove(operacao.objetoDaOperacao) self.addInTransacoesComExclusiveLock(operacao) elif(comparacaoDasTransacoes == -1 and indexM == tamanhoDaListaDeBloqueioCompartilhado - 1): objeto.transacaoXLock = operacao.transacaoResponsavel self.addInTransacoesComExclusiveLock(operacao) else: objeto.listaDeEspera.append(operacao.transacaoResponsavel) operacao.transacaoResponsavel.isWaiting = True self.transacoesEmWait[operacao.transacaoResponsavel] = operacao.objetoDaOperacao operacao.transacaoResponsavel.inserirNoWaitFor(objeto.listaDeBloqueioCompartilhado[indexM+1]) except KeyError: objeto = Objeto() objeto.transacaoXLock = operacao.transacaoResponsavel self.objetosGerenciados[operacao.objetoDaOperacao] = objeto self.addInTransacoesComExclusiveLock(operacao)
def __init__(self, nombre="", particula=None, peso=30): Objeto.__init__(self, nombre,'Maceta3.png', peso) ITenerParticula.__init__(self, particula)