Se percebemos a solução para o Problema 3.12 então estes também não oferecem grande dificuldade. Comecemos pelo ... primeiro.
01.
import
turtle
02.
03.
def
adn_tartaruga(tartaruga, adn):
04.
05.
for
car
in
adn:
06.
if
car
=
=
'f'
:
07.
tartaruga.fd(
50
)
08.
elif
car
=
=
't'
:
09.
tartaruga.bk(
50
)
10.
elif
car
=
=
'd'
:
11.
tartaruga.rt(
45
)
12.
else
:
13.
tartaruga.lt(
45
)
14.
15.
if
__name__
=
=
‘__main__’:
16.
tarta
=
turtle.Turtle()
17.
adn_1
=
‘ffttedtftedf’
18.
adn_tartaruga(tarta,adn_1)
19.
turtle.exitonclick()
O que é que a solução tem de especial? Muito pouco. Os valores do movimento e das rotações são fixos. Por outro lado, usamos o construtor do módulo
turtle para definir uma tartaruga concreta em vez de usar a tartaruga genérica. Finalmente, o ADN da tartaruga foi por nós definido “à mão” . A primeira variante, Problema 3.16, pede-nos que os valores do movimento e das rotações não sejam fixos mas possam variar dentro de valores razoáveis.
01.
import
random
02.
03.
def
adn_tartaruga_alea(tartaruga, adn):
04.
05.
for
car
in
adn:
06.
lado
=
random.randint(
20
,
100
)
07.
angulo
=
random.randint(
10
,
180
)
08.
if
car
=
=
'f'
:
09.
tartaruga.fd(lado)
10.
elif
car
=
=
't'
:
11.
tartaruga.bk(lado)
12.
elif
car
=
=
'd'
:
13.
tartaruga.rt(angulo)
14.
else
:
15.
tartaruga.lt(angulo)
Como se observa a adaptação às novas condições foi fácil. Finalmente, no problema 3.17, apenas nos é pedido que o ADN da tartaruga seja ele próprio gerado aleatoriamente. Isso foi o que aprendemos a fazer com a solução ao Problema 3.12.
01.
import
random
02.
03.
def
adn_tartaruga_total(tartaruga, passos):
04.
05.
06.
adn
=
''
07.
for
i
in
range(passos):
08.
adn
=
adn
+
random.choice(
'fted'
)
09.
adn_tartaruga_alea(tartaruga,adn)
10.
11.
12.
def
adn_tartaruga_alea(tartaruga, adn):
13.
14.
for
car
in
adn:
15.
lado
=
random.randint(
20
,
100
)
16.
angulo
=
random.randint(
10
,
180
)
17.
if
car
=
=
'f'
:
18.
tartaruga.fd(lado)
19.
elif
car
=
=
't'
:
20.
tartaruga.bk(lado)
21.
elif
car
=
=
'd'
:
22.
tartaruga.rt(angulo)
23.
else
:
24.
tartaruga.lt(angulo)
That's it!
Sem comentários:
Enviar um comentário