01.
def
rect_cor(posx,posy,lado1,lado2,cor):
02.
# Atributos
03.
turtle.penup()
04.
turtle.goto(posx,posy)
05.
turtle.pendown()
06.
turtle.fillcolor(cor)
07.
turtle.begin_fill()
08.
for
i
in
range(
4
):
09.
if
i
%
2
=
=
0
:
10.
turtle.forward(lado1)
11.
else
:
12.
turtle.forward(lado2)
13.
turtle.left(
90
)
14.
turtle.end_fill()
15.
turtle.hideturtle()
A partir do momento em que temos esta possibilidade o resto é apenas calcular as posições e definir a cor de cada rectângulo ou quadrado. Numa solução simples, e mais não era pedido, podemos assumir que a cara fica sempre na mesma posição, no caso da nossa implementação no ponto (0,0). Notar que este ponto corresponde ao canto inferior esquerdo da cara.
01.
def
cara():
02.
# cabeça
03.
rect_cor(
0
,
0
,
120
,
120
,
'white'
)
04.
# olhos
05.
rect_cor(
30
,
85
,
20
,
20
,
'blue'
)
06.
rect_cor(
70
,
85
,
20
,
20
,
'blue'
)
07.
# nariz
08.
rect_cor(
55
,
30
,
10
,
35
,
'red'
)
09.
# boca
10.
rect_cor(
50
,
15
,
20
,
10
,
'yellow'
)
11.
# orelhas
12.
rect_cor(
-
10
,
60
,
10
,
30
,
'red'
)
13.
rect_cor(
120
,
60
,
10
,
30
,
'red'
)
1.
def
hamming_basico(cadeia_1, cadeia_2):
2.
"""Calcula a distância de Hamming de duas cadeias."""
3.
distancia
=
0
4.
for
i
in
range(tamanho_menor):
5.
if
cadeia_1[i] !
=
cadeia_2[i]:
6.
distancia
=
distancia
+
1
7.
return
distancia
01.
def
hamming(cadeia_1, cadeia_2):
02.
"""Calcula a distância de Hamming de duas cadeias."""
03.
tamanho_menor
=
min(len(cadeia_1), len(cadeia_2))
04.
distancia
=
0
05.
for
i
in
range(tamanho_menor):
06.
if
cadeia_1[i] !
=
cadeia_2[i]:
07.
distancia
=
distancia
+
1
08.
tamanho_maior
=
max(len(cadeia_1), len(cadeia_2))
09.
distancia
=
distancia
+
(tamanho_maior
-
tamanho_menor)
10.
return
distancia
01.
def
hamming_b(cadeia_1, cadeia_2):
02.
"""Calcula a distância de Hamming de duas cadeias."""
03.
tamanho_menor
=
min(len(cadeia_1), len(cadeia_2))
04.
distancia
=
0
05.
for
i
in
range(tamanho_menor):
06.
if
cadeia_1[i] !
=
cadeia_2[i]:
07.
distancia
=
distancia
+
1
08.
distancia
=
distancia
+
abs(len(cadeia_1)
-
len(cadeia_2))
09.
return
distancia
Sem comentários:
Enviar um comentário