def test_alterar_codigo(self): maquina2 = Maquina(2,'PC2') (maquina2._verificar_identidade,2) |should| throw(ValueError) maquina2.codigo = 0 maquina2.codigo |should| equal_to(0) (maquina2._verificar_identidade,2) |should_not| throw(ValueError) maquina2.destruir_maquina()
def main(): m1 = Maquina("La pava", "pavo") print(m1) m2 = MaquinaMecanica("La pava", "pavo") print(m2) m3 = MaquinaElectrica("La pava", "pavo") print(m3)
def __init__(self, master, orden_rotores, iniciales_rotores, plugboard_conexiones): self.win = master self.win.title("ENIGMA MACHINE") self.win.configure(bg=bgColor) self.machine = Maquina(orden_rotores, iniciales_rotores, plugboard_conexiones) self.machine_enabled = False self.render_lamps() self.render_buttons() self.button_destroy_machine = Button(self.win, bg='white', borderwidth=0, text="Terminar maquina", command=self.terminar_maquina) self.button_destroy_machine.pack() self.win.mainloop()
def main(argv=sys.argv): lan1 = Lan() lan1.start() lan2 = Lan() lan2.start() fw = Firewall() fw.start() rot = Roteador() rot.start() sw = ServidorWeb() sw.start() sa = ServidorAplicacao() sa.start() bd = ServidorBancoDados() bd.start() maquina = Maquina(rot) rot[Fluxo()] = lan1 lan1[Fluxo()] = sw sw[Fluxo(0.95, 'M3')] = sa sa[Fluxo(0.2, 'M4')] = sw sa[Fluxo(0.8, 'M6')] = bd bd[Fluxo(1.0, 'M7')] = sa sa[Fluxo(1.0, 'M8')] = sw cliente = Cliente() cliente.register(maquina) pacotes = 0 if len(argv) > 1: pacotes = int(argv[1]) cliente.iniciar(pacotes, delay=DELAY)
def abrir_partida(partida, window): """Usa los componentes de la partida guardada.""" try: tablero = partida["tablero"] for i in tablero.keys(): window[i].Update(tablero[i]) un_jugador = list(partida["puntos_jugador"].keys())[0] bolsa = Bolsa(un_ABC=partida["letras_bolsa"]) guido = Maquina(unas_letras=partida["letras_M"], un_nivel=partida["dificultad"], filas=partida["filas"], columnas=partida["columnas"]) jugador = Jugador(un_jugador, partida["letras_J"], partida["dificultad"], partida["filas"], partida["columnas"]) juez = Juez(partida["dificultad"], partida["tabla_puntajes"], config["tablero"], un_jugador, partida["turno"]) letras_j = partida["letras_J"] for clave, valor in letras_j.items(): window[clave].Update(valor) return True, guido, jugador, juez except FileNotFoundError or KeyError: sg.Popup("Ha ocurrido un error abriendo la partida.") return False, [], [], []
maq._adicionaTransicao(0, Transicao('_', '_', 0, 'E', 1)) maq._adicionaTransicao(0, Transicao('a', 'a', 0, 'D', 0)) maq._adicionaTransicao(0, Transicao('b', 'b', 0, 'D', 0)) for x in range(0,11): maq._adicionaTransicao(x, Transicao('a', 'a', x, 'E', x+1)) maq._adicionaTransicao(x, Transicao('b', 'b', x, 'E', x+1)) maq._definePalavra(Palavra("aaaaaaaaaa_")) maq.executaLeitura() """ #A quantidade de A deve ser a mesma de B maq = Maquina() #q0 maq._adicionaEstado(0, True) #q1 maq._adicionaEstado(1, True) #q2 maq._adicionaEstado(2, True) #q3 maq._adicionaEstado(3, True) #q4 maq._adicionaEstado(4, False) #Transicoes q3 maq._adicionaTransicao('a','A',3,2,'E') maq._adicionaTransicao('b','b',3,3,'D')
def destruir_maquina(self): if len(self._impressoras) > 0: raise ValueError Maquina.destruir(self)
def test_alterar_descricao(self): maquina2 = Maquina(2,'PC2') maquina2.descricao = "Lenovo" maquina2.descricao |should| equal_to('Lenovo') maquina2.destruir_maquina()
def test_obter_codigo(self): maquina = Maquina(1,'PC') maquina.codigo |should| equal_to(1) maquina.destruir_maquina()
#!/usr/bin/env python import cgi import cgitb import socket import time from maquina import Maquina from header import Header import binascii cgitb.enable() form = cgi.FieldStorage() maq1 = Maquina(1) maq1.ps = form.getvalue('maq1_ps') maq1.ps_args = form.getvalue('maq1-ps') if form.getvalue('maq1-ps') else '' maq1.df = form.getvalue('maq1_df') maq1.df_args = form.getvalue('maq1-df') if form.getvalue('maq1-ds') else '' maq1.finger = form.getvalue('maq1_finger') maq1.finger_args = form.getvalue('maq1-finger') if form.getvalue( 'maq1-finger') else '' maq1.uptime = form.getvalue('maq1_uptime') maq1.uptime_args = form.getvalue('maq1-uptime') if form.getvalue( 'maq1-uptime') else '' maq2 = Maquina(2) maq2.ps = form.getvalue('maq2_ps') maq2.ps_args = form.getvalue('maq2-ps') if form.getvalue('maq2-ps') else '' maq2.df = form.getvalue('maq2_df')
def main(): m1 = Maquina("la pava", "pavo") print(m1)
def setUp(self): self.maquina = Maquina()
def destruir_maquina(self): if self.host != None: self.host.remover_impressora(self) self.remover_todas_fila_impressao() Impressora.destruir(self) Maquina.destruir(self)
def destruir_maquina(self): self._verificar_disponibilidade() Maquina.destruir(self)
class Gui: def __init__(self, master, orden_rotores, iniciales_rotores, plugboard_conexiones): self.win = master self.win.title("ENIGMA MACHINE") self.win.configure(bg=bgColor) self.machine = Maquina(orden_rotores, iniciales_rotores, plugboard_conexiones) self.machine_enabled = False self.render_lamps() self.render_buttons() self.button_destroy_machine = Button(self.win, bg='white', borderwidth=0, text="Terminar maquina", command=self.terminar_maquina) self.button_destroy_machine.pack() self.win.mainloop() def terminar_maquina(self): self.win.destroy() def render_lamps(self): for keyboard in keyboard_letters: self.f = Frame(self.win) for button in keyboard: render = ImageTk.PhotoImage( Image.open(pathLamps + button + ".png").resize( (50, 50), Image.ANTIALIAS)) labels.append(Label(self.f, image=render, bg='#2f324a')) labels[-1].img = render labels[-1].pack(side=LEFT) self.f.pack(side=TOP) def render_buttons(self): for row, keyboard in enumerate(keyboard_letters): self.f = Frame(self.win) for col, button in enumerate(keyboard): #command = lambda x=button: conversion(x) load = Image.open(pathKeyboard + button + ".png") render = ImageTk.PhotoImage( load.resize((30, 30), Image.ANTIALIAS)) img = Button(self.f, image=render, bg='#2f324a', activebackground="#494d70", borderwidth=0) img.image = render img.bind("<ButtonPress>", lambda event, row=row, col=col: self.turnOnLamp( event, row, col)) img.bind("<ButtonRelease>", lambda event, row=row, col=col: self.turnOffLamp( event, row, col)) img.pack(side=LEFT) self.f.pack(side=TOP) def turnOnLamp(self, event, row, col): global letter letter = self.machine.cifrar(keyboard_letters[row][col].upper()) loadQ = Image.open(pathLamps + letter.lower() + "_h.png") renderHQ = ImageTk.PhotoImage(loadQ.resize((50, 50), Image.ANTIALIAS)) indexLetter = dictNumLet.get(letter.lower()) labels[indexLetter].configure(image=renderHQ) labels[indexLetter].image = renderHQ def turnOffLamp(self, event, row, col): loadQ = Image.open(pathLamps + letter.lower() + ".png") renderHQ = ImageTk.PhotoImage(loadQ.resize((50, 50), Image.ANTIALIAS)) indexLetter = dictNumLet.get(letter.lower()) labels[indexLetter].configure(image=renderHQ) labels[indexLetter].image = renderHQ
arq = open(arquivo_descricao) lines = arq.readlines() arq.close() dados = {} dados['alfabeto_entrada'] = [x.strip() for x in lines[0].split(' ')] dados['simbolo_epsilon'] = lines[1].strip() dados['estados'] = [x.strip() for x in lines[2].split(' ')] dados['estado'] = lines[3].strip() dados['estados_finais'] = [x.strip() for x in lines[4].split(' ')] dados['transicoes'] = [] for line in lines[5:]: transition = {} tmp = line.split(' ') transition['estadoAtual'] = tmp[0].strip() transition['simboloCorrente'] = tmp[1].strip() transition['estadoDestino'] = tmp[2].strip() dados['transicoes'].append(transition) return dados if __name__ == "__main__": dados = readlines(sys.argv[1]) machine = Maquina( dados, sys.argv[2] ) ## cria uma Maquina passando os dados e a entrada fornecida machine.run() ## começa executar
from maquina import Maquina import sys import json maq = Maquina() file_name = sys.argv[1] text = open(file_name) content = text.read() jsonmaquina = json.loads(content) estadoFinal = None estadoIndex = 0 for estado in jsonmaquina: if(jsonmaquina[estadoIndex][0][0] == 'false'): estadoFinal = estadoIndex maq._adicionaEstado(estadoIndex, False) else: maq._adicionaEstado(estadoIndex, True) estadoIndex+=1 estadoIndex = 0 for estado in jsonmaquina: if estadoIndex != estadoFinal: for transicao in jsonmaquina[estadoIndex]: maq._adicionaTransicao(transicao[0],transicao[2],estadoIndex,int(transicao[1]),transicao[3]) estadoIndex+=1 maq._definePalavra(sys.argv[2]) print("palavra valida") if maq._executaLeitura() else print("palavra invalida")
print('ESTADO = ' + estado) print('DIREÇÃO = ' + direcao) print('VALOR P/ ESCREVER = ' + valor_escrita) print() #IMPRIMINDO FITA fita_title = line + '>> FITA <<' + line fita[pos_atual] = '< ' + fita[pos_atual] + ' >' print(fita_title) print(fita) #ajusta a posição atual de acordo com o comando de direção retornado pela tabela de processamento def ajustar_pos_atual(direcao, pos_atual): if (direcao == 'ESQUERDA'): return pos_atual - 1 elif (direcao == 'DIREITA'): return pos_atual + 1 #criando uma máquina mk_1 = Maquina() #fita a ser processada entrada_user = '******' fita = frase_to_fita(entrada_user) #processamento da fita system('clear') processar_fita(fita, mk_1)
def jugar_partida(config, partida={}): """Juega la partida tanto la nueva partica como una cargada.""" def iniciar(nombre): """Elige aleatoriamente para comenzar entre el jugador y la maquina.""" x = random.randint(0, 1) if x == 0: sg.popup_ok("Comienza el jugador: " + nombre) return True, nombre else: sg.popup_ok("Comienza a jugar la maquina") return True, "maquina" def abrir_partida(partida, window): """Usa los componentes de la partida guardada.""" try: tablero = partida["tablero"] for i in tablero.keys(): window[i].Update(tablero[i]) un_jugador = list(partida["puntos_jugador"].keys())[0] bolsa = Bolsa(un_ABC=partida["letras_bolsa"]) guido = Maquina(unas_letras=partida["letras_M"], un_nivel=partida["dificultad"], filas=partida["filas"], columnas=partida["columnas"]) jugador = Jugador(un_jugador, partida["letras_J"], partida["dificultad"], partida["filas"], partida["columnas"]) juez = Juez(partida["dificultad"], partida["tabla_puntajes"], config["tablero"], un_jugador, partida["turno"]) letras_j = partida["letras_J"] for clave, valor in letras_j.items(): window[clave].Update(valor) return True, guido, jugador, juez except FileNotFoundError or KeyError: sg.Popup("Ha ocurrido un error abriendo la partida.") return False, [], [], [] def guardar_partida(): try: with open('partida.json', 'w') as file: partida = {} tablero = config["tablero"] multiplicador = config["tablero"] coordenadas = list(map(str, multiplicador.keys())) valores = multiplicador.values() multiplicador = dict(zip(coordenadas, valores)) for i in list(tablero.keys()): tablero[i] = window[i].GetText() coordenadas = list(map(str, tablero.keys())) valores = tablero.values() tablero = dict(zip(coordenadas, valores)) partida["tablero"] = tablero partida["turno"] = juez.turno partida["letras_M"] = guido.letras partida["letras_J"] = jugador.letras partida["tabla_puntajes"] = juez.tabla_puntaje partida["multiplicadores"] = multiplicador partida["puntos_jugador"] = juez.jugadores partida["letras_bolsa"] = bolsa.ABC partida["dificultad"] = config["dificultad"] partida["filas"] = config["Filas"] partida["columnas"] = config["Columnas"] partida["tiempo"] = config["tiempo"] json.dump(partida, file) return True except FileNotFoundError or KeyError: sg.Popup("Ha ocurrido un error.") return False w, h = sg.Window.get_screen_size() window = sg.Window( "SCRABBLE", crear.crear_partida(config), finalize=True, size=(w, h), resizable=True, element_justification="c", background_color="#143430", ) window.Maximize() bolsa = Bolsa(un_ABC=config["cant_letras"]) letras_jugador = bolsa.sacar_letras(7) letras_maquina = bolsa.sacar_letras(7) # window.Maximize() claves = [] for j in range(7): clave = "letra" + str(j) window[clave].Update(letras_jugador[j]) claves.append(clave) mis_letras = dict(zip(claves, letras_jugador)) comenzo = False final = False abri = False while not final: if partida: abri, guido, jugador, juez = abrir_partida(partida, window) comenzo = abri event, values = window.Read() if event == None or event == "fin-partida": valor = sg.popup_yes_no("¿Desea guardar la partida?") if valor == "Yes": if comenzo: guardado = guardar_partida() if guardado: sg.Popup( "La partida se ha guardado exitosamente. Saliendo del juego" ) break else: sg.Popup("No se ha podido guardar la partida.") else: sg.Popup("El juego aun no ha comenzado.") final = True break elif event == "Referencias": window2 = sg.Window( "Referencias", crear.crear_lyt(event), finalize=True, resizable=True, element_justification="c", background_color="#143430", ) event, values = window2.Read() while not (event == None or event == "cerrar_referencias"): None window2.close() elif event == "guardar": if comenzo: guardado = guardar_partida() if guardado: sg.Popup( "La partida se ha guardado exitosamente. Saliendo del juego" ) break final = True else: sg.Popup("No se ha podido guardar la partida.") else: sg.Popup("El juego aun no ha comenzado.") elif event == "iniciar" and not comenzo: nombre = sg.popup_get_text("Ingrese su nombre: ") window["nombre_player"].update(nombre + ": ") comenzo, primero = iniciar(nombre) guido = Maquina(unas_letras=letras_maquina, un_nivel=config["dificultad"], filas=config["Filas"], columnas=config["Columnas"]) jugador = Jugador(nombre, mis_letras, config["dificultad"], config["Filas"], config["Columnas"]) juez = Juez(config["dificultad"], config['valores_letras'], config["tablero"], nombre, primero) elif not comenzo: sg.popup_ok("Para comenzar oprima el boton iniciar") if comenzo and not final: if abri: sg.Popup("Ahora es el turno de " + str(juez.turno)) nombre = jugador.nombre if (juez.turno == nombre): jugador.jugar(window, juez, bolsa) agregue = jugador._agregar_letras(window, bolsa) if not agregue: sg.Popup("No se pudo agregar letras.") sg.Popup("Termino la partida, porque no hay mas letras.") final = True else: window["puntaje_player"].update(juez.jugadores[nombre]) elif (juez.turno == "maquina"): jugue, motivo = guido._jugar(window, juez, config) if not jugue: if motivo == "no hay espacios": final = True sg.Popup( "Termino la partida por la maquina no encontro espacio." ) elif motivo == "no hay palabras validas": juez.turno = nombre sg.Popup("La maquina no pudo formar palabras") else: guido.agregar_letras( bolsa.sacar_letras(7 - len(guido.letras))) juez.turno = nombre window["puntaje_maquina"].update(juez.jugadores["maquina"]) sg.Popup("Es el turno de: " + str(nombre)) if comenzo and final: podio = juez._determinar_ganador() if 0 in podio.keys(): sg.Popup("Hubo un empate con: " + str(podio[0][0][1]) + " puntos.") else: sg.Popup("El ganador es: " + str(podio[1][0]) + " con " + str(podio[1][1]) + " puntos.") with open('mejores.json', 'r') as file: top = json.load(file) with open('mejores.json', 'w') as file: top = dict(top) nuevo_top = dict() top["nuevo"] = [ jugador.nombre, juez.jugadores[nombre], juez.nivel ] mejores = list( sorted(top.values(), key=lambda x: x[1], reverse=True)) for i in range(len(mejores)): nuevo_top[i + 1] = mejores[i] if i == 9: break json.dump(nuevo_top, file) window.Close()
class TestMaquinaDeRefri(unittest2.TestCase): def setUp(self): self.maquina = Maquina() def test_5_centavos_e_pega_o_dinheiro_de_volta(self): moedas = [0.05] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.cancela(), moedas) def test_5_e_25_centavos_e_pega_o_dinheiro_de_volta(self): moedas = [0.05, 0.25] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.cancela(), moedas) def test_5_e_25_e_10_centavos_e_1_real_e_pega_o_dinheiro_de_volta(self): moedas = [0.05, 0.10, 0.25, 1.00] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.cancela(), moedas) def test_nao_consegue_comprar_refri_1_com_10_centavos(self): moedas = [0.10] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.comprar_refri_1(), moedas) def test_consegue_comprar_refri_1_sem_troco(self): moedas = [0.25, 0.25, 0.10, 0.05] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.comprar_refri_1(), REFRI_1) def test_nao_consegue_comprar_refri_1_com_10_e_10_centavos(self): moedas = [0.10, 0.10] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.comprar_refri_1(), moedas) def test_nao_consegue_comprar_refri_2_com_10_centavos(self): moedas = [0.10] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.comprar_refri_2(), moedas) def test_nao_consegue_comprar_refri_2_com_10_e_10_centavos(self): moedas = [0.10, 0.10] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.comprar_refri_2(), moedas) def test_consegue_comprar_refri_2_com_1_real(self): moedas = [1.00] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.comprar_refri_2(), REFRI_2) def test_consegue_comprar_refri_2_com_2_de_1_real(self): moedas = [1.00, 1.00] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.comprar_refri_2(), [REFRI_2, 1.00]) def test_consegue_comprar_refri_2_com_2_de_1_real_e_1_de_10_centavos(self): moedas = [1.00, 1.00, 0.10] self.maquina.insere_moedas(moedas) self.assertEqual(self.maquina.comprar_refri_2(), [REFRI_2, 1.00, 0.10])
# -*- coding: UTF-8 -*- # Simulador de entrenamiento from learn import Learner, TipoAprendizaje from representacion import Representacion from maquinaAzar import MaquinaAzar from maquina import Maquina, EvaluacionTableroFinal maquinaEstatica = Maquina(Representacion(), EvaluacionTableroFinal.ESTATICA) maquinaAzar = MaquinaAzar(Representacion()) maquinaEstatica.weights = (26.187072695411917, -32.84680592423919, 13.213702407264911, 57.504267170163494, 21.574640421320762, -23.00357084783828, -1.193679277554918, 1.9201039975176828, 20.288830091323383, -16.56871602519243, -80.97633510212901) learner = Learner(maquinaEstatica,maquinaAzar,0.0001, TipoAprendizaje.SIN_APRENDIZAJE) maquinaEstatica.DebugOutput = True learner.DebugOutput = True learner.run(1)
spliteds = line.split(' ') transitions = { 'estado_atual': spliteds[0], 'simbolo_corrente': spliteds[1], 'pop_pilha': [sin for sin in spliteds[2] ], #lista com os caracteres no topo da pilha 'estado_destino': spliteds[3], 'push_pilha': [sin for sin in spliteds[4] ] # lista com os caracteres que serão colocados na pilha } dados['transicoes'].append(transitions) return dados if __name__ == "__main__": if len(sys.argv) < 3: ## verificacao de parametros print( "Chamada de execução:\n\t\t\t$ ./main.py config.txt \"entrada\"\n") exit(1) configuracoes = readlines(sys.argv[1]) ## leitura machine = Maquina(configuracoes, sys.argv[2].strip('"')) ## instanciacao de maquina exit(machine.run() ) ## executar metodo run que devolve o retorno do programa
def __main__(self): #aqui só para debbug modo = raw_input( "Selecione o modo que deseja executar a Máquina e Aperte Enter.\nA - Automático\nM - Manual (Passo a Passo)\n" ) #cria a Maquina e a Fita Inicial maquina = Maquina(sys.argv) while (True): #aqui de debbug tb maquina.print_fitas() if modo.capitalize() == "M".capitalize(): tst = raw_input("\nAperte Enter Para Prosseguir.") novasFitas = [] #correr as fitas ver se o estado das fitas algum deles é o final for fita in maquina.fitas: #verifica o ofim da máquina ou não if maquina.verifica_estadoFinal(fita): exit(0) #movimenta a maquina ret = maquina.transicao(fita) #caso haja novas fitas remover a fita de origem if type(ret) is list: novasFitas += ret if type(ret) is int: maquina.print_fitas() maquina.remove_fita(fita) if modo.capitalize() == "M".capitalize(): tst = raw_input("\nAperte Enter Para Prosseguir.") #se houverem novas fitas.. if (novasFitas != None): for newFita in novasFitas: maquina.adiciona_fita(newFita)
from maquina import Maquina import sys if len(sys.argv) == 2: maquina = Maquina(sys.argv[1]) print "Determinizando ..." maquina.gerar_automato() print "Determinizado com sucesso" else: print "Formato invalido!\nDigite dessa forma: python main.py <nome_arquivo_automato.json>"
def test_obter_descricao(self): maquina = Maquina(1,'PC') maquina.descricao |should| equal_to('PC') maquina.destruir_maquina()
from modulo1 import Ingeniero from maquina import Maquina e = Ingeniero(10, 'ingles', 'rock') print(e.calcular('autocad')) m = Maquina() salida = m.mover() valor = m.piezas if valor <= salida: print('es un valor mayor') else: print('es valor menor a 10')