Пример #1
0
 def add_fantasma(self, id):
     """ Adiciona um fantasma ao labirinto """
     tam_agente = self._tam_celula
     f = Agente(id, tam_agente, 'red')
     f.add_labirinto(self)
     self.agentes[id] = f
     return f
Пример #2
0
def main():

    from agente import Agente
    from ambiente import Ambiente

    tam = 4  #definindo o tamanho para a
    amb = Ambiente(tam)
    A = amb.crie_matriz()
    'Gerando Agente, Wumpus, Ouro e Poços'
    amb.pos_elem(A, 'A')
    amb.pos_elem(A, 'W')
    amb.pos_elem(A, 'G')
    for i in range(tam - 1):
        amb.pos_elem(A, 'H')

    pos_ag = []  #'posicao do agente'
    pos_ag = (0, 0)  #'Posição inicial do agente'
    print('Posicao do Ag Inicial\n', pos_ag)

    amb.gen_sensacoes(A)
    amb.imprime(A)  #chama a funcao que imprime a matriz
    sen = amb.sens_pos(pos_ag, tam)

    ag = Agente(pos_ag)
    ag.sens(sen)
Пример #3
0
 def add_pacman(self, id):
     """ Adiciona o pacman ao labirinto """
     tam_agente = self._tam_celula
     pacman = Agente(id, tam_agente, 'yellow')
     pacman.add_labirinto(self)
     self.agentes[id] = pacman
     return pacman
Пример #4
0
def main():
    tracer(False)
    hideturtle()
    bgcolor('white')

    dimensao_da_matriz = 20
    tam_celula = 20

    # Cria o labirinto
    lab = Labirinto(dimensao_da_matriz, tam_celula)
    lab.criar_labirinto()

    # Cria o agente
    tam_agente = 20
    agente = Agente(0, tam_agente, "yellow")
    agente.add_labirinto(lab)

    terminou_percurso = False
    intervalo_entre_frames = 0.3
    while (not terminou_percurso):
        terminou_percurso = agente.percorrer()
        # Atualiza o turtle e finaliza
        update()
        sleep(intervalo_entre_frames)
    done()
Пример #5
0
    def cruce3(self, agente1, agente2):
        hijo = Agente()
        if randint(0, 1) > 0:
            padre1 = agente1
            padre2 = agente2
        else:
            padre1 = agente2
            padre2 = agente1

        if randint(0, 1) > 0:
            hijo.infection_rate = padre1.infection_rate
        else:
            hijo.infection_rate = padre2.infection_rate

        if randint(0, 1) > 0:
            hijo.initial_probability_of_death = padre1.initial_probability_of_death
        else:
            hijo.initial_probability_of_death = padre2.initial_probability_of_death

        if randint(0, 1) > 0:
            hijo.initial_probability_of_chromatin_condensation = padre1.initial_probability_of_chromatin_condensation
        else:
            hijo.initial_probability_of_chromatin_condensation = padre2.initial_probability_of_chromatin_condensation
        if randint(0, 1) > 0:
            hijo.viral_reach = padre1.viral_reach
        else:
            hijo.viral_reach = padre2.viral_reach
        return hijo
Пример #6
0
def main():
    tracer(False)
    bgcolor('black')

    dimensao_da_matriz = 20
    tam_celula = 20

    # Cria o labirinto
    lab = Labirinto(dimensao_da_matriz, tam_celula)
    lab.criar_labirinto()

    tam_agente = 20

    # 1o agente
    agente0 = Agente(0, tam_agente, "yellow")
    agente0.add_labirinto(lab)
    #pos_central = lab.criar_celula(coord_turt=(-20,20))
    #agente0._posicao = pos_central
    agente_percorreu_tudo = False
    while (not agente_percorreu_tudo):
        agente_percorreu_tudo = percorrer(agente0)
        update()
        sleep(0.4)

    #vizinhos = lab.obter_vizinhos(pos_central)
    #agente0._posicao = vizinhos[0]
    #percorrer(agente0)

    done()
Пример #7
0
    def __init__(self, debug):

        Gtk.Window.__init__(self, title="The World Of Wumpus")
        #self.set_size_request(600, 400)

        self.status = 0

        self.caverna = Caverna((3, 0), debug)

        self.agente = Agente(self.caverna.salas)

        self.caixa = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.add(self.caixa)

        self.caixaInferior = Gtk.Box()
        self.caixaInterna = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.gridCaverna = Gtk.Grid()
        self.gridAgente = Gtk.Grid()

        self.score = Gtk.Label()
        self.score.set_justify(Gtk.Justification.FILL)

        self.wrapper = Gtk.Fixed()
        self.wrapper.put(self.gridCaverna, 0, 0)
        self.wrapper.put(self.caixaInterna, 430, 140)
        self.wrapper.put(self.gridAgente, 570, 0)

        self.caixaInterna.pack_start(self.score, True, True, 0)

        # self.caixaInterna.pack_start(self.gridCaverna, True, True, 0)
        # self.caixaInterna.pack_start(Gtk.Label(' '), True, True, 0)
        # self.caixaInterna.pack_start(self.score, True, True, 0)
        # self.caixaInterna.pack_start(Gtk.Label(' '), True, True, 0)
        # self.caixaInterna.pack_start(self.wrapperAgente, True, True, 0)

        # self.wrapper.add(self.caixaInterna)

        self.caixa.add(self.wrapper)
        self.caixa.add(self.caixaInferior)

        self.botaoRodar = Gtk.Button("Rodar")
        self.botaoRodar.connect("clicked", self.aoClick)
        self.botaoGerar = Gtk.Button("Gerar nova caverna")
        self.botaoGerar.connect("clicked", self.aoClick)

        self.caixaInferior.pack_start(self.botaoGerar, True, True, 0)
        self.caixaInferior.pack_start(self.botaoRodar, True, True, 0)

        self.imagensCaverna = [[Gtk.Image() for i in range(4)]
                               for j in range(4)]
        self.imagensAgente = [[Gtk.Image() for i in range(4)]
                              for j in range(4)]

        self.gerarMapas(False)
Пример #8
0
 def __init__(self, mapa) -> None:
     self.mapa = mapa
     self.agente = Agente([0, 0], self.mapa.getMapa()[0][0])
     print(self.mapa.getHeuristica())
     self.createMap()
     self.Run()
     pass
Пример #9
0
    def cruce2(self, agente1, agente2):
        hijo = Agente()
        if randint(0, 1) > 0:
            padre1 = agente1
            padre2 = agente2
        else:
            padre1 = agente2
            padre2 = agente1

        hijo.infection_rate = padre1.infection_rate
        hijo.initial_probability_of_death = padre1.initial_probability_of_death
        hijo.initial_probability_of_chromatin_condensation = padre2.initial_probability_of_chromatin_condensation
        hijo.mNeptune_effectiveness = padre2.mNeptune_effectiveness
        hijo.viral_reach = padre1.viral_reach
        hijo.initial_infected_cell_percentage = padre1.initial_infected_cell_percentage
        hijo.cell_density = padre2.cell_density
        return hijo
Пример #10
0
    def nueva_generación(self, generacion):
        agente1 = Agente()
        agente1.error = 1000000000000
        agente2 = Agente()
        agente2.error = 1000000000000
        indice_superior = len(self.poblacion) - 1
        limite = len(self.poblacion) / 2
        for contador in range(int(limite)):
            if self.poblacion[contador].error < agente1.error:
                agente1 = self.poblacion[contador]
            if self.poblacion[indice_superior].error < agente2.error:
                agente2 = self.poblacion[indice_superior]
            indice_superior -= 1
        if agente1.error < agente2.error:
            self.save_results(agente1, generacion)
        else:
            self.save_results(agente2, generacion)

        for contador in range(len(self.poblacion)):
            self.poblacion.pop()
        for contador in range(self.numero_procesos):
            cruce = randint(0, 2)
            if cruce == 0:
                self.poblacion.append(self.cruce1(agente1, agente2))
            else:
                if cruce == 1:
                    self.poblacion.append(self.cruce2(agente1, agente2))
                else:
                    self.poblacion.append(self.cruce3(agente1, agente2))
Пример #11
0
    def __init__(self):
        self.generaciones = 1000000000
        self.numero_procesos = 20
        self.poblacion = []
        self.comandos = []
        self.procesos = []
        self.set_commands()
        self.mode = "set"
        for contador in range(self.numero_procesos):
            self.poblacion.append(Agente())
        self.mutar_poblacion()
        for iteraciones in range(self.generaciones):
            print("**********************Generación número: " +
                  str(iteraciones) + " ******************************")
            for contador in range(self.numero_procesos):
                p = Process(target=self.run,
                            args=(contador, ),
                            name=str(contador))
                self.procesos.append(p)
                p.start()
            for p in self.procesos:
                p.join()
            for contador in range(self.numero_procesos):
                name = str(contador) + ".txt"
                file = open(name, "r+")
                numeros = file.read().split()
                self.poblacion[contador].dead_cells = float(numeros[1])
                self.poblacion[contador].live_condensed = float(numeros[2])
                self.poblacion[contador].live = float(numeros[0])
                file.close()
                os.remove(name)
                self.poblacion[contador].calculate_error()
            self.nueva_generación(iteraciones)
            self.mutar_poblacion()
            for contador in range(self.numero_procesos):
                self.procesos.pop()

        print("Todos los procesos terminaron")
Пример #12
0
# -*- coding: utf-8 -*-
"""
Autor: Oscar Chacón
Titulo: Juego de Nombres
Fecha: 22/08/2019
"""
from agente import Agente
import random

n = 14
m = 7
max_t = 1000
agentes = []

for x in range(n):
    agentes.append(Agente(m))

for t in range(max_t):
    bandera = True
    selectedAgentA = random.randint(0, n - 1)
    selectedAgentB = random.randint(0, n - 1)
    selectedObject = random.randint(0, m - 1)
    while selectedAgentA == selectedAgentB:
        selectedAgentB = random.randint(0, n - 1)

    agentes[selectedAgentA].enunciar(selectedObject, agentes[selectedAgentB])

    palabrasAContar = [[] for i in range(m)]

    for agente in agentes:
        for o in range(m):
Пример #13
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from labirinto import Labirinto
from agente import Agente

# Listagem-base

dimensao_da_matriz = 20
tam_celula = 20

# Cria o labirinto
lab = Labirinto(dimensao_da_matriz, tam_celula)
#lab.criar_labirinto()

# Cria o agente
tam_agente = 20
agente = Agente(0, tam_agente, "yellow")
agente.add_labirinto(lab)

print(agente._waze)
agente.add_percurso()
print(agente._waze)

agente.add_percurso()
print(agente._waze)

agente.add_percurso()
print(agente._waze)
Пример #14
0
class JanelaPrincipal(Gtk.Window):
    def __init__(self, debug):

        Gtk.Window.__init__(self, title="The World Of Wumpus")
        #self.set_size_request(600, 400)

        self.status = 0

        self.caverna = Caverna((3, 0), debug)

        self.agente = Agente(self.caverna.salas)

        self.caixa = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.add(self.caixa)

        self.caixaInferior = Gtk.Box()
        self.caixaInterna = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

        self.gridCaverna = Gtk.Grid()
        self.gridAgente = Gtk.Grid()

        self.score = Gtk.Label()
        self.score.set_justify(Gtk.Justification.FILL)

        self.wrapper = Gtk.Fixed()
        self.wrapper.put(self.gridCaverna, 0, 0)
        self.wrapper.put(self.caixaInterna, 430, 140)
        self.wrapper.put(self.gridAgente, 570, 0)

        self.caixaInterna.pack_start(self.score, True, True, 0)

        # self.caixaInterna.pack_start(self.gridCaverna, True, True, 0)
        # self.caixaInterna.pack_start(Gtk.Label(' '), True, True, 0)
        # self.caixaInterna.pack_start(self.score, True, True, 0)
        # self.caixaInterna.pack_start(Gtk.Label(' '), True, True, 0)
        # self.caixaInterna.pack_start(self.wrapperAgente, True, True, 0)

        # self.wrapper.add(self.caixaInterna)

        self.caixa.add(self.wrapper)
        self.caixa.add(self.caixaInferior)

        self.botaoRodar = Gtk.Button("Rodar")
        self.botaoRodar.connect("clicked", self.aoClick)
        self.botaoGerar = Gtk.Button("Gerar nova caverna")
        self.botaoGerar.connect("clicked", self.aoClick)

        self.caixaInferior.pack_start(self.botaoGerar, True, True, 0)
        self.caixaInferior.pack_start(self.botaoRodar, True, True, 0)

        self.imagensCaverna = [[Gtk.Image() for i in range(4)]
                               for j in range(4)]
        self.imagensAgente = [[Gtk.Image() for i in range(4)]
                              for j in range(4)]

        self.gerarMapas(False)

    def gerarMapas(self, override):

        self.score.set_markup('<big><b>Score:</b>\n' +
                              str(self.agente.desempenho) + '</big>\n' +
                              self.agente.status)

        for i in range(4):
            for j in range(4):

                imagem = 'Imagens/'

                if 'agente' in self.caverna.salas[i][j]:
                    imagem += 'agente'

                    if 'ouro' in self.caverna.salas[i][j]:
                        imagem += 'ouro'
                    if 'fedor' in self.caverna.salas[i][j]:
                        imagem += 'fedor'
                    if 'brisa' in self.caverna.salas[i][j]:
                        imagem += 'brisa'

                    self.imagensCaverna[i][j].set_from_file(imagem + ".png")

                else:

                    if 'wumpus' in self.caverna.salas[i][j]:

                        imagem += 'wumpus'

                        if 'ouro' in self.caverna.salas[i][j]:
                            imagem += 'ouro'
                        if 'brisa' in self.caverna.salas[i][j]:
                            imagem += 'brisa'

                    elif 'wumpusmorto' in self.caverna.salas[i][j]:

                        imagem += 'wumpusmorto'

                    elif 'ouro' in self.caverna.salas[i][j]:

                        imagem += 'ouro'

                        if 'fedor' in self.caverna.salas[i][j]:
                            imagem += 'fedor'
                        if 'brisa' in self.caverna.salas[i][j]:
                            imagem += 'brisa'

                    elif 'poço' in self.caverna.salas[i][j]:

                        imagem += 'poço'

                        if 'fedor' in self.caverna.salas[i][j]:
                            imagem += 'fedor'

                    else:

                        if 'fedor' in self.caverna.salas[i][j]:
                            imagem += 'fedor'

                        if 'brisa' in self.caverna.salas[i][j]:
                            imagem += 'brisa'

                    if imagem == 'Imagens/':
                        imagem += 'vazio'

                    self.imagensCaverna[i][j].set_from_file(imagem + ".png")

                if not override:
                    self.gridCaverna.attach(self.imagensCaverna[i][j], j, i, 1,
                                            1)

        for i in range(4):
            for j in range(4):

                imagem = 'Imagens/'

                if 'agente' in self.agente.salasConhecidas[i][j]:
                    imagem += 'agente'

                    if 'ouro' in self.agente.salasConhecidas[i][j]:
                        imagem += 'ouro'
                    if 'fedor' in self.agente.salasConhecidas[i][j]:
                        imagem += 'fedor'
                    if 'brisa' in self.agente.salasConhecidas[i][j]:
                        imagem += 'brisa'

                else:

                    if 'wumpus' in self.agente.salasConhecidas[i][j]:

                        imagem += 'wumpus'

                        if 'ouro' in self.agente.salasConhecidas[i][j]:
                            imagem += 'ouro'
                        if 'brisa' in self.agente.salasConhecidas[i][j]:
                            imagem += 'brisa'

                    elif 'wumpusmorto' in self.agente.salasConhecidas[i][j]:

                        imagem += 'wumpusmorto'

                    elif 'wumpus?' in self.agente.salasConhecidas[i][
                            j] and '~w' not in self.agente.salasConhecidas[i][
                                j]:

                        imagem += 'wumpus?'

                        if 'poço?' in self.agente.salasConhecidas[i][
                                j] and '~p' not in self.agente.salasConhecidas[
                                    i][j]:

                            imagem += 'poço?'

                    elif 'ouro' in self.agente.salasConhecidas[i][j]:

                        imagem += 'ouro'

                        if 'fedor' in self.agente.salasConhecidas[i][j]:
                            imagem += 'fedor'
                        if 'brisa' in self.agente.salasConhecidas[i][j]:
                            imagem += 'brisa'

                    elif 'poço' in self.agente.salasConhecidas[i][j]:

                        imagem += 'poço'

                        if 'fedor' in self.agente.salasConhecidas[i][j]:
                            imagem += 'fedor'

                    elif 'poço?' in self.agente.salasConhecidas[i][
                            j] and '~p' not in self.agente.salasConhecidas[i][
                                j]:

                        imagem += 'poço?'

                    else:

                        if 'fedor' in self.agente.salasConhecidas[i][j]:
                            imagem += 'fedor'

                        if 'brisa' in self.agente.salasConhecidas[i][j]:
                            imagem += 'brisa'

                    if imagem == 'Imagens/':

                        if 'visitada' in self.agente.salasConhecidas[i][j]:
                            imagem += 'vazio'

                        else:
                            imagem += 'vazio?'

                self.imagensAgente[i][j].set_from_file(imagem + ".png")

                if not override:
                    self.gridAgente.attach(self.imagensAgente[i][j], j, i, 1,
                                           1)

    def aoClick(self, widget):

        if widget.get_label() == 'Rodar':

            if self.status == 0:  #Diz se o agente morreu ou encontrou o ouro

                self.status = self.agente.acao()
                self.caverna.atualizaAgente(self.agente.posicao)

        else:
            self.caverna.geraCaverna((3, 0), '0')
            self.agente.resetaAgente(self.caverna.salas)
            self.status = 0

        #self.agente.imprimeCaverna()
        self.gerarMapas(True)
        self.show_all()

    def main(self):

        thread.start_new_thread(soundFX,
                                ('Audio/March of the Spoons.mp3', True))

        Gtk.main()
Пример #15
0
"""

from agente import Agente
from os import system

sel = 1

while (sel != '0'):
    system('cls')

    print("\n--------------------------------------------------------------")
    print("Sistema MED - supporto diagnostico e suggerimento terapeutico")
    print("--------------------------------------------------------------")

    casistica = {
        "1": ("Casistica di Cardiologia", "cardiologia.json",
              "osservazioni_card.json"),
        "2": ("Casistica Covid", "covid.json", "osservazioni_covid.json")
    }

    print("\n" + str(casistica))

    sel = input("\nSelezionare la casistica (0 per uscire) -> ")

    if (sel != '0'):
        file_base = casistica[sel][1]
        file_osservazioni = casistica[sel][2]
        ag = Agente(file_base, file_osservazioni)
        ag.infer()
Пример #16
0
from agente import Agente
from carregador import Carregador
from deposito import Deposito

deposito = Deposito()
carregador = Carregador()
agente = Agente(deposito, carregador)
agente.executar()
1