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)
示例#2
0
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)
示例#8
0
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
示例#11
0
	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)
示例#15
0
	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)
示例#16
0
    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)):
示例#18
0
 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)
示例#20
0
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)
示例#22
0
 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)
示例#24
0
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()

示例#25
0
    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)