Esempio n. 1
0
 def treatInput(self):
     arr = []
     arrID = []
     for line in sys.stdin.readlines():
         try:
             temp = map(int, line.split())
             if(len(temp) == 3):
                 if(temp[2]<temp[1]):
                     raise MyError("erro; segunda coordenada menor que a primeira")
                 elemento=Elemento(temp[0], temp[1], temp[2])
                 arr.append(elemento)
                 arrID = self.checkID(arrID, elemento.getId())
             else:
                 raise MyError("erro; Numero invalido de argumentos")
         except ValueError:
             print "erro; Entrada invalida, possiveis caracteres na entrada"
             raise SystemExit
         except MyError as err:
             print err.str
             raise SystemExit
     try:
         if len(arr)<=1:
             raise MyError("erro; Colecao pequena demais")
     except MyError as err:
         print err.str
         raise SystemExit
     # Sort array based on first coordinate
     arr=sorted(arr, key=self.getFirstCoordinate)
     return arr
 def inserirNaFrente(self, dado):
     novo = Elemento(dado)
     if self.lista_vazia():
         self.__inicio = novo
         self.__fim = novo
         self.__tamanho += 1
     else:
         anterior = novo.anterior(None)
         posterior = novo.posterior(self.__inicio)
         self.__inicio = novo
         self.__tamanho += 1
 def inserirNoFinal(self, novo_elemento):
     novo = Elemento(novo_elemento)
     if self.lista_vazia():
         self.__inicio = novo
         self.__fim = novo
         self.__tamanho += 1
     else:
         self.__fim.posterior = novo
         novo.anterior = self.__fim
         novo.posterior = None
         self.__fim = novo
         self.__tamanho += 1
Esempio n. 4
0
    def deslocar(self):
        # criando quadrado novo (cabeca):
        cabeca = self.get_cabeca()
        x = int(math.cos(math.radians(cabeca.get_orientacao())))
        y = int(math.sin(math.radians(cabeca.get_orientacao())))
        xc, yc = cabeca.get_posicao()
        self.__corpo.append(Elemento(cabeca.get_orientacao(), [xc+x, yc+y], self.__cor, self.__lado_quadrado))

        if self.__comeu:
            self.__comeu = 0
        else:
            del self.__corpo[0]
 def inserirDepoisDoAtual(self, atual, novo_elemento):
     elemento_atual = self.buscar(atual)
     novo = Elemento(novo_elemento)
     novo.anterior = elemento_atual
     novo.posterior = elemento_atual.posterior
     elemento_atual.posterior = novo
 def inserirAntesDoAtual(self, atual, novo_elemento):
     elemento_atual = self.buscar(atual)
     novo = Elemento(novo_elemento)
     novo.anterior = elemento_atual.anterior
     novo.posterior = elemento_atual
     elemento_atual.anterior = novo
Esempio n. 7
0
 def __init__(self, posicao_inicial=[10,10], cor=cores_rgb.green, tamanho_inicial=3, lado_quadrado=30):
     xini, yini = posicao_inicial
     self.__corpo = [Elemento(0, [x, yini], cor, lado_quadrado) for x in range(xini, xini + tamanho_inicial)]
     self.__cor = cor
     self.__lado_quadrado = lado_quadrado
     self.__comeu = 0
Esempio n. 8
0
 def get_cabeca_futuro(self):
     cabeca = self.get_cabeca()
     x = int(math.cos(math.radians(cabeca.get_orientacao())))
     y = int(math.sin(math.radians(cabeca.get_orientacao())))
     xc, yc = cabeca.get_posicao()
     return Elemento(cabeca.get_orientacao(), [xc+x, yc+y], self.__cor, self.__lado_quadrado) 
# -*- coding: utf-8 -*-
from elemento import Elemento
from tabla_periodica import TablaPeriodica
from compuesto import Compuesto
from medio import Medio

oxigeno = Elemento("O", 8, 8, 4)
hidrogeno = Elemento("H", 1, 0, 1)
carbono = Elemento("C", 6, 6, 4)
nitrogeno = Elemento("N", 7, 7, 3)

tabla = TablaPeriodica([oxigeno, hidrogeno, carbono, nitrogeno])

tablaVacia = TablaPeriodica()

nh3 = Compuesto('NH3')
nh3.agregarAtomo(nitrogeno)
nh3.agregarAtomos(hidrogeno, 3)
nh3.enlazarConVarios("N1", ["H1", "H2", "H3"])

agua = Compuesto("H2O")
agua.agregarAtomo(oxigeno)
agua.agregarAtomos(hidrogeno, 2)
agua.enlazarConVarios("O1", ["H1", "H2"])

metano = Compuesto("CH4")
metano.agregarAtomo(carbono)
metano.agregarAtomos(hidrogeno, 4)
metano.enlazarConVarios("C1", ["H1", "H2", "H3", "H4"])

co2 = Compuesto("CO2")