예제 #1
0
 def test_preco_casa(self):
     # identificador, proprietario, quantidade_quartos, quantidade_vagas_garagem, quantidade_pavimentos, area_pavimento
     # , preco_m2_area_pavimento, area_livre, preco_m2_area_livre
     casa1 = Casa(48251, 'Eduardo Pelegrineti Targueta', 4, 9, 3, 688.3,
                  310, 309.2, 3945)
     preco_casa1 = casa1.calcular_preco()
     self.assertEqual(preco_casa1, 1859913.0)
예제 #2
0
    def geraMovimentoAPartirDeRowEColumn(self, inicialRow, inicialColumn,
                                         finalRow, finalColumn):
        inicialNumero = 7 - inicialRow
        inicialLetra = chr(ord('a') + inicialColumn)
        casaInicial = Casa(inicialLetra, inicialNumero)

        finalNumero = 7 - finalRow
        finalLetra = chr(ord('a') + finalColumn)
        casaFinal = Casa(finalLetra, finalNumero)

        movimento = Movimento(casaInicial, casaFinal)
        return movimento
예제 #3
0
    def build_inventario(self, gui, doc):
        """ """

        # Criando as casas do inventario
        self.inventario = [
            Casa(casa_visual, None, self, "inventario", gui)
            for casa_visual in gui.build_inventario(gui)
        ]

        # Criando as pecas
        id_pecas = range(self.range[0], self.range[1])
        random.shuffle(id_pecas)

        pecas = [
            gui.build_peca(casa.casa_visual, id)
            for id, casa in zip(id_pecas, self.inventario)
        ]

        #pecas = [gui.build_peca(casa.casa_visual, id) for id,casa in enumerate(self.inventario)]

        map_pecas = {}

        # Alocando uma peca para cada casa do inventario
        for peca, casa in zip(pecas, self.inventario):
            map_pecas[peca.id] = casa
            casa.peca = peca
            casa.num_pecas_inicial = (PEC_H * PEC_V)

        self.map_pecas = map_pecas

        # Atrelando o mapeamento de pecas (informa a casa de uma determinada peca) nas casas do inventario
        for casa in self.inventario:
            casa.map_pecas = map_pecas
def criar_casa(file, ident, nome_proprietario, quantidade_quartos,
               quantidade_vagas):
    quantidade_pavimentos = get_linha_formatada(file)
    area_pavimento = get_linha_formatada(file)
    preco_m2_area_pavimento = get_linha_formatada(file)
    area_livre = get_linha_formatada(file)
    preco_m2_area_livre = get_linha_formatada(file)

    return Casa(ident, nome_proprietario, quantidade_quartos, quantidade_vagas,
                quantidade_pavimentos, area_pavimento, preco_m2_area_pavimento,
                area_livre, preco_m2_area_livre)
예제 #5
0
    def on_time(self):
        super(ProcurarPolicial, self).on_time()
        display_message(self.agent.aid.localname, 'Pocial Decidindo!')

        if (self.agent.casaChamado != None):
            self.moverAteLocal()
        elif (not (len(self.agent.chamados) == 0)):
            casaNova = self.agent.chamados.popleft()
            self.agent.casaChamado = Casa(casaNova['linha'],
                                          casaNova['coluna'])
        else:
            display_message(self.agent.aid.localname, 'Esperando chamado!')
예제 #6
0
 def iniciar_tabuleiro(self):
     """
     Preenche a matriz de controle (vetor_de_controle) com as casas instanciando uma casa para cada posição.
     :return:
     """
     for i in range(0, 8, 1):
         self.vetor_de_Controle.append([])
         for j in range(0, 8, 1):
             self.vetor_de_Controle[i].append(
                 Casa(self.objectGroup,
                      display=self.display,
                      posicao_na_matriz=(i, j)))
     self.iniciar_pecas()
    def desireAndarProximaCasa(self):
        linha = self.agent.casaAtual.linha
        coluna = self.agent.casaAtual.coluna
        proximaLinha = random.randint(-1, 1) + linha
        proximaColuna = random.randint(-1, 1) + coluna
        colunas = Matriz.COLUNAS.value
        linhas = Matriz.LINHAS.value

        while ((proximaLinha == linha) and
               (proximaColuna == coluna)) or ((proximaColuna >= colunas) or
                                              (proximaLinha >= linhas)):
            proximaLinha = random.randint(-1, 1) + linha
            proximaColuna = random.randint(-1, 1) + coluna

        return Casa(proximaLinha, proximaColuna)
예제 #8
0
 def getListaMovimentos (self):
     listaJogadas = []
     
     jogadas = input ("Insira sua jogadas. Cada jogada deve estar demarcada entre \": ")
     jogadas = jogadas.split ("\"")
     
     for jogada in jogadas:
         if (jogada and not jogada == " "):
             separados = jogada.split (" ")
             
             letraInicial = separados [0]
             numeroInicial = int (separados [1])
             casaInicial = Casa (letraInicial, numeroInicial)
             
             
             letraFinal = separados [2]
             numeroFinal = int(separados [3])
             casaFinal = Casa (letraFinal, numeroFinal)
             
             movimento = Movimento (casaInicial, casaFinal)
             
             listaJogadas.append (movimento)
         
     return listaJogadas
class Incendiario(Agent):

    linha = random.randint(0, 9)
    coluna = random.randint(0, 9)
    casaAtual = Casa(linha, coluna)

    def __init__(self, aid):
        super(Incendiario, self).__init__(aid=aid, debug=False)

        comp_temp = Incendiar(self, 2.0)

        self.behaviours.append(comp_temp)

    def react(self, message):
        display_message(self.aid.localname, 'Mensagem recebida')
        if (message == "Processo Morto"):
            sys.exit()
예제 #10
0
    def desireAndarProximaCasa(self):
        linha = self.agent.casaAtual.linha
        coluna = self.agent.casaAtual.coluna
        proximaLinha = 0
        proximaColuna = 0
        colunas = Matriz.COLUNAS.value
        linhas = Matriz.LINHAS.value

        if (coluna + 1 >= colunas):  #Quando a linha tiver acabado
            if (not (linha + 1 >=
                     linhas)):  #Quando o cenário não tiver acabado
                proximaLinha = linha + 1
        else:
            proximaColuna = coluna + 1
            proximaLinha = linha

        return Casa(proximaLinha, proximaColuna)
예제 #11
0
    def escolherProximaCasa(self):
        colunaCasaAtual = self.agent.casaAtual.coluna
        colunaCasaChamado = self.agent.casaChamado.coluna
        colunaProximaCasa = colunaCasaAtual
        linhaCasaAtual = self.agent.casaAtual.linha
        linhaCasaChamado = self.agent.casaChamado.linha
        linhaProximaCasa = linhaCasaAtual

        if (colunaCasaChamado - colunaCasaAtual < 0):
            colunaProximaCasa = colunaCasaAtual - 1
        elif (colunaCasaChamado - colunaCasaAtual > 0):
            colunaProximaCasa = colunaCasaAtual + 1
        elif (linhaCasaChamado - linhaCasaAtual < 0):
            linhaProximaCasa = linhaCasaAtual - 1
        elif (linhaCasaChamado - linhaCasaAtual > 0):
            linhaProximaCasa = linhaCasaAtual + 1

        return Casa(linhaProximaCasa, colunaProximaCasa)
예제 #12
0
class Civil(Agent):

    casaAtual = Casa(9, 9)
    bombeiro = None
    policial = None

    def __init__(self, aid, bombeiro, policial):
        super(Civil, self).__init__(aid=aid, debug=False)

        self.bombeiro = bombeiro
        self.policial = policial

        comp_temp = Passear(self, 0.06)

        self.behaviours.append(comp_temp)

    def mandarMensagem(self, port, host, casa):
        s = socket.socket()
        s.connect((host, port))
        s.send(casa)
        s.close()
예제 #13
0
    def mover_peca(self, casa_destino: Casa):
        """
        Move a atual peça selecionada para a casa escolhida. Considera jogadas especiais.

        :param casa_destino: Casa que foi escolhida para a peça ser movida.
        :return:
        """
        peca_movida: PecaBase = self.casa_selecionada.peca
        peca_movida.movimentos += 1
        self.casa_selecionada.remover_peca()

        if casa_destino.is_roque:
            casa_destino.inserir_peca(peca_movida)
            i = casa_destino.posicao_na_matriz[0]

            if casa_destino.posicao_na_matriz[1] > 4:
                torre = self.vetor_de_Controle[i][7].peca
                torre.movimentos += 1
                self.vetor_de_Controle[i][7].remover_peca()
                self.vetor_de_Controle[i][5].inserir_peca(torre)

            if casa_destino.posicao_na_matriz[1] < 4:
                torre = self.vetor_de_Controle[i][0].peca
                torre.movimentos += 1
                self.vetor_de_Controle[i][0].remover_peca()
                self.vetor_de_Controle[i][3].inserir_peca(torre)

        elif casa_destino.is_en_passant:
            casa_destino.inserir_peca(peca_movida)

            i = casa_destino.posicao_na_matriz[0]
            j = casa_destino.posicao_na_matriz[1]

            if casa_destino.peca.tonalidade == 'claro':
                self.vetor_de_Controle[i + 1][j].remover_peca(True)
            else:
                self.vetor_de_Controle[i - 1][j].remover_peca(True)

        else:
            casa_destino.inserir_peca(peca_movida)

        self.promocao()
        self.trocar_vez()

        # IA:
        if modoJogo == 2:
            IA(self)
예제 #14
0
class Policial(Agent):

    casaAtual = Casa(9, 0)
    respondendoChamado = True  #True para testar
    casaChamado = None
    comunicacao = None
    chamados = deque([])
    bombeiro = None

    def __init__(self, aid, portC):
        super(Policial, self).__init__(aid=aid, debug=False)

        comp_temp = ProcurarPolicial(self, 0.3)

        self.behaviours.append(comp_temp)

        self.comunicacao = ComunicacaoServer(portC)
        thread = threading.Thread(target=self.ligarServidor, args=())
        thread.start()

    def ligarServidor(self):
        while True:
            casa = self.comunicacao.ouvirCliente()

            if (casa not in self.chamados):
                self.chamados.append(casa)

    def mandarMensagem(self, port, host, casa):
        s = socket.socket()
        s.connect((host, port))
        s.send(casa)
        s.close()

    def getPort(self):
        return self.comunicacao.port

    def getHost(self):
        return self.comunicacao.host
예제 #15
0
from casa import Casa

casa1 = Casa(2, 3, 5, 6, 1)
casa2 = Casa(3, 1, 5, 2, 3)

print(casa1.getInfo())
print(casa2.getInfo())
예제 #16
0
파일: main.py 프로젝트: GHEPT/VSCode_Python
from relogio import Relogio
from personagem import Personagem
from casa import Casa

if(__name__ == "__main__"): # Pesquisar significado desse if
    dia = 1
    relogio = Relogio()
    personagem = Personagem()
    casa = Casa()
    cafe_da_manha = False
    while True:
        print("---")
        print("São "+str(relogio)+" do dia "+str(dia)+". Você tem que sair pro trabalho até às 07:00.")
        print(personagem)
        print("")
        print("Ações:")
        print("1 - Tomar banho e escovar os dentes")
        print("2 - Fazer café da manhã")
        print("3 - Pedir café da manhã")
        print("4 - Tomar café da manhã")
        print("5 - Tomar remédio")
        print("6 - Comprar remédio")
        print("7 - Ir trabalhar")
        print("0 - Sair do jogo")
        opcao = input("Escolha sua ação:")
        if(opcao == "1"):
            personagem.sujo = False
            relogio.avancaTempo(20)
        elif(opcao == "2"):
            if(casa.comida > 0):
                casa.comida -= 1
예제 #17
0
def CriaCasa():
    if len(casas) < 5:
        casas.append(Casa(canvas, ultimoClick.x, ultimoClick.y))
 def prompt_init():
     init = Casa.prompt_init()
     init.update(Compra.prompt_init())
     return init
예제 #19
0
 def build_alvos(self, gui):
     """ """
     self.alvos = [
         Casa(casa_visual, self.map_pecas, self, "alvo")
         for casa_visual in gui.build_alvos(gui)
     ]
 def prompt_init():
     init = Casa.prompt_init()
     init.update(Alquiler.prompt_init())
     return init
예제 #21
0
 def __init__(self, costo, direccion, numero=None):
     Casa.__init__(self, costo, direccion, numero)
     if (numero is None):
         numero = []
     self.__numero = numero
예제 #22
0
from tabuleiro import Tabuleiro
from movimento import Movimento
from casa import Casa
from variaveisGlobais import VariaveisGlobais

# Tester movimento no tabuleiro
listaMovimento = []

#PRIMEIRO TESTE
print ("Começando teste 1:")
print ("Tabuleiro inicial teste 1:")
tabuleiro = Tabuleiro (VariaveisGlobais.TABULEIRO_TESTE)
tabuleiro.printaTabuleiro ()

casaInicial = Casa ("a", 2)
casaFinal = Casa ("c", 4)
movimento1 = Movimento (casaInicial, casaFinal)

casaInicial = Casa ("c", 4)
casaFinal = Casa ("e", 6)
movimento2 = Movimento (casaInicial, casaFinal)

listaMovimento.append (movimento1)
listaMovimento.append (movimento2)

print ("Tabuleiro apos movimento teste 1:")
tabuleiro.doMultipleMovementsComer (listaMovimento)
tabuleiro.printaTabuleiro ()

listaMovimento.clear ()