1
2
3
4
5
6
7
8
9 import pilas
10 from pilas.actores import Actor
11
12
14 """Representa una tortuga que se puede mover por la pantalla.
15
16 Este actor está profundamente inspirado por la tortuga de Logo, creada
17 por Seymour Papert en el año 1967.
18 """
19
20 - def __init__(self, x=0, y=0, dibuja=True):
44
51
53 """Da un giro hacia la derecha de la tortuga.
54
55 :param delta: Los grados que digará en ese sentido.
56 """
57 self.hacer_luego(pilas.comportamientos.Girar(abs(delta), self.velocidad))
58
60 """Realiza un giro hacia la izquierda.
61
62 :param delta: Los grados que digará en ese sentido.
63 """
64 self.hacer_luego(pilas.comportamientos.Girar(-abs(delta), self.velocidad))
65
72
74 """Realiza el trazado de una linea desde su posición actual hacia la anterior."""
75 self.pizarra.linea(self.anterior_x, self.anterior_y, self.x, self.y, self.color, grosor=4)
76
78 """Le indica a la tortuga si debe comenzar a dibujar con cada movimiento."""
79 self.lapiz_bajo = True
80
82 """Le indica a la tortuga que deje de dibujar con cada movimiento."""
83 self.lapiz_bajo = False
84
86 """Define el color de trazado cuando comienza a moverse."""
87 self.color = color
88
90 """dibuja un poligono de lados de los lados indicados.
91
92 :param lados: La cantidad de lados a dibujar.
93 :param escala: El tamaño del polígono a dibujar.
94 :param sentido: El sentido de dibujado, -1 indica hacia la izquierda y 1 hacia la derecha.
95 """
96
97 for i in range(lados):
98 rotacion = 360 / lados
99 self.avanzar(escala)
100 if sentido == 1:
101 self.giraderecha(rotacion)
102 else:
103 self.giraizquierda(rotacion)
104
106 """Dibuja un circulo.
107
108 :param radio: El radio que deberá tener el circulo.
109 :param sentido: El sentido de dibujado, -1 indica hacia la izquierda y 1 hacia la derecha.
110 """
111 for i in range(36):
112 self.avanzar(radio)
113 if sentido == 1:
114 self.giraderecha(10)
115 else:
116 self.giraizquierda(10)
117
118
119 av = avanzar
120 gd = giraderecha
121 gi = giraizquierda
122 bl = bajalapiz
123 sl = subelapiz
124 pc = pon_color
125
127 """Retorna el color que se utilizará para trazar."""
128 return self._color
129
131 """Define el color que se utilizará para trazar.
132
133 :param color: El color a utilizar.
134 """
135 self._color = color
136
137 color = property(get_color, set_color)
138
139 - def pintar(self, color=None):
140 """Pinta todo el fondo de un solo color.
141
142 :param color: El color que se utilizará para pintar el fondo.
143 """
144 self.pizarra.pintar(color)
145