Vamos regressar ao módulo
turtle para ilustrar um aspecto pouco referido nas aulas. É possível a tartaruga marcar os pontos por onde passou graças ao comando
stamp(). Também se pode apagar as marcas com vários comandos, por exemplo, com
clearstamps(). O leitor é convidado a consultar o manual da linguagem para os detalhes. O exemplo que se segue mostra como podemos simular um passeio (mais ou menos) aleatório de um verme.
01.
import
turtle
02.
import
random
03.
04.
def
bug(length, step, life):
05.
06.
turtle.penup()
07.
theta
=
0
08.
dtheta
=
1
09.
turtle.color(random.choice([‘red
','
blue
','
yellow
','
green
','
black']))
10.
11.
for
j
in
range(length):
12.
turtle.forward(step)
13.
turtle.left(theta)
14.
theta
+
=
dtheta
15.
turtle.stamp()
16.
17.
for
i
in
range(life):
18.
turtle.clearstamps(
1
)
19.
if
abs(ycor()) >
400
:
20.
turtle.left(
30
)
21.
if
abs(xcor()) >
400
:
22.
turtle.right(
30
)
23.
if
theta >
10
or
theta <
-
10
:
24.
dtheta
=
-
dtheta
25.
turtle.forward(step)
26.
turtle.left(theta)
27.
theta
+
=
dtheta
28.
turtle.stamp()
29.
30.
if
__name__
=
=
'__main__'
:
31.
turtle.setworldcoordinates(
-
500
,
-
500
,
500
,
500
)
32.
bug(
10
,
15
,
500
)
33.
turtle.exitonclick()
O programa acima tem três parâmetros: o comprimento do verme (
length), a amplitude de cada movimento (
step), e o numero de movimentos (
life), Tem também três partes distintas. Na primeira, inicializamos o sistema, definimos o valor da variação da orientação que nos permite simular um movimento ondulatório (dtheta), e escolhemos aleatoriamente uma cor. Na segunda, o primeiro ciclo for, desenhamos o verme inicial. Na terceira, pomos o verme e movimentar-se. Notar-se-á que fechamos a zona onde se pode movimentar, um quadrado 400X400. Com o método
setworlcoordinates() limitamos o tamanho máximo do mundo. Execute o programa para ter uma ideia do que se passa. Procure alterar os vários parâmetros e ver as consequências. Altere o programa para que o passeio seja mais naturalmente aleatório.
Nota: Este exemplo foi adaptado do livro de Mark J. Johnson "
A concise introduction to programming ion Python".
Sem comentários:
Enviar um comentário