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
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)
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
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()
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
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()
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 __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
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
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))
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")
# -*- 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):
#!/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)
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()
""" 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()
from agente import Agente from carregador import Carregador from deposito import Deposito deposito = Deposito() carregador = Carregador() agente = Agente(deposito, carregador) agente.executar() 1