-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathComandos.py
79 lines (46 loc) · 1.76 KB
/
Comandos.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
LIMITE_DE_BYTE = 256
def _barras(elemento, i, cola, camino_1, camino_2 , mensaje):
'''Recibe un elemento, una posicion, una cola,
dos diccionarios y un mensaje.
dependiendo de las condiciones de la cola, modifica
la posiciom
'''
if elemento == "\\":
if cola.ver_primero() == 0 :
return camino_1[i] +1, mensaje
return i + 1, mensaje
return camino_2[i], mensaje
def _igual_admiracion(elemento, i, cola, camino_1, camino_2 , mensaje):
'''Recibe un elemento, una posicion, una cola,
dos diccionarios y un mensaje.
Dependiendo del elemento, modifica la cola
'''
if elemento == "!" :
cola.encolar(0)
elif elemento == "=":
dato = cola.desencolar()
cola.encolar(dato)
return i + 1, mensaje
def _guiones(elemento, i, cola, camino_1, camino_2 , mensaje):
'''Recibe un elemento, una posicion, una cola,
dos diccionarios y un mensaje.
deependiendo del elemento, modifica la cola
'''
dato = cola.ver_primero()
dato = dato -1 if elemento == "-" else dato +1
dato = dato % LIMITE_DE_BYTE
cola.cambiar_primero(dato)
return i + 1, mensaje
def _asterisco(elemento, i, cola, camino_1, camino_2 , mensaje):
'''Recibe un elemento, una posicion, una cola,
dos diccionarios y un mensaje.
Imprime en pantalla el primer elemento de la cola
paso usando la tabla ASCII
'''
dato = cola.desencolar()
letra = chr(dato)
mensaje += letra
print(letra, end = "")
cola.encolar(dato)
return i + 1, mensaje
DIC_FUNCIONES = {"\\" : _barras, "/" : _barras ,"!" : _igual_admiracion, "=" : _igual_admiracion, "-" : _guiones , "_" : _guiones, "*" : _asterisco}