Exemple #1
0
 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()
Exemple #2
0
def main():
    m1 = Maquina("La pava", "pavo")
    print(m1)
    m2 = MaquinaMecanica("La pava", "pavo")
    print(m2)
    m3 = MaquinaElectrica("La pava", "pavo")
    print(m3)
Exemple #3
0
    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()
Exemple #4
0
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, [], [], []
Exemple #6
0
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')
Exemple #7
0
 def destruir_maquina(self):
     if len(self._impressoras) > 0:
         raise ValueError
     Maquina.destruir(self)        
Exemple #8
0
 def test_alterar_descricao(self):
     maquina2 = Maquina(2,'PC2')
     maquina2.descricao = "Lenovo"
     maquina2.descricao |should| equal_to('Lenovo')
     maquina2.destruir_maquina()
Exemple #9
0
 def test_obter_codigo(self):
     maquina = Maquina(1,'PC')
     maquina.codigo |should| equal_to(1)
     maquina.destruir_maquina()
Exemple #10
0
#!/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')
Exemple #11
0
def main():
    m1 = Maquina("la pava", "pavo")
    print(m1)
Exemple #12
0
 def setUp(self):
     self.maquina = Maquina()
 def setUp(self):
     self.maquina = Maquina()
Exemple #14
0
 def destruir_maquina(self):
     if self.host != None:
         self.host.remover_impressora(self)
     self.remover_todas_fila_impressao()
     Impressora.destruir(self)
     Maquina.destruir(self) 
Exemple #15
0
 def destruir_maquina(self):
     self._verificar_disponibilidade()
     Maquina.destruir(self)
Exemple #16
0
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
Exemple #17
0
    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")
Exemple #19
0
    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])
Exemple #22
0
# -*- 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)
Exemple #23
0
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])
Exemple #24
0
        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
Exemple #25
0
    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>"

Exemple #27
0
 def test_obter_descricao(self):
     maquina = Maquina(1,'PC')
     maquina.descricao |should| equal_to('PC')
     maquina.destruir_maquina()
Exemple #28
0
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')