Вы находитесь на странице: 1из 43

PYTHON - TURTLE&PYGAME

Edumvil
__________________________
__________________________
__________________________

Python: _________________________
__________________________
Mdulo Turtle __________________________
M.C. Gabriel Gernimo Castillo __________________________
Laboratorio Edumvil
Universidad Tecnolgica de la Mixteca __________________________
gcgero@gmail.com
__________________________
__________________________

Introduccin __________________________
__________________________
Turtle es una buena opcin para introducir a la programacin a __________________________
los nios, de una forma visual y sencilla.
_________________________
El mdulo Turtle proporciona primitivas grficas tanto __________________________
orientadas a objeto como orientada a procedimientos.
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
__________________________
Para trabajar con Turtle se debe tener instalada una versin de
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A

__________________________
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!

Python con soporte para Tk. 


(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
+1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!

__________________________
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'!
__________________________
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
__________________________
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
Laboratorio Edumvil. M.C. Gabriel Gernimo C.
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

46! ! "#$%&'(!)

www.it-ebooks.info

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Iniciando turtle __________________________


__________________________
__________________________
Para trabajar con turtle, iniciamos primero el shell de Python e importamos
el mdulo turtle _________________________
>> import turtle __________________________
Si nos marca un error, debemos entonces que tener que instalar tkinter.Ya __________________________
sea que lo hagamos por medio de apt-get install o en forma mas sencilla
abriendo el Ubuntu Software Center y colocamos python-tk en la __________________________
busqueda, aparecer Tkinter - Writing Tk Applications with
Python, lo seleccionamos e instalamos. __________________________
__________________________
__________________________

Iniciando turtle __________________________


__________________________
__________________________
Ya instalado, tambin podemos invocarlo desde un script colocando lo
siguiente en las primeras lneas de dicho script: primero invocamos a Python _________________________
y luego importamos el mdulo turtle
__________________________
#!/usr/bin/python
__________________________
import turtle
__________________________
Ya iniciado el mdulo, entonces invocamos al canvas para trabajar en el, esto
lo hacemos utilizando la funcin Pen, que automticamente crea el canvas. __________________________
>>> t = turtle.Pen() __________________________
__________________________

Comandos de movimiento __________________________


Mover y Dibujar __________________________

forward(distancia) o fd(distancia): Avanzar la tortuga hacia *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!


__________________________
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

adelante la distancia especificada en pixeles, en la direccin de la


_________________________
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!

cabeza de la tortuga.
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

__________________________
Moving the Turtle
K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!

Ejemplo:
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!

>>> turtle.forward (50) &?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C __________________________
>>> turtle.forward (-100)
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!

__________________________
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

backward(distancia) o bk(distancia) o back(distancia): Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'!

Mueve la tortuga hacia atrs una distancia, opuesta a la direccin de __________________________


&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
46! ! "#$%&'(!)
turtle!<*4?3'7!N*(!'9$<%3'>!

su cabeza. No cambia la direccin de la cabeza de la tortuga.


&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
www.it-ebooks.info
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)

__________________________
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

Ejemplo:
>>> turtle.backward(50) __________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.
46! ! "#$%&'(!)

www.it-ebooks.info

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



+*.(),")-.(*#/(012.3(41"$#"3(56(7%8.-/9(:(!"#$%(%/(#(/%&'-.(
71%&)(1&()*.(/;"..&<)*.(/0#--./)(.-.0.&)()*#)(;#&(=.(".7"./.&).39(
>2."?)*%&'(?1,(/..(1&(?1,"(;107,)."(01&%)1"(%/(0#3.(,7(14(7%8.-/@(
$*%;*(#".()%&?@(/A,#".(31)/9(B4(?1,(;1,-3(C110(%&(1&()*.(;#&2#/(
#&3()*.(-%&.(3"#$&(=?()*.(),")-.@(?1,($1,-3(=.(#=-.()1(/..()*#)(
)*.(#""1$(".7"./.&)%&'()*.(),")-.D/(7#)*(%/(E,/)(#(=,&;*(14(7%8.-/9(
PYTHON - TURTLE&PYGAME
+*#)D/(/%07-.(;107,)."('"#7*%;/9

!1)/L

Comandos de movimiento __________________________


__________________________
F1$($.D--().--()*.(),")-.()1(),"&(-.4)(G6(3.'"../($%)*()*.(41--1$H
Mover y Dibujar %&'(;100#&3I

>>> t.left(90) __________________________


B4(?1,(*#2.&D)(-.#"&.3(#=1,)(3.'"../(?.)@(*.".D/(*1$()1()*%&J(
right (ngulo) o rt (ngulo): Gira la tortuga hacia la
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!

#=1,)()*.09(B0#'%&.()*#)(?1,D".(/)#&3%&'(%&()*.(;.&)."(14(#(;%";-.9
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
_________________________
derecha un ngulo de unidades. Las unidades estn  
+*.(3%".;)%1&(?1,D".(4#;%&'(%/(6(3.'"../9
+1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!

__________________________
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!

por default en grados, pero pueden ser cambiadas por 



B4(?1,(*1-3(1,)(?1,"(-.4)(#"0@()*#)D/(G6(3.'"../(-.4)9
+1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

 Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'! B4(?1,(*1-3(1,)(?1,"("%'*)(#"0@()*#)D/(G6(3.'"../("%'*)9
medio de las funciones degrees() y radians(). El &?(&3'!I6!?0/1:!;?15&/*10!

__________________________
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
K1,(;#&(/..()*%/(G6H3.'"..(),"&()1()*.(-.4)(1"("%'*)(*.".I
ngulo de orientacin depende del modo de la &#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50) 0
tortuga.
__________________________
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

90 90
Ejemplo: left right
+*.(),")-.(*#/(012.3(41"$#"3(56(7%8.-/9(:(!"#$%(%/(#(/%&'-.( __________________________
>>> turtle.rigth (90) 71%&)(1&()*.(/;"..&<)*.(/0#--./)(.-.0.&)()*#)(;#&(=.(".7"./.&).39(
__________________________
46! ! "#$%&'(!)

>2."?)*%&'(?1,(/..(1&(?1,"(;107,)."(01&%)1"(%/(0#3.(,7(14(7%8.-/@(
www.it-ebooks.info

$*%;*(#".()%&?@(/A,#".(31)/9(B4(?1,(;1,-3(C110(%&(1&()*.(;#&2#/(
#&3()*.(-%&.(3"#$&(=?()*.(),")-.@(?1,($1,-3(=.(#=-.()1(/..()*#)(
)*.(#""1$(".7"./.&)%&'()*.(),")-.D/(7#)*(%/(E,/)(#(=,&;*(14(7%8.-/9(
+*#)D/(/%07-.(;107,)."('"#7*%;/9 __________________________
!1)/L !"#$%&'($%)*(+,")-./( ( 47

www.it-ebooks.info

Comandos de movimiento __________________________


__________________________
F1$($.D--().--()*.(),")-.()1(),"&(-.4)(G6(3.'"../($%)*()*.(41--1$H
%&'(;100#&3I
Mover y Dibujar
>>> t.left(90) __________________________
B4(?1,(*#2.&D)(-.#"&.3(#=1,)(3.'"../(?.)@(*.".D/(*1$()1()*%&J(
left(ngulo) o lt(ngulo): Gira la tortuga hacia la
_________________________
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!

#=1,)()*.09(B0#'%&.()*#)(?1,D".(/)#&3%&'(%&()*.(;.&)."(14(#(;%";-.9
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

izquierda un ngulo de unidades. Las unidades 



+1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!

 +*.(3%".;)%1&(?1,D".(4#;%&'(%/(6(3.'"../9
+1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!

estn por default en grados, pero pueden ser  B4(?1,(*1-3(1,)(?1,"(-.4)(#"0@()*#)D/(G6(3.'"../(-.4)9


__________________________
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

cambiadas por medio de las funciones degrees() Moving the Turtle



K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
B4(?1,(*1-3(1,)(?1,"("%'*)(#"0@()*#)D/(G6(3.'"../("%'*)9
$L$/3$I3'!*1!&#'!L$(/$I3'!t!

K1,(;#&(/..()*%/(G6H3.'"..(),"&()1()*.(-.4)(1"("%'*)(*.".I
__________________________
B'!M?0&!5('$&'4>!0/</3$(!&*!

y radians(). El ngulo de orientacin depende del ?0/1:!&#'!Pen!;?15&/*1!/1!&#'!


turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

modo de la tortuga. >>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C
0

__________________________
Ejemplo: 90
left
90
right
>>> turtle.left (90) __________________________
46! ! "#$%&'(!)

__________________________
www.it-ebooks.info

__________________________
!"#$%&'($%)*(+,")-./( ( 47

www.it-ebooks.info

Comandos de movimiento __________________________


__________________________
Mover y Dibujar
__________________________
goto(x,y | vector) o setpos(x,y | vector) o setposition (x,y |
vector): Mueve la tortuga a una posicin absoluta, donde x y y son _________________________
nmeros enteros o reales. Si la pluma est abajo, dibuja la lnea. No realiza el
cambio de orientacin de la tortuga.
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!

vector es un par de coordenadas.


0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C
__________________________
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!

Ejemplo:



+1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
+1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
__________________________
$14!'1&'(!)*+,-&7!

>>> pos=turtle.pos()
>>> pos
Moving the Turtle
K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
__________________________
$L$/3$I3'!*1!&#'!L$(/$I3'!t!

(0.00,0.00) B'!M?0&!5('$&'4>!0/</3$(!&*!

>>> turtle.setpos(80,30)
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C
__________________________
>>> turtle.setpos(pos)
>>> t.forward(50)

>>>
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C
__________________________
__________________________

46! ! "#$%&'(!)

www.it-ebooks.info

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Comandos de movimiento __________________________


Mover y Dibujar __________________________
setx(x): Coloca a la tortuga en la coordenada x, el valor de la segunda
coordenada no es cambiada, x es un nmero entero o real. __________________________
sety(y): Coloca a la tortuga en la coordenada y, el valor de la primera _________________________
coordenada no es cambiada, y es un nmero entero o real.
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C
__________________________
Ejemplo:  +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!

__________________________
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!

>>> pos=turtle.pos() 
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
+1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!

>>> pos $14!'1&'(!)*+,-&7!

(0.00,0.00)
Moving the Turtle
K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
__________________________
>>> turtle.setx(10)
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!

__________________________
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!

>>> turtle.position() &#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!


&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

(10.00,0.00) >>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

>>> turtle.sety(10) __________________________


>>> turtle.position()
(10.00,10.00) __________________________
>>> Laboratorio Edumvil. M.C. Gabriel Gernimo C.

46! ! "#$%&'(!)

www.it-ebooks.info

Comandos de movimiento __________________________


__________________________
Mover y Dibujar
__________________________
setheading (ngulo) o seth(ngulo): Coloca la orientacin de la tortuga
a un ngulo. Donde ngulo es un nmero entero o real. Algunas direcciones _________________________
comunes en grados son:
__________________________
modo estndar modo logo
0 - Este 0 - Norte __________________________
90 - Norte 90 - Este
180 - Oeste 180 - Sur *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C
__________________________
270 - Sur 270 - Oeste  +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!

__________________________
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

Moving the Turtle

__________________________
K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

__________________________
>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

46! ! "#$%&'(!)

Comandos de movimiento
www.it-ebooks.info

__________________________
__________________________
Mover y Dibujar
__________________________
home(): Mueve la tortuga a la posicin original (0,0), y fija la cabeza en su
orientacin inicial _________________________
Ejemplo: __________________________
>>> turtle.heading()
0.0 __________________________
>>> turtle.setheading(90)
>>> turtle.heading() *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
__________________________
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

90.0 

__________________________
+1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!

>>> turtle.home()
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

>>> turtle.heading() Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t! __________________________
0.0
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!

>>> __________________________
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

46! ! "#$%&'(!)

www.it-ebooks.info

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Comandos de movimiento __________________________

Mover y Dibujar __________________________


__________________________
circle (radio, medida=opcional, pasos=opcional): Dibuja un
circulo con un radio determinado. _________________________
El centro del circulo est en unidades del radio a la izquierda de la tortuga. __________________________
medida(un ngulo) determina que parte del circulo es dibujada. Si no se da __________________________
la medida, se dibuja el circulo completo. Si medida no esta en el circulo,
un punto final del arco es la posicin actual de la pluma. Dibuja el arco en __________________________
direccin hacia la izquierda si el radio es positivo, si no en direccin
opuesta. *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
__________________________
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!

__________________________
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!

__________________________
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

46! ! "#$%&'(!)

www.it-ebooks.info

Comandos de movimiento __________________________


Mover y Dibujar __________________________
Finalmente la direccin de la tortuga es cambiada por la cantidad de medida. __________________________
Como el crculo es aproximado por un polgono regular inscrito, los pasos
determina el nmero de pasos a usar. Si no se dan, se calcular de forma _________________________
automtica. Se puede utilizar para dibujar polgonos regulares.
__________________________
Ejemplo:
>>> turtle.circle(100)
__________________________
>>> turtle.left(90) __________________________
>>> turtle.forward(50)
>>> turtle.circle(50,50) *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C
__________________________
>>> turtle.circle(50,150)
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!

>>> turtle.circle(50,150,3) __________________________


$14!'1&'(!)*+,-&7!

Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!

>>>
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

__________________________
>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

46! ! "#$%&'(!)

www.it-ebooks.info

Comandos de movimiento __________________________


__________________________
Mover y Dibujar
__________________________
dot ( tamao (opcional), color): Dibuja un punto circular con un
determinado tamao de dimetro usando un determinado color. Si no se le _________________________
da el tamao, el mximo es pincel+4 y 2*pincel. tamao es opcional, y si se
asigna es un entero >=1, y color es una cadena o tupla numrica. __________________________

Ejemplo: __________________________
>>> turtle.dot(150,"blue")
>>> turtle.dot(100,"green")
__________________________
>>> turtle.dot(50,"red")
__________________________
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!

>>> turtle.dot()
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

__________________________
Moving the Turtle
K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

__________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

46! ! "#$%&'(!)

www.it-ebooks.info

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Comandos de movimiento __________________________


__________________________
Mover y Dibujar
__________________________
stamp (): Estampa una copia de la forma de la tortuga sobre el canvas en la
posicin actual de la tortuga. Retorna un stamp_id que pude ser usado para
_________________________
eliminarlo llamando a clearstamp (stamp_id). __________________________
Ejemplo:
>>> t=turtle.Turtle()
>>> t.shape("turtle")
__________________________
>>> id=t.stamp();print id
5 __________________________
__________________________
__________________________
__________________________

Comandos de movimiento __________________________


__________________________
Mover y Dibujar
__________________________
>>> t.forward(50);id2=t.stamp();print id2
6 _________________________
>>> t.forward(100);t.left(90);id3=t.stamp();print id3
7 __________________________
>>> t.forward(100);id4=t.stamp();print id4
8 __________________________
>>> t.left(90);t.forward(100);id5=t.stamp();print id5
9 __________________________
>>> t.left(90);t.forward(100); t.home()
__________________________
APLICANDO clearstamp (stamp_id).
__________________________
>>> t.clearstamp(6)
>>> t.clearstamp(8)
__________________________

Comandos de movimiento __________________________


__________________________
Mover y Dibujar
__________________________

clearstamp(stamp_id): Borra la estampa asociada con el identificador


_________________________
stamp_id, el cual fue retornado por stamp(). __________________________
clearstamps(n=opcional): Borra todas o las primeras/ultimas estampas. __________________________
Si n no se coloca, borra todas las estampas, si n >0 borra las primeras n
estampas, si n <0 borra las ultimas n estampas. __________________________
undo(). Deshace (repetidamente) la ltima(s) accin(es). El nmero de __________________________
vlido de las acciones a deshacer depende del tamao del buffer intermedio.
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Comandos de movimiento __________________________


__________________________
Mover y Dibujar
__________________________
sleep(velocidad=opcional): Fija la velocidad de movimiento de la
tortuga en un rango de 0 a 10, si el argumento no es dado retorna la _________________________
velocidad actual. Tambin se puede colocar una cadena en velocidad, como
se indica a continuacin: __________________________

0 es igual a colocar fastest __________________________


10 es igual a colocar fast
6 es igual a colocar normal __________________________
3 es igual a colocar slow
1 es igual a colocar slowest
__________________________

Si colocamos 0 en velocidad, no existe animacin cuando se mueve la


__________________________
tortuga, esta se vera que ejecuta la instruccin y un salto al punto final. __________________________

Comandos de movimiento __________________________

Estado de la Tortuga
__________________________

position() o pos(): Retorna la posicin (x,y) actual de la tortuga, como un


__________________________
vector 2d.
_________________________
towards(x,y | vector): Retorna el ngulo entre las lneas de la posicin
actual de la tortuga y la posicin especificada por (x,y) , o el vector u otra __________________________
tortuga.
__________________________
xcor (): Retorna la coordenada en x de la tortuga.
__________________________
ycor(): Retorna la coordenada en y de la tortuga.
heading(): Retorna el ngulo actual de la cabeza de la tortuga (el valor __________________________
depende del modo).
__________________________
distance(x,y | vector): Retorna la distancia de la tortuga al punto (x,y) o a
otra tortuga en unidades de pasos. __________________________

Comandos de movimiento __________________________


__________________________
Ajustar y Medir __________________________
_________________________
degrees(): Fija las unidades de medida de los ngulos, es decir, el nmero
de grados para un circulo completo. El valor default es 360 grados. __________________________

radians(): Fija la unidad de medida de los ngulos en radianes, el


__________________________
equivalente a grados es: 2* .
__________________________
__________________________
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Comandos de control de la pluma __________________________


__________________________
Dibujar estado
__________________________
pendown() o pd() o down(): Coloca la pluma hacia abajo, es decir, dibuja
al movimiento de la tortuga.
_________________________

penup() o pu() o up(): Coloca la pluma hacia arriba, es decir, no dibuja al


__________________________
movimiento de la tortuga. __________________________
pensize (ancho=opcional) o width (ancho=opcional): Ajusta el __________________________
grosor de la lnea al nmero dado en ancho, si este aparece, en caso de no
colocar ancho, devuelve el nmero (positivo) de grosor. Si Resizemode se __________________________
establece en auto y turtleshape es un polgono, dicho polgono se dibuja con
el mismo grosor de la lnea. __________________________
isdown() : Retorna True si la pluma est abajo, False si est arriba. __________________________

Comandos de control de la pluma __________________________


__________________________
Dibujar estado
__________________________
pen(pluma=opcional, **lista_arg): Retorna o fija atributos de la pluma
en un diccionario con los siguientes datos: _________________________

shown: True/False
__________________________
pendown: True/False
pencolor: Cadena o tupla
__________________________
fillcolor: Cadena o tupla __________________________
pensize: Nmero positivo
speed: Nmero en el rango de 0 a 10 __________________________
resizemode: auto o user o noresize
stretchfactor: Par de nmeros positivos de la forma (x,y) __________________________
outline: Nmero positivo
tilt: Nmero __________________________

Comandos de control de la pluma __________________________


__________________________
Dibujar estado __________________________
_________________________
Este diccionario puede ser utilizado como argumento para un llamado
posterior a pen() para restaurar el estado anterior de la pluma. Por otra __________________________
parte uno o mas atributos pueden presentarse como palabras claves de
argumentos. Estos se pueden utilizar para configurar varios atributos de la
__________________________
pluma en un determinado estado.
__________________________
__________________________
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Comandos de control de la pluma __________________________


__________________________
Control de color
__________________________
pencolor(*argumentos): Retorna o fija el color de la pluma. Cuatro _________________________
formas de llamado son permitidas:
__________________________
1. pencolor(): Retorna el actual pencolor() como una cadena donde se
especifica el color. Esta salida puede ser usada como entrada a otro llamado __________________________
como: color, pencolor, fillcolor.
Ejemplo: __________________________
>>> turtle.pencolor()
'black' __________________________
>>>
__________________________
__________________________

Comandos de control de la pluma __________________________


__________________________
Control de color
__________________________
2. pencolor (cadena): Fija el color de la pluma a cadena, el cual es un _________________________
color de Tk especificado en dicha cadena, tal como red, yellow o
#NumHexadecimal __________________________
3. pencolor ((r, g, b)): Fija el color de la pluma formado por la tripleta __________________________
(r,g,b). Cada r, g y b debe estar en el rango de 0 a colormode, donde el
colormode esta en el rango de 1.0 a 255. __________________________
4. pencolor (r, g, b): Fija el color de la pluma en formato RGB __________________________
representado por r(red), g (green), b (blue). Cada r, g y b debe estar en el
rango de 0 a colormode. __________________________
__________________________

Comandos de control de la pluma __________________________


__________________________
Control de color
__________________________
fillcolor(*argumentos): Retorna o fija el color de relleno. Son permitidos
cuatro formatos de entrada: _________________________
1. fillcolor(): Retorna el actual color de relleno como una cadena. Puede ser __________________________
usada como entrada a otro llamado de color/pencolor/fillcolor.
__________________________
2. fillcolor(colorstring): Fija el color de relleno a colorstring, la cual es
una cadena de tipo Tk color, tal como: red, yellow o #45cc8d __________________________
3. fillcolor((r,g,b)): Fija el color de relleno a color RGB, representado por __________________________
r,g y b. Cada uno de ellos en un rango de 0 a colormode, donde el colormode
podr ser de 1.0 a 255. __________________________
4. fillcolor(r,g,b): Fija el color de relleno a color RGB, representado por r,g
y b. Cada uno de ellos en un rango de 0 a colormode.
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Comandos de control de la pluma __________________________


__________________________
Control de color __________________________
_________________________
color(*argumentos): Retorna o fija el color de la pluma y el relleno.
Varias entradas son permitidas, ellas usan de 0 a 3 argumentos como sigue: __________________________
color(): Retorna el actual color de la pluma y del relleno como un par de __________________________
cadena o tuplas como lo retorna pencolor() y fillcolor().
color(colorstring), color((r,g,b)), color(r,g,b): Entradas como en __________________________
pencolor, fija pencolor y fillcolor().
__________________________
color(colorstring1, colorstring2 ), color((r1,g1,b1),
(r2,g2,b2)): Equivalente a pencolor(colorstring), y fillcolor __________________________
(colorestring2), y anlogamente si otros formatos de entradas son usados.
__________________________

Comandos de control de la pluma __________________________


__________________________
Relleno
__________________________
fill(banderas): El argumento bandera puede ser True/False o 1/0
respectivamente. Se debe colocar fill(True) antes de dibujar la forma que _________________________
se quiera rellenar, y fill(False) para aplicar el relleno. Cuando se utiliza sin
argumento se retorna el estado del relleno, True si est relleno y False en __________________________
caso contrario.
__________________________
Ejemplo:
>>> import turtle __________________________
>>> turtle.fill(True)
>>> for _ in range (3): turtle.forward(150);turtle.left(120) __________________________
...
>>> turtle.fill(False) __________________________
>>>
__________________________

Comandos de control de la pluma __________________________


__________________________
Relleno
__________________________
begin_fill(): Iniciar bloque para aplicar relleno, equivalente a fill(True).
_________________________
end_fill(): Finalizar bloque de aplicar relleno, despus de aplicar begin_fill
(). Equivalente a fill(False). __________________________
Ejemplo: __________________________
>>> turtle.color("black","red")
>>> turtle.begin_fill() __________________________
>>> turtle.circle(80)
>>> turtle.end_fill() __________________________
>>>
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Comandos de control de la pluma __________________________


__________________________
Otros comandos
__________________________
reset(): Borra los dibujos hechos por la tortuga, centra nuevamente la _________________________
tortuga, y reinicia las variables al valor por default.
__________________________
clear(): Borra los dibujos hechos por la tortuga. No mueve la posicin actual
de la tortuga, y cambia el estado, as como los dibujos de otras tortugas no
__________________________
son afectados.
__________________________
__________________________
__________________________
__________________________

Comandos de control de la pluma __________________________


__________________________
Otros comandos
__________________________
write(arg, move, align, font): Escribe un texto, la cadena asignada en
arg en la posicin actual de la tortuga, con alineacin align ya sea left, _________________________
center o right y con el font dado. font es una triple de la forma
(nombre del font, tamao del font, tipo del font). Por otra parte de move es __________________________
True, el pincel se mueve a la esquina inferior derecha del texto, por default
move es False. __________________________
Ejemplo: __________________________
>>> turtle.goto(100,200)
>>> turtle.write("MENSAJE", True, "center", ("Arial", 32, "normal")) __________________________
>>>
__________________________
__________________________

Estado de la tortuga __________________________


__________________________
Visible __________________________
_________________________
showturtle() o st(): Hacer la tortuga invisible, es una buena idea
cuando se est realizando algn dibujo complejo, ya que acelera el __________________________
dibujo a observar.
__________________________
hideturtle() o ht(): Hace que la tortuga sea visible.
__________________________
isvisible(): Retorna True si la tortuga es mostrada, False si est no es
mostrada. __________________________
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Estado de la tortuga __________________________


__________________________
Apariencia
__________________________
shape(): Fija la forma de la tortuga pasando como parmetro el nombre
de dicha forma, si el nombre no es dado retorna el nombre de la actual
_________________________
forma. El nombre de la forma debe existir en el diccionario de formas de __________________________
TurtleScreen. Inicialmente existen las siguientes formas poligonales:
arrow, turtle, circle, square, triangle, clasicc. __________________________
Ejemplo: Forma clsica __________________________
>>> turtle.shape()
'classic' __________________________
>>> turtle.shape("turtle")
Forma tortuga
>>> turtle.shape() __________________________
'turtle'
>>> __________________________

Estado de la tortuga __________________________


__________________________
Apariencia
__________________________
resizemode(rmodo=opcional): Fija el resizemode a uno de los siguiente _________________________
valores: auto, user, noresize. Si el rmodo no es dado retorna el actual
resizemode. Los siguientes resizemode tienen los siguientes efectos: __________________________
auto: Adopta la apariencia de la tortuga correspondiente a el valor de __________________________
pensize.
__________________________
user: Adopta la apariencia de la tortuga acorde al valor de stretchfactor y
outlinewidth (outline), las cuales son fijadas por shapesize(). __________________________
noresize: No hace cambios, y se queda en la apariencia actual. __________________________
__________________________

Estado de la tortuga __________________________


Apariencia __________________________
shapesize (stretch_wid=opcional, stretch_len=opcional, outline=opcional) o
turtlesize(stretch_wid=opcional, stretch_len=opcional, outline=opcional): __________________________
Retorna o fija los atributos del pincel factores stretch y/o outline. Fija el resizemode a
user Si y slo si resizemode es colocado a user, la tortuga ser mostrada _________________________
acorde a sus stretchfactors: stretch_wid es stretchfactor perpendicular a su
orientacin, stretch_len es stretch factor en direccin a su orientacin, outline __________________________
determina el ancho de la forma de salida de la linea.
Ejemplo: __________________________
>>> turtle.shapesize()
(1, 1, 1)
>>> turtle.resizemode("user")
__________________________
>>> turtle.shapesize(4,4,5)
>>> turtle.shapesize() __________________________
(4, 4, 5)
>>> turtle.shapesize(outline=8) __________________________
>>> turtle.shapesize()
(4, 4, 8) __________________________
>>>

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Estado de la tortuga __________________________


__________________________
Apariencia
__________________________
tilt(ngulo): Rota la forma de la tortuga un determinado ngulo, desde
su actual ngulo de inclinacin, pero no cambia la direccin de pintado o _________________________
de desplazamiento.
__________________________
Ejemplo:
__________________________
>>> turtle.tilt(30)
>>> turtle.forward(50) __________________________
>>> turtle.tilt(30)
>>> turtle.forward(150)
__________________________
>>>
__________________________
__________________________

Estado de la tortuga __________________________


__________________________
Apariencia
__________________________
settiltangle(ngulo): Rota la forma de la tortuga a un punto en la _________________________
direccin especificada por ngulo, independientemente de su ngulo de
inclinacin actual. No cambia la direccin de la cabeza de la tortuga __________________________
(direccin de movimiento).
__________________________
tiltangle(): Retorna el actual ngulo de inclinacin, es decir, el ngulo
entre la orientacin de la forma de la tortuga y la cabeza de la tortuga __________________________
(su direccin de movimiento).
__________________________
__________________________
__________________________

Eventos y mtodos especiales __________________________


__________________________
Eventos __________________________
onclick(funcin, boton=1, add=opcional): Enlaza la funcin al _________________________
evento click del mouse sobre la tortuga, si en lugar de funcin se coloca
None el enlace es removido. __________________________
Dicha funcin debe ser definida con dos argumentos que son las __________________________
coordenadas del punto donde se da el click del mouse (se toman
automticamente dichas coordenadas al dar el click). __________________________
El nmero que se coloca en boton es por default 1 (botn izquierdo __________________________
del mouse).
__________________________
En add, si se coloca, se aplica True o False, si es True un nuevo
enlaza se anexa, en otro caso se reemplaza un nuevo enlace. __________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Eventos y mtodos especiales __________________________


__________________________
Eventos __________________________
_________________________
Ejemplo:
>>> def tu(x,y): turtle.left (180);turtle.forward(100) __________________________
...
>>> turtle.onclick(tu) __________________________
>>> turtle.onclick(None)
>>> __________________________
onrelease(funcin, boton=1, add=opcional): Similar a la funcin __________________________
anterior, pero ahora con el botn de liberacin del mouse.
__________________________
__________________________

Eventos y mtodos especiales __________________________


__________________________
Eventos
__________________________
ondrag(funcin, boton=1, add=opcional): Parmetros similares a los
comandos anteriores. Solo que este comando enlaza la funcin con el evento
_________________________
de movimiento del mouse. Si se coloca None se remueve el enlace. __________________________
Ejemplo: __________________________
>>> turtle.ondrag(turtle.goto)
>>> __________________________
Si sostenemos el click del mouse y arrastramos la tortuga esta se mover en __________________________
la pantalla produciendo dibujos a mano alzada.
__________________________
mainloop() o done(): Inicia el evento de Ciclo, realiza la ultima instruccin
realizada. __________________________

Eventos y mtodos especiales __________________________


__________________________
Mtodos especiales __________________________
_________________________
begin_poly(): Inicia a grabar los vrtices de un polgono. La posicin de la
tortuga actual es el primer vrtice. __________________________
end_poly(): Para la grabacin de los vrtices de un polgono. La actual __________________________
posicin de la tortuga es el ltimo vrtice. Este debe ser conectado con el
primero. __________________________
__________________________
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
__________________________
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!

__________________________
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

46! ! "#$%&'(!)

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



www.it-ebooks.info
PYTHON - TURTLE&PYGAME

Eventos y mtodos especiales __________________________


__________________________
Mtodos especiales
__________________________
get_poly() Retorna la ltima grabacin de un polgono. _________________________
Ejemplo:
>>> turtle.begin_poly() __________________________
>>> turtle.fd(100)
>>> turtle.left(45) __________________________
>>> turtle.fd(150)
>>> turtle.left(145) *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C
__________________________
>>> turtle.fd(50)
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!

__________________________
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!

>>> turtle.home()
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!

>>> turtle.end_poly()
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!

__________________________
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> p=turtle.get_poly()
>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

>>> p
((0.00,0.00), (100.00,0.00), (206.07,106.07), (156.83,97.38), (0.00,0.00)) __________________________
>>>
46! ! "#$%&'(!)

www.it-ebooks.info

Eventos y mtodos especiales __________________________


__________________________
Mtodos especiales
__________________________
clone(): Crea y retorna un clon de la tortuga, con la misma posicin, rumbo y _________________________
propiedades de la original.
__________________________
Ejemplo:
>>> x=turtle.clone() __________________________
>>> x.left(90) X el clone
>>> x.forward(100) __________________________
>>>
__________________________
Original
__________________________
__________________________

Eventos y mtodos especiales __________________________


__________________________
Mtodos especiales
__________________________
getturtle() o getpen(): Retorna la direccin donde se encuentre localizado
el objeto tortuga. _________________________
Ejemplo:
>>> turtle.getturtle() __________________________
<turtle.Turtle object at 0x10116a150>
>>>
__________________________

getscreen(): Retorna el objeto sobre el cual la tortuga est dibujando.


__________________________
Mtodos TurtleScreen pueden ser invocados por este objeto. __________________________
Ejemplo:
>>> turtle.getscreen() __________________________
<turtle._Screen object at 0x1011507d0>
>>> __________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Eventos y mtodos especiales __________________________


__________________________
Mtodos especiales __________________________
setundobuffer(): Fija o desactiva el buffer de deshacer lo borrado. _________________________
Si se coloca un entero como parametro indica que el numero mximo
de acciones que guardar para recuperar lo borrado. Si se coloca __________________________
None entonces se desactiva el buffer de deshacer.
__________________________
undobufferentries(): Retorna el nmero de entradas del buffer de
deshacer. __________________________
__________________________
__________________________
__________________________

Mtodos de pantalla __________________________


__________________________
Control de ventana
__________________________
bgcolor(*arg): Fija o retorna el color de fondo de la pantalla. En arg se _________________________
coloca una cadena del color o tres nmeros en el rango de 0 a colormode,
o una tripleta de tales nmeros. __________________________
Ejemplo: __________________________
>>> turtle.bgcolor("orange")
>>> __________________________
__________________________
__________________________
__________________________

Mtodos de pantalla __________________________


__________________________
Control de ventana
__________________________
bgpic(imagen=opcional): Coloca/retorna una imagen de fondo de
pantalla.Si se coloca nopic se borra la imagen de fondo. Si no se coloca _________________________
nada como argumento se retorna el nombre de la imagen actual.
__________________________
Ejemplo:
>>> turtle.bgpic("bosque.gif") __________________________
>>> turtle.bgpic()
'bosque.gif' __________________________
>>>
__________________________
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Mtodos de pantalla __________________________


__________________________
Control de ventana
__________________________
clearscreen(): Borra todos los dibujos de todas las tortugas de la _________________________
pantalla. Reinicia el estado de la pantalla: color blanco de fondo, no imagen
de fondo, no eventos enlazados y trazado iniciado. __________________________

reset() o resetscreen(): Reinicia todas las tortugas en la pantalla a su __________________________


estado inicial.
__________________________
__________________________
__________________________
__________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Mtodos de pantalla __________________________


__________________________
Control de ventana
__________________________
screensize(ancho=opc, alto=opc, fondo=opc): ancho y alto son
nmeros enteros para el ancho y alto del canvas en pixeles, fondo es una _________________________
cadena del color o tripleta del nuevo color de fondo. Si no se colocan
argumentos, se retorna el actual (ancho, alto) del canvas. __________________________
Ejemplo: __________________________
>>> turtle.screensize()
(400, 300) __________________________
>>>
__________________________
setworldcoordinates(lx,ly,ux,uy): Cambia el sistema de coordenadas
que el usuario considere. Donde lx,ly son las coordenadas de la esquina __________________________
inferior izquierda del canvas, y ux,uy son las coordenadas de la esquina
superior derecha del canvas. __________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Mtodos de pantalla __________________________


__________________________
Control de animacin
__________________________
delay(retardo=opc): Fija o retorna el retardo de dibujo en milisegundos.
_________________________
Ejemplo:
>>> turtle.delay() __________________________
10
>>> turtle.delay(50)
__________________________
>>> turtle.reset()
>>> for _ in range (8): turtle.left (45); turtle.forward(2)
__________________________
... __________________________
>>>
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Mtodos de pantalla __________________________


__________________________
Control de animacin
tracer(n=opc, retardo=opc): Gira la animacin on/off de la tortuga y fija
__________________________
el retardo para actualizar el dibujo. Si n es dado, solo cada n-veces regulares
actualiza la pantalla de ejecucin, el segundo parmetro es el retardo.
_________________________
Ejemplo:
>>> turtle.reset()
__________________________
>>> turtle.tracer(8,50) __________________________
>>> d=2
>>> for i in range(200): turtle.fd(d);turtle.lt(90);d+=2 __________________________
...
>>> turtle.tracer() __________________________
8
>>> __________________________
update(): Realiza una actualizacin de la pantalla. Debe ser usado cuando el
trazado est apagado
__________________________

Mtodos de pantalla __________________________


__________________________
Eventos de pantalla
__________________________
listen(x=opc,y=opc) : Establece el foco en la pantalla para recopilar _________________________
eventos. Los argumentos x y y son proporcionados en orden para que listen
() este pendiente al mtodo onclick. __________________________
onkey(funcion, tecla) : Enlaza una funcion al evento de liberacin de __________________________
tecla. Si no se coloca argumento o None, el evento es enlazado es
removido. __________________________
Ejemplo:
>>> turtle.listen() __________________________
>>> def x(): turtle.fd(50);turtle.rt(50)
... __________________________
>>> turtle.onkey(x,"Up")
__________________________

Mtodos de pantalla __________________________


__________________________
Eventos de pantalla
__________________________
onclick(funcin, botn=1, add=opc): Enlaza una funcin al evento _________________________
del click del mosue. 1 en botn es el default del botn izquierdo del
mouse. Con True add en se enlaza un nuevo evento, sino se reemplaza la __________________________
nueva funcin.
onscreenclick(funcin, botn=1, add=opc): Semejante al anterior
__________________________
comando. __________________________
ontimer(funcin, t=0): Instala un timer que llama a la funcin (sin
argumentos) despus de t milisegundos, donde t es nmero mayor o igual a __________________________
0.
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Mtodos de pantalla __________________________


__________________________
Mtodos especiales __________________________
_________________________
mode(modo=opc): Fija el modo de la tortuga (los cuales pueden ser,
standard,logo, o world), y ejecuta un reinicio. Si modo no es dado se __________________________
retorna el modo actual. El modo standard es compatible con el modo
anterior de turtle, el modo logo es compatible con los grficos de Logo __________________________
turtle, el modo world es usado para que el usuario defina coordenadas del
mundo __________________________
colormode(cmodo=opc): Retorna el modo de color o fija este de 1.0 a __________________________
255. Subsecuentemente la tripleta r,g,b pueden ser asignadas y estn en el
rango de 0 a cmode. __________________________
__________________________

Mtodos de pantalla __________________________


__________________________
Mtodos especiales
__________________________
getcanvas(): Retorna el canvas asociado a la pantalla.
_________________________
Ejemplo:
>>> turtle.getcanvas() __________________________
<turtle.ScrolledCanvas instance at 0x1004e5320>
>>>
__________________________

getshapes(): Retorna la lista de nombres de las actuales formas de la tortuga.


__________________________
__________________________
Ejemplo:
>>> turtle.getshapes() __________________________
['arrow', 'blank', 'circle', 'classic', 'square', 'triangle', 'turtle']
>>> __________________________

Mtodos de pantalla __________________________


__________________________
Mtodos especiales
__________________________
register_shape(name, shape=opc) o addshape(name,
shape=opc): Hay de formas de invocar a esta funcin: _________________________

1. name es el nombre del archivo gif, y shape ser None o no se coloca, __________________________
as se anexa a la lista de formas la imagen del archivo (Nota: La imagen no
rota).
__________________________
__________________________
Ejemplo:
>>> turtle.addshape("raton.gif") __________________________
>>> turtle.shape("raton.gif")
>>> turtle.fd(100) __________________________
>>>
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Mtodos de pantalla __________________________


__________________________
Mtodos especiales
__________________________
2. name es una cadena arbitraria y shape son pares de coordenadas, _________________________
para instalar la correspondiente forma del polgono.
__________________________
Ejemplo:
>>> turtle.register_shape("x",((5,-3),(0,5),(-5,-3))) __________________________
>>> turtle.getshapes()
['arrow', 'blank', 'circle', 'classic', 'raton.gif', 'square', 'triangle', 'turtle', 'x'] __________________________
>>> turtle.shape("x")
>>> __________________________
3. name es una cadena arbitraria y shape es un objeto compuesto. __________________________
__________________________

Mtodos de pantalla __________________________


__________________________
Mtodos especiales
__________________________
turtles(): Retorna la lista de tortugas en la pantalla.
_________________________
Ejemplo:
>>> turtle.turtles() __________________________
[<turtle.Turtle object at 0x10116a150>]
>>> t=turtle.shape("turtle") __________________________
>>> t=turtle.Pen()
>>> turtle.turtles() __________________________
[<turtle.Turtle object at 0x10116a150>, <turtle.Turtle object at
0x1007ae850>] __________________________
>>> for turtle in turtle.turtles(): turtle.color("red")
__________________________
__________________________

Mtodos de pantalla __________________________


__________________________
Mtodos especiales __________________________
window_height(): Retorna el alto de la ventana de la tortuga.
_________________________
window_width(): Retorna el ancho de la ventana de la tortuga.
__________________________
bye(): Cierra la ventana del grfico de la tortuga.
exitonclick() : Enlaza el mtodo bye() al click del mouse sobre la
__________________________
pantalla.
__________________________
title(cadena): Coloca el ttulo de la cadena a la ventana de la
tortuga. __________________________
EJemplo: __________________________
>>> turtle.title("Tortuga de GERO")
>>> __________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



!1)/L

PYTHON - TURTLE&PYGAME

F1$($.D--().--()*.(),")-.()1(),"&(-.4)(G6(3.'"../($%)*()*.(41--1$H
%&'(;100#&3I

>>> t.left(90)

Conceptos __________________________
B4(?1,(*#2.&D)(-.#"&.3(#=1,)(3.'"../(?.)@(*.".D/(*1$()1()*%&J(
#=1,)()*.09(B0#'%&.()*#)(?1,D".(/)#&3%&'(%&()*.(;.&)."(14(#(;%";-.9

 +*.(3%".;)%1&(?1,D".(4#;%&'(%/(6(3.'"../9
 __________________________
B4(?1,(*1-3(1,)(?1,"(-.4)(#"0@()*#)D/(G6(3.'"../(-.4)9
 B4(?1,(*1-3(1,)(?1,"("%'*)(#"0@()*#)D/(G6(3.'"../("%'*)9

Un pixel es un simple punto en la pantalla, el elemento mas 0


__________________________
K1,(;#&(/..()*%/(G6H3.'"..(),"&()1()*.(-.4)(1"("%'*)(*.".I

pequeo que se puede representar.


_________________________
Si quieres aprender sobre grados, imagina que estas parado en 90
left
90
right
el centro de un crculo, de esta forma: __________________________
*+!,-.!/-0&10.'!$(-.02!&#'!/1(/3'!&-!&#'!(14#&!+(-5!6#'('!
,-.(!(14#&!$(5!17!%-10&1048!9:;!2'4(''7!17!21('/&3,!<'#102!,-.8!
1. A la direccin donde estas viendo son 0 grados
2. A tu mano izquierda extendida son 90 grados a la izquierda
__________________________
=>;!2'4(''7!17!&#'!21('/&1-0!,-.(!3'+&!$(5!17!%-10&1048!$02!
?@;!2'4(''7!17!<$/A!6#'('!,-.!7&$(&'2B!2'4(''7!4-!+(-5!;!&-!?@;C
D#'!2'4(''7!10!$!+.33!/1(/3'8!6#'0!&.(0104!&-!&#'!(14#&8!/$0!<'!7''0!
3. A tu mano derecha extendida son 90 grados a la derecha
4. Debajo de ti, son 180 grados.
#'('!10!)EF2'4(''!10/('5'0&7G
0
__________________________
!"#$%&'($%)*(+,")-./( ( 47

315 45

Los grados van de 0 a 360, y puedes moverte para alcanzarlos __________________________


www.it-ebooks.info

de izquierda a derecha en contra de las manecillas de un reloj o 270 90

a favor de las manecilla del reloj de derecha a izquierda. __________________________


225 135

__________________________
180

H#'0!I,&#-0J7!&.(&3'!&.(07!3'+&8!1&!761K'37!$(-.02!&-!+$/'!&#'!
Laboratorio Edumvil. M.C. Gabriel Gernimo C.
0'6!21('/&1-0!LM.7&!$7!1+!,-.!&.(0'2!,-.(!<-2,!&-!+$/'!6#'('!,-.(!
$(5!17!%-10&104!N;!2'4(''7!3'+&OC
D#'!t.left(90)!/-55$02!%-10&7!&#'!$((-6!.%!L710/'!1&!7&$(&'2!
<,!%-10&104!&-!&#'!(14#&OG

Dibujando un cuadrado __________________________


__________________________
Para dibujar un cuadrado utilizamos las instrucciones forward() y left() o
right() segn deseemos que gire la cabeza de la tortuga.
__________________________
>>> turtle.forward(100) NOTE! _________________________
"#$%!&'(!)*++!t.left(90),!-./0!.#$!0*1$!*0!)*++-%2!t.right(270)3!4#-0!
-0!*+0'!.5($!'6!)*++-%2!t.right(90),!7#-)#!-0!.#$!0*1$!*0 t.left(270)3!
>>> turtle.left(90) 8(0.!-1*2-%$!.#*.!)-5)+$!*%9!6'++'7!*+'%2!7-.#!.#$!9$25$$03
>>> turtle.forward(100) __________________________
P-6!6'J33!2($6!$!7Q.$('C!R22!&#'!+-33-6104!/-2'!&-!&#'!310'7!
>>> turtle.left(90)
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!

,-.JK'!$3('$2,!'0&'('2G
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

__________________________
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!

>>> turtle.forward(100)
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7! >>> t.forward(50)
>>> turtle.left(90) Moving the Turtle
K*?!0'14!/10&(?5&/*10!&*!&#'!
>>> t.left(90)

__________________________
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!

>>> turtle.forward(100)
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)
48! ! "#$%&'(!)

>>> turtle.left(90)
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

__________________________
www.it-ebooks.info

Reduciendo el cdigo para dibujar el cuadro


__________________________
46! ! "#$%&'(!)

www.it-ebooks.info

>>> for i in range (1,5): turtle.forward(100);turtle.left(90)


...
>>> __________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Tres tortugas en accin *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!


0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
__________________________
__________________________
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107! *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C
$14!'1&'(!)*+,-&7!

import turtle
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!

>>>
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
Moving the Turtle
K*?!0'14!/10&(?5&/*10!&*!&#'!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
&?(&3'!I6!?0/1:!;?15&/*10! )*+,-&!B#'1!&#'!&'(</1$3!*%'107!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!

__________________________
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!

t=turtle.Pen()
B'!M?0&!5('$&'4>!0/</3$(!&*!
$14!'1&'(!)*+,-&7!

>>>
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!

t
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
Moving the Turtle
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

q
K*?!0'14!/10&(?5&/*10!&*!&#'!
>>> t.forward(50) &?(&3'!I6!?0/1:!;?15&/*10!

q=turtle.Pen()
$L$/3$I3'!*1!&#'!L$(/$I3'!t!

>>>
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(100) _________________________


>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

>>> q.backward(100)
__________________________
46! ! "#$%&'(!)

>>> t.left(90)
www.it-ebooks.info

>>> q.right(90)
46! ! "#$%&'(!)

www.it-ebooks.info

>>> t.forward(100) __________________________


>>> q.backward(100)
>>> t.left(90) __________________________
>>> q.right(90) *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!

__________________________
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

t.forward(100)
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!

>>>
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!

q.backward(100)
$14!'1&'(!)*+,-&7!

>>>
turtle
Moving the Turtle

__________________________
K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!

t.left(90)
$L$/3$I3'!*1!&#'!L$(/$I3'!t!

>>>
B'!M?0&!5('$&'4>!0/</3$(!&*!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> turtle.right(90)
>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

>>> turtle.forward(100) __________________________


>>> Laboratorio Edumvil. M.C. Gabriel Gernimo C.

46! ! "#$%&'(!)

www.it-ebooks.info

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Dibujando estrellas *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!


__________________________
__________________________
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!

__________________________
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!

t
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

Moving the Turtle


K*?!0'14!/10&(?5&/*10!&*!&#'!

>>> t.reset();q.reset();turtle.reset()
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!

_________________________
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> q.up();t.up() >>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

>>> t.left(90);t.forward(200);t.left(90);t.forward(100)
>>> t.left(180);q.backward(200);q.down();t.down() *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
__________________________
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C 0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A

>>> for i in range (1,9):


0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!

__________________________
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
46! ! "#$%&'(!)  +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
www.it-ebooks.info
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!  +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107! *;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!

t.forward(100);t.left(225);q.forward(100)
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?! )*+,-&!B#'1!&#'!&'(</1$3!*%'107!
$14!'1&'(!)*+,-&7!  +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

q
Moving the Turtle

turtle
K*?!0'14!/10&(?5&/*10!&*!&#'! Moving the Turtle

q.left(225);turtle.forward(100);turtle.left(225)
&?(&3'!I6!?0/1:!;?15&/*10! K*?!0'14!/10&(?5&/*10!&*!&#'!
$L$/3$I3'!*1!&#'!L$(/$I3'!t! &?(&3'!I6!?0/1:!;?15&/*10!

__________________________
B'!M?0&!5('$&'4>!0/</3$(!&*! $L$/3$I3'!*1!&#'!L$(/$I3'!t!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'! B'!M?0&!5('$&'4>!0/</3$(!&*!
turtle!<*4?3'7!N*(!'9$<%3'>! ?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'! turtle!<*4?3'7!N*(!'9$<%3'>!

...
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C &#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C
>>> t.forward(50)
>>> t.forward(50)
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

>>>
__________________________
__________________________
46! ! "#$%&'(!)

46! ! "#$%&'(!)
www.it-ebooks.info
www.it-ebooks.info

Con cdigo similar, solo variando el ngulo y la cantidad de repeticiones puedes crear
diferentes tipos de estrellas
__________________________

Dibujando estrellas __________________________


__________________________
>>> t=turtle.Pen() __________________________
>>> q=turtle.Pen()
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!

_________________________
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!

>>> t.reset();q.reset();turtle.reset()
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!

t
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
$14!'1&'(!)*+,-&7!

>>> q.up();t.up()
Moving the Turtle
K*?!0'14!/10&(?5&/*10!&*!&#'!
&?(&3'!I6!?0/1:!;?15&/*10!
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*!

__________________________
?0/1:!&#'!Pen!;?15&/*1!/1!&#'!

>>> t.left(90);t.forward(200);t.left(90);t.forward(100)
turtle!<*4?3'7!N*(!'9$<%3'>!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C

>>> t.forward(50)

K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

>>> t.left(180);q.backward(200);q.down();t.down()
>>> for i in range (1,76): __________________________
t.forward(100);t.left(175);q.forward(100) *(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C 46! ! "#$%&'(!)
*(!+,-.!/012&!/10&$33'4!5*(('5&367!8(6!'9/&/1:!$14!('0&$(&/1:!&#'!
0#'33!;(*<!&#'!4'0=&*%!/5*17!+;!&#$&!;$/30>!&(6!?0/1:!&#'!@6&#*1!5*1A
0*3'!/10&'$4!*;!&#'!0#'33>!$0!;*33*B0C

 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'!

__________________________
 +1!D/14*B0>!0'3'5&!!"#$"%&&'($)*$#+,>!$14!&#'1!/1!&#'! (-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!

q.left(175);turtle.forward(100);turtle.left(175)
www.it-ebooks.info
(-".)/'012!:(*?%>!53/5=!(-".)/'34)++#/5'&6/787!  +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(!
 +1!E$5!FG!H>!53/5=!&#'!G%*&3/:#&!/5*1!$&!&#'!&*%A(/:#&!5*(1'(! *;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(!
*;!&#'!05(''1!$14!'1&'(!!"#$%&'(!/1!&#'!/1%?&!I*97!8#'1!'1&'(! )*+,-&!B#'1!&#'!&'(</1$3!*%'107!
)*+,-&!B#'1!&#'!&'(</1$3!*%'107!  +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?!
 +1!JI?1&?>!*%'1!&#'!&'(</1$3!;(*<!6*?(!%99&64#"6)/,!<'1?! $14!'1&'(!)*+,-&7!

...
$14!'1&'(!)*+,-&7!

q
Moving the Turtle

turtle
Moving the Turtle K*?!0'14!/10&(?5&/*10!&*!&#'!
K*?!0'14!/10&(?5&/*10!&*!&#'! &?(&3'!I6!?0/1:!;?15&/*10!
&?(&3'!I6!?0/1:!;?15&/*10! $L$/3$I3'!*1!&#'!L$(/$I3'!t!

__________________________
B'!M?0&!5('$&'4>!0/</3$(!&*!

>>>
$L$/3$I3'!*1!&#'!L$(/$I3'!t!
B'!M?0&!5('$&'4>!0/</3$(!&*! ?0/1:!&#'!Pen!;?15&/*1!/1!&#'!
?0/1:!&#'!Pen!;?15&/*1!/1!&#'! turtle!<*4?3'7!N*(!'9$<%3'>!
turtle!<*4?3'7!N*(!'9$<%3'>! &#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'!
&#'!forward!/10&(?5&/*1!&'330!&#'!&?(&3'!&*!<*L'!;*(B$(47!8*!&'33!&#'! &?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C
&?(&3'!&*!$4L$15'!OP!%/9'30>!'1&'(!&#'!;*33*B/1:!5*<<$14C
>>> t.forward(50)
>>> t.forward(50)
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C
K*?!0#*?34!0''!0*<'&#/1:!3/='!&#/0C

__________________________
__________________________
46! ! "#$%&'(!)

46! ! "#$%&'(!)
www.it-ebooks.info
www.it-ebooks.info

Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Funciones __________________________
__________________________
Funcin de circulo con color invocando a la funcin circulo __________________________
circulo(0, 1, 0, 10)
def circulo(rojo, verde, azul, radio)
circulo(0.5, 1, 0, 50)
_________________________
t.color (rojo, verde, azul)
t.begin_fill() __________________________
t.circle(radio)
t.end_fill() invocado a la funcin cuadro __________________________
cuadro(50) __________________________
Funcin de cuadro
__________________________
def cuadro(tam)
for i in range (1,5): * Realizar una funcin __________________________
t.forward(tam) para cuadros rellenos de
t.left(90) un color * __________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Funciones __________________________
__________________________
Funcin de estrella con
16 http://inventwithpython.com/pygame
Invocando a la funcin estrella __________________________
color
!"#"$%& t.color(0, 0.5, 0) _________________________
There are three primary colors estrella(120,
of light: red, True)
green and blue. (Red, blue, and yellow are the
def estrella(tam, con): __________________________
primary colors for paints and pigments, but the computer monitor uses light, not paint.) By
if con == True:
combining different amounts of these three colors you can form any other color. In Pygame, we
t.begin_fill()
represent colors with tuples of three integers. The first value in the tuple is how much __________________________
red is in the
for x in rangecolor.
(1, 19):
An integer value of ! means there is no red in this color, and a value of "## means there is
the maximum amount of red in the color. The second value is for green and the third__________________________
t.forward(tam) value is for
if x % 2 ==blue.
0: These tuples of three integers used to represent a color are often called R G B values.
t.left(175) __________________________
Because you can use any combination of ! to "## for each of the three primary colors, this
else:
means Pygame can draw 16,777,216 different colors (that is, 256 x 256 x 256 colors). However,
t.left(225) __________________________
if try to use a number larger than "## or a negative number, you will get an error that looks like
if con == True: $%&'()**+*,-./0%&.1-2+&+*-%*3'4(/5
t.end_fill() __________________________
For example, we will create the tuple 6!7-!7-!8 and store
Laboratorio it M.C.
Edumvil. in aGabriel
variable
Gernimonamed
C. 9:;<=. With
no amount of red, green, or blue, the resulting color is completely black. The color black is the
absence of any color. The tuple 6"##7-"##7-"##8 for a maximum amount of red, green, and
blue to result in white. The color white is the full combination of red, green, and blue. The tuple
6"##7-!7-!8 represents the maximum amount of red but no amount of green and blue, so the

Tabla de colores (r,g,b)


resulting color is red. Similarly, 6!7-"##7-!8 is green and 6!7-!7-"##8 is blue.

You can mix the amount of red, green, and blue to form other colors. Here are the RGB values for
__________________________
__________________________
a few common colors:

Color R G B V alues __________________________


Aqua 6--!7-"##7-"##8-
Black 6--!7---!7---!8- _________________________
Blue 6--!7---!7-"##8-
Fuchsia 6"##7---!7-"##8-
Gray 6>"?7->"?7->"?8- __________________________
Green 6--!7->"?7---!8-
Lime 6--!7-"##7---!8- __________________________
Maroon 6>"?7---!7---!8-
Navy Blue
Olive
6--!7---!7->"?8-
6>"?7->"?7---!8- __________________________
Purple 6>"?7---!7->"?8-
Red 6"##7---!7---!8- __________________________
Silver 6>@"7->@"7->@"8-
Teal
White
6--!7->"?7->"?8-
6"##7-"##7-"##8-
__________________________
Yellow 6"##7-"##7---!8-
__________________________
Cyan (0,255,255)

Email questions to the author: al@inventwithpython.com

Referencias __________________________
__________________________
__________________________
_________________________
1. Turtle graphics for Tk - Python v2.7.6 documentation. http://
docs.python.org/2/library/turtle.html . Consultado: 11/febrero/2014 __________________________
2. Python for Kids. Jason R. Briggs. No Starch Press, Inc. 2013 __________________________
__________________________
__________________________
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

__________________________
__________________________
__________________________
_________________________
Python
__________________________
M.C. Gabriel Gernimo Castillo __________________________
Laboratorio Edumvil
Universidad Tecnolgica de la Mixteca __________________________
gcgero@gmail.com __________________________
__________________________
__________________________

Introduccin __________________________
__________________________
__________________________
Python es un lenguaje interpretado, con tipos de _________________________
datos dinmicos, multiplataforma (Unix, Linux,
Windows, MacOS), funcional, y tambin orientado __________________________
a objetos.
__________________________
Su pgina oficial www.python.org
__________________________
Es popular para desarrollo de juegos, pero adems
__________________________
para crear desde aplicaciones hasta sitios web
__________________________
__________________________

Ejecutando python __________________________


__________________________
__________________________
Cuando ejecutamos python en la lnea de _________________________
comando, se puede ver lo siguiente
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) __________________________
[GCC 4.4.3] on linux2
Type help, copyright, credits or license for more information.
>>>
__________________________
Podemos observar que tenemos la versin 2.6.5 de Python, y el __________________________
prompt de su shell es >>>, lo cul indica que est esperando comandos
vlidos del lenguaje para interpretarlos. Para salir del interprete __________________________
escribimos exit() o presionamos las teclas ctrl y d.
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Ejecutando python __________________________


__________________________
Podemos escribir cdigo de dos formas:
__________________________
1. Escribir lneas de cdigo en el interprete y obtener una respuesta
del interprete por cada lnea introducida, o _________________________
2. Escribir el cdigo en un archivo de texto, cambiarle el modo (chmod __________________________
+x) y ejecutarlo (a esto se le llama ejecutar un script). Recuerde aqu
colocar como primera lnea la ubicacin del interprete, es decir, __________________________
escribir:
__________________________
#!/usr/bin/python
__________________________
__________________________
__________________________

Ejecutando python __________________________


__________________________
Ejecutando una instruccin en el
__________________________
interprete
>>> print Hola, mundo! _________________________
Hola, mundo!
>>> print Hola, mundito, mundo! #!/usr/bin/python __________________________
>>> Hola, mundito, mundo! c=1
while c<= 4: __________________________
Nmeros print "Hola mundo"
>>> 2+3/4+2
4
c+=1 __________________________
>>> 2+3./4+2
4.75
__________________________
Prctica 1.py __________________________
__________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Ejecutando python 8725.book Page 17 Friday, August 24, 2007 5:20 PM


__________________________
__________________________
CHAPTER 1 INTRODUCING PYTHON 17

Nmeros __________________________
>>> 15%6
3 Table 1-2. Comparison Operators
_________________________
>>> a=100.0; b=2.;p=15. Operator Description
>>> (a*b)*(p/100.) < Less than
__________________________
30.0
>>> c=1
<= Less than or equal to
__________________________
>>> while c<=4: print HOLA;c > Greater than
+=1 >= Greater than or equal to __________________________
....
hola
== Equal to
__________________________
!= Not equal to
hola
hola __________________________
hola
>>> __________________________
Caution Be careful with your loops! If you use a condition that is always true, such as 2>1, Python will
keep going round the loop forever. If you do end up in this pickle, hit Ctrl+Z (Ctrl+C for Linux and Mac OS X)
to stop Python in its tracks. Every programmer has been stuck in an infinite loop at least once!

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



For Loops
While loops have their uses and it is important you know how to use them, but often the for
loop is a better choice. A for loop runs through an iterable Python object, giving you a new
value until there are no more items remaining. You have met iterables before: lists, tuples, dic-
Tambin se puede utilizar notacin cientfica, y aadir una e (de expo-
nente) para indicar un exponente en base 10. Por ejemplo:
PYTHON - TURTLE&PYGAME

real = 0.1e-3

sera equivalente a 0.1 x 10-3 = 0.1 x 0.001 = 0.0001

!"#$%&'"(
Tipos de datos __________________________
Los nmeros complejos son aquellos que tienen parte imaginaria. Si __________________________
no conocas de su existencia, es ms que probable que nunca lo vayas a
Python 2.6.1 (r261:67515, Jun 24 >>> c= "hola mundo"
necesitar, por lo que puedes saltarte este apartado tranquilamente. De __________________________
2010, 21:47:49)
hecho la mayor parte de lenguajes de programacin>>> carecen
type (c)de este
tipo, aunque
[GCC sea muy
4.2.1 (Apple Inc.utilizado
build por ingenieros y cientficos en general. _________________________
5646)] on darwin <type 'str'>
En el caso de que necesitis utilizar nmeros complejos, o simplemen-
>>>complex
e = 5.45 __________________________
te tengis
Type "help",curiosidad, os "credits"
"copyright", dir que este tipo, llamado en Python,
ortambin se for
"license" almacena
more usando coma flotante, debido a que estos nme-
>>> type (e) __________________________
ros son una extensin de los nmeros reales. En concreto se almacena
information.
en una estructura de C, compuesta por dos variables
>>>
<typede'float'>
tipo double,
e = 23una de ellas para almacenar la parte real y la otra para la
__________________________
sirviendo
parte imaginaria. >>> __________________________
>>> type(e)
Los nmeros
<type 'int'> complejos en Python se representan de la siguiente
Python para todos
__________________________
forma:
vierte todos los operandos al tipo ms complejo de entre los tipos de
complejo = 2.1 + 7.8j
__________________________
los operandos.

)$&*+,"*&(
!"#$%&'$#()%)*+,#-)&#).+/
Veamos ahora qu podemos hacer con nuestros nmeros usando los
tarlos,
recurrir
Operadores aritmticos
Si no conocis estos operadores es poco probable que vayis a necesi-
operadores por defecto. Para operaciones ms complejas podemos
por
al lo que podis
mdulo math.
obviar esta parte. Si an as tenis curiosidad __________________________
os dir que estos son operadores que actan sobre las representaciones
en binario de los operandos. __________________________
)$&*+,"*&(-+*./#0/.1"(
Por ejemplo,
Operadorsi veis una operacinEjemplo
Descripcin como 3 & 2, lo que estais viendo es __________________________
un and
+ bit a bit entre
Sumalos nmerosrbinarios
= 3 + 211 y #10r (las
es 5representacio-
nes en binario de 3 y 2).
Tipos bsicos
_________________________
- Resta r = 4 - 7 # r es -3

Operador Descripcin Ejemplo


El operador and (&), del ingls y, devuelve 1 si el primer bit operando 18 __________________________
- Negacin
es 1 y el segundo bit operando es r1. =Se-7devuelve#0renescaso-7 contrario.

* Multiplicacin r = 2 * 6 # r es 12
__________________________
El resultado de aplicar and bit a bit
Exponente r =a 11 y 10
6 sera
# r entonces el nmero
**
binario
2 ** es 64
__________________________
/ 10, o lo que es lo mismo, 2r en
Divisin decimal
= 3.5 / 2 (el
# primer dgito es 1
r es 1.75
para ambas
//
cifras, mientras
Divisin que elrsegundo
entera es 1 slo para una de ellas).
= 3.5 // 2 # r es 1.0 __________________________
% Mdulo r = 7 % 2 # r es 1
El operador or (|), del ingls o, devuelve 1 si el primer operando es 1 __________________________
o el segundo operando es 1. Para el resto de casos se devuelve 0.
Puede que tengis dudas sobre cmo funciona el operador de mdulo,
y cul es la diferencia entre divisin y divisin entera. __________________________
El operador xor u or exclusivo (^) devuelve 1 si uno de los operandos
esEl1operador
y el otro de
nomdulo
lo es. no hace otra cosa que devolvernos el resto de
la divisin entre los dos operandos. En el ejemplo, 7/2 sera 3, con 1 de
El operador
resto, notmdulo
luego el (~), delesingls
1. no, sirve para negar uno a uno cada
Operadores a nivel de bit
bit; es decir, si el operando es 0, cambia a 1 y si es 1, cambia a 0.
La diferencia entre divisin y divisin entera no es otra que la que
__________________________
Por ltimo
indica los operadores
su nombre. de desplazamiento
En la divisin (<<seydevuelve
el resultado que >>) sirven
es para
un
desplazar los bits n posiciones
__________________________
nmero real, mientras que en lahacia la izquierda
divisin o la derecha.
entera el resultado que se
devuelve es solo la parte entera. __________________________
Operador Descripcin Ejemplo
No obstante hay que tener en cuenta que si utilizamos dos operandos _________________________
& and r = 3 & 2 # r es 2
enteros, Python determinar que queremos que la variable resultado
tambin
| or
sea un entero, por lo que el resultado
r = 3de,
| por
2 ejemplo,
# r es 33 / 2 y
__________________________
3 //^ 2 sera el mismo:
xor 1. r = 3 ^ 2 # r esTipos 1 bsicos
~ not r = ~3 # r es -4 __________________________
Si quisiramos obtener los decimales necesitaramos que al menos uno
los operandosDesplazamiento
de << fuera un nmero izq.
real, bien
r = indicando
3 << 1 # los decimales
r es 6 20 __________________________
>> Desplazamiento der. r = 3 >> 1 # r es 1
r = 3.0 / 2
__________________________
o bien utilizando la funcin float (no es necesario que sepais lo que
Cadenas
significa el trmino funcin, ni que recordeis esta forma, lo veremos un __________________________
Las cadenas
poco no son ms que texto encerrado entre comillas simples
ms adelante):
(cadena) o dobles (cadena). Dentro de las comillas se pueden __________________________
aadir
r =caracteres
float(3)especiales
/ 2 escapndolos con \, como \n, el carcter de
nueva lnea, o \t, el de tabulacin.
Esto es as porque cuando se mezclan tipos de nmeros, Python con-
Una cadena puede estar precedida por el carcter u o el carcter r, los
NOTAS DEL
cuales CURSO
indican, 19
respectivamente, que se trata de una cadena que utiliza M.C. GABRIEL GERNIMO CASTILLO

codificacin Unicode y una cadena raw (del ingls, cruda). Las cade-
nas raw se distinguen de las normales en que los caracteres escapados
mediante la barra invertida (\) no se sustituyen por sus contrapartidas.
PYTHON - TURTLE&PYGAME

Cadenas __________________________
__________________________
__________________________
>>> print "hola mundo
\n\n" _________________________
hola mundo
__________________________
>>> a = "uno"
>>> b = "dos"
__________________________
>>> c= a + b
>>> print c
__________________________
unodos __________________________
>>> c = a * 3
>>> print c __________________________
unounouno
>>> __________________________

Listas __________________________
__________________________
La lista es un tipo de coleccin ordenada. Sera equivalente a lo
que en otros lenguajes se conoce por arrays, o vectores. __________________________
>>> lista = [11, False]
>>> var = lista [0] _________________________
>>> print var
11 __________________________
>>> var = lista [1]
>>> print var __________________________
False
>>> lista = ["una lista", 2, [2,3]] __________________________
>>> var = lista [2][1]
>>> print var
__________________________
3 __________________________
>>> print lista[-1]
[2, 3] __________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Lista __________________________
__________________________
>>> print lista[-1] >>> c= "hola
JOHANNA" __________________________
[2, 3]
>>> print c[0] _________________________
>>> print lista[0:2]
h
['una lista', 2] __________________________
>>> print c[5:]
>>> print lista[0:4:2] __________________________
JOHANNA
['una lista', [2, 3]]
>>> print c[::2]
__________________________
>>> print lista[0:3:2]
hl OAN __________________________
['una lista', [2, 3]]
>>> print lista[0:3:1]
__________________________
['una lista', 2, [2, 3]] __________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Iteraciones de orden __________________________


superior sobre listas __________________________
filter(funcin, secuencia): __________________________
La filter verifica que los elementos de una secuencia cumplan una
determinada condicin, devolviendo una secuencia con los _________________________
elementos que cumplen esa condicin. Es decir, para cada elemento
de secuencia se aplica la funcin; si el resultado es True se __________________________
aade a la lista y en caso contrario se descarta.
__________________________
>>> l = [1, 2, 3, 4, 5, 6]
>>> def es_par(n): return (n % 2.0 == 0)
__________________________
...
>>> l2 = filter (es_par, l)
__________________________
>>> print l, l2
[1, 2, 3, 4, 5, 6] [2, 4, 6]
__________________________
>>>
__________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Iteraciones de orden __________________________


superior sobre listas __________________________
map(funcin, secuencia[, secuencia, ...]) __________________________
La funcin map aplica una funcin a cada elemento de una secuencia y
devuelve una lista con el resultado de aplicar la funcin a cada elemento. Si se _________________________
pasan como parmetros n secuencias, la funcin tendr que aceptar n
argumentos. __________________________
>>>
...
def cuadrado (n): return n ** 2
__________________________
>>> l = [1, 2, 3]
>>> l2 = map (cuadrado, l) __________________________
>>> print l, l2
[1, 2, 3] [1, 4, 9] __________________________
>>>
>>> l4 = map (lambda n: n **2, l) __________________________
>>> print l4
[1, 4, 9, 16, 25, 36] __________________________
>>>

Iteraciones de orden __________________________


superior sobre listas __________________________
__________________________
reduce(funcin, secuencia[, inicial])
_________________________
La funcin reduce aplica una funcin a pares de elementos de una
secuencia hasta dejarla en un solo valor.
__________________________

>>> def sumar (x, y): return x + y __________________________


...
>>> l = [1, 2, 3, 4, 5, 6] __________________________
>>> l3 = reduce (sumar, l)
>>> print l3 __________________________
21
>>> __________________________
>>> l3 = reduce (lambda x, y: x + y, l)
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Diccionarios __________________________
__________________________
__________________________
Los diccionarios, tambin llamados matrices asociativas, deben su _________________________
nombre a que son colecciones que relacionan una clave y un valor.
__________________________
>>> d = {"a": "abaco arbol ardilla", "b":"barril barco becerro", "c":
"casa cama", "d": "dado dedo"} __________________________
>>> print d["b"]
__________________________
barril barco becerro
__________________________
__________________________
__________________________

Sentencias condicionales __________________________


__________________________
La forma ms simple de un estamento condicional es un if __________________________
seguido de la condicin a evaluar, dos puntos (:) y en la
siguiente lnea e indentado, el cdigo a ejecutar en caso de _________________________
que se cumpla dicha condicin.
__________________________
if fav == manzana: if numero < 0: __________________________
print Tienes buen gusto! print Negativo
print Gracias elif numero > 0: __________________________
else: print Positivo
print Vaya, que lstima else: __________________________
print Cero
__________________________
__________________________

Bucles __________________________

Los bucles permiten ejecutar un mismo fragmento de cdigo un


__________________________
cierto nmero de veces, mientras se cumpla una determinada
condicin.
__________________________
_________________________
#!/usr/bin/python #!/usr/bin/python
while True: salir = False __________________________
ent = raw_input ("> ") while not salir:
if ent == "adios": entrada = raw_input()
__________________________
break if entrada == adios: __________________________
else: salir = True
print ent else: __________________________
print entrada
__________________________
Prctica 2.py __________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

for ... in __________________________


__________________________
__________________________
>>> s = ["a", "b", "c", "d",
"e", "f"] _________________________
>>> for letra in s: print
letra __________________________
...
a __________________________
b
c __________________________
d
e __________________________
f
>>> __________________________
__________________________

Funciones __________________________
__________________________
Las funciones se declaran de la siguiente forma:
__________________________
_________________________
def mi_funcion(param1, param2):
print param1 __________________________
print param2
__________________________
def mi_funcion(param1, __________________________
param2):
Esta funcion imprime los
__________________________
dos valores
__________________________
pasados como parametros
print param1 __________________________
print param2

Funciones __________________________
__________________________
#!/usr/bin/python def sumar (x, y):
def f(x, y): return x + y __________________________
"""esta es una funcion que
imprime los valores por print sumar (3,2) _________________________
referencia"""
x=x+ 3 def fun (x, y): __________________________
y.append(23) return x * 2, y * 2
print x, y __________________________
x = 22 a, b = fun (1,2)
y = [22] print a , b __________________________
f(x, y)
print x, y __________________________
__________________________
__________________________
Prctica 3.py Laboratorio Edumvil. M.C. Gabriel Gernimo C.

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Mdulos __________________________
__________________________
Para facilitar el mantenimiento y la lectura los programas demasiado
__________________________
largos pueden dividirse en mdulos, agrupando elementos
relacionados.
modulo.py programa.py
_________________________
__________________________
def mi_funcion(): #!/usr/bin/python
print Una funcion __________________________
import modulo
class MiClase: __________________________
def __init__(self): modulo.mi_funcin()
print Una clase __________________________
Prctica 4.py
print Un modulo #Gero$./prog.py
Un modulo
__________________________
Una funcion
#Gero$ __________________________

Mdulos __________________________
__________________________
Algunos mdulos por defecto
__________________________
os. Los mdulos de la distribucin por defecto de Python que engloba
funcionalidad relacionada al Sistema Operativo
_________________________
sys. Con funcionalidad relacionada con el mismo interprete de Python
__________________________
time. Se almacenan funciones para manipular fechas y horas.
__________________________
Sin embargo es posible utilizar la construccin from-import para
ahorrar el indicar el nombre del mdulo antes del objeto que interesa. __________________________
De esta forma se importa el objeto o los objetos que indiquemos al
espacio de nombres actual. __________________________
Ejemplo: Ejemplo:
__________________________
import os, sys, time from time import asctime
print time.asctime() print asctime() __________________________

Mdulos __________________________
__________________________
__________________________
A la hora de importar un mdulo Python recorre todos los directorios
indicados en la variable de entorno PYTHONPATH en busca de un _________________________
archivo con el nombre adecuado. El valor de la variable
PYTHONPATH se puede consultar desde Python mediante sys.path __________________________
>>> import sys
>>> sys.path __________________________

De esta forma para que nuestro mdulo estuviera disponible para todos los
__________________________
programas del sistema bastar con copiarlo a uno de los directorios indicados
en PYTHONPATH.
__________________________
__________________________
En el caso de que Python no encontrara ningn mdulo con el nombre
especificado, se lanzara una excepcin de tipo ImportError. __________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Entrada estndar __________________________


__________________________
__________________________
try:
edad = raw_input(Que edad tienes?\n) _________________________
dias = int(edad) * 365
print Has vivido + str(dias) + dias __________________________
except ValueError: __________________________
print Eso no es un numero
__________________________
__________________________
__________________________
__________________________

Parmetros de lnea de comando __________________________


__________________________

Para tener acceso a los parmetros de la lnea de ordenes, debemos


__________________________
importar el mdulo sys. _________________________
sys.argv[0] contiene siempre el nombre del programa tal como lo ha __________________________
ejecutado el usuario, sys.argv[1], si existe, sera el primer parmetro;
sys.argv[2] el segundo, y as sucesivamente. __________________________
import sys __________________________
if(len(sys.argv) > 1):
print Abriendo + sys.argv[1] __________________________
else:
print Debes indicar el nombre del archivo __________________________
__________________________

Archivos __________________________
__________________________
Los archivos en Python son objetos de tipo file creados mediante la funcin
open.
__________________________

Esta funcin toma como parmetros una cadena con la ruta al archivo a
_________________________
abrir, que puede ser relativa o absoluta; una cadena opcional indicando el __________________________
modo de acceso (si no se especifica se accede en modo lectura).
__________________________
__________________________
__________________________
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Archivos __________________________
El modo de acceso puede ser cualquier combinacin lgica de los siguientes
modos: __________________________
r: Modo lectura. El archivo tiene que existir previamente.
__________________________
w: Modo escritura. Si el archivo no existe se crea. Si existe, sobreescribe el
contenido.
_________________________

a: Modo aadir (escribir). Se comienza a escribir al final del archivo.


__________________________
b: binario. __________________________
+: Permite lectura y escritura simultneas. __________________________
U: Universal newline, saltos de lnea universales. Permite trabajar con __________________________
archivos que tengan un formato para los saltos de lnea que no coincide con
el de la plataforma actual (en Windows se utiliza el caracter CR LF, en Unix LF __________________________
y en Mac OS CR).
__________________________

Lectura de archivos __________________________


__________________________
Para la lectura de archivos se utilizan los mtodos read, readline y
realines. __________________________
read(): Devuelve una cadena con el contenido del archivo o bien el _________________________
contenido de los primeros n bytes, si se especifica el tamao mximo a
leer: __________________________
completo = f.read()
parte = f2.read(512) __________________________
readline(): Sirve para leer las lneas del fichero una por una. __________________________
readlines(): Lee todas las lneas del archivo y devolviendo una lista con __________________________
las lneas ledas.
__________________________
__________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Lectura de archivos __________________________


__________________________
if (len(sys.argv) > 1):
print Abriendo + sys.argv[1] __________________________
f=open (sys.argv[1], r+)
while true: _________________________
linea = f.readline()
if not linea: break __________________________
print linea,
else: __________________________
print Debe indicar el
archivo __________________________
__________________________
Prctica 5.py __________________________
__________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

import __________________________
__________________________
__________________________
Existen varios caminos para importar mdulos al
_________________________
cdigo. Accesando a las clases y funciones que
contiene dicho modulo.
__________________________
import mimodulo
__________________________
o una funcin del modulo ya cargado
mimodulo.funcion()
__________________________
una clase especifica de un modulo
from mimodulo import miclase __________________________
Importa cada una de las cosas del modulo
from mimodulo import *
__________________________
__________________________

import __________________________
__________________________
>>> from datetime import datetime __________________________
>>> the_time = datetime.now()
>>> the_time.ctime() _________________________
'Thu Sep 10 19:01:26 2013'
__________________________
>>> from math import *
8725.book Page 39 Friday, August 24, 2007 5:20 PM
>>> print pi __________________________
3.14159265359
>>> sin (20) __________________________
CHAPTER 2 EXPLORING PYTHON 39
0.91294525072762767
__________________________
>>> import random
Although the numbers that Listing 2-8 produces appear random, they are actually pseudo-
__________________________
>>> print
random, which random.randint
means they are chosen (1,6)
from a large mathematically generated sequence.
4
Occasionally you may need to repeat a sequence of pseudorandom numberswhen playing
__________________________
back a demo, for instance. You can tell the random module to start generating numbers from a
particular point in the sequence by calling the random.seed function. If you call it twice with the
same
8725.book Page value,August
38 Friday, it will24,
cause
2007 the
5:20 random
PM module to reproduce the same sequence of numbers.
Listing 2-9 demonstrates how the seed function can be used to create predictable sequences.

38 import
Listing 2-9. A Better Dice Simulator
CHAPTER 2 EXPLORING PYTHON
import random
__________________________
random.seed(100)
for roll in xrange(10): __________________________
Table 2-6. Some Classes in the datetime Module
print random.randint(1, 6)
print
Class "Re-seeded"
Description __________________________
random.seed(100)
timedelta Stores a difference between two times
for roll in xrange(10): _________________________
dateprint random.randint(1, 6)
Stores a date value

If you runStores
datetime datescript,
this small and time
youvalues __________________________
will see the same sequence of numbers, repeated twice.
Have a look at Table 2-7 for a few of the capabilities of the random module.
time Stores a time value
__________________________
Table 2-7. Some Functions in the random Module

Random Module
Function Description __________________________
You wontSeeds
be surprised to number
the random learn that the random module is used to generate random numbers,
generator
seed
although you maya random
be surprised
__________________________
randint Returns integertobetween
learn that
two the numbers it generates arent truly random.
values
Thats because computers arent actually capable of selecting something at random; they will
choice Selects a random element from a collection
do the same thing again given identical conditions. The numbers that random generates are __________________________
random Return which
pseudorandom, a float between 0 andare
means they 1 pulled from a very long sequence of numbers that
__________________________
appear random but will eventually repeat if you generate enough of them. Fortunately you can
use them in a game because nobody will notice if they repeat after a few billion times!
Summary
Random (or pseudorandom) numbers are very useful in games to stop them from getting
predictable. If a game has no random elements, players will eventually memorize all the
Weve seen that you can use boolean logic to make decisions in Python code. The if statement
sequences of actions, making it less fun (for most people).
takes a boolean expression, such as a > 3, and runs a code block only if that condition results
NOTAS DEL CURSO Lets write a short script to simulate ten throws of a standard six-sided die (Listing
in True. You can append an if statement with one or more else statements, which runM.C.
2-8).
their GABRIEL GERNIMO CASTILLO

code block only if the condition is False. Logic can be combined using the and and or opera-
Listing
tors, 2-8.
and canDice Simulator
be reversed using the not operator.
Functions are stored Python code, created with the def statement. When you define func-
import
tions, random
you specify a list of parameters, which is a list of the information that the function needs
for roll in xrange(10):
PYTHON - TURTLE&PYGAME

__________________________
Referencias
__________________________
__________________________
1.Python para todos. Ral Gonzlez Duque. Licencia Creative Commons.
http://mundogeek.net/tutorial-python/ _________________________
2. Python Programming. Wikibooks.org. 2012.
__________________________
3. Python Algorithms. Magnus Lie Hetland. Apress. 2010.
__________________________
4. Game Programming with Python. Sean Riley. Charles River Media. 2004.
__________________________
5. Invent Your Own Computer Games with Python. Al Sweigart. Licencia
Creative Commons. 2010. __________________________
__________________________
__________________________

__________________________
__________________________
__________________________

Python: _________________________
__________________________
Mdulo Pygame __________________________
M.C. Gabriel Gernimo Castillo __________________________
Laboratorio Edumvil
Universidad Tecnolgica de la Mixteca __________________________
gcgero@gmail.com
__________________________
__________________________

pygame __________________________
__________________________
__________________________
Pgina oficial http://www.pygame.org/
_________________________
Es una librera para la creacin de juegos basada en SDL.
>>> import pygame __________________________
>>> print pygame.ver
1.9.1release __________________________
>>>
__________________________
El paquete pygame contiene un conjunto de mdulos (de
cada dispositivo) que pueden ser usados de forma __________________________
independiente.
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



8725ch03.fm Page 43 Friday, September 14, 2007 3:48 PM

CHAPTER 3 INTRODUCING PYGAME 43


PYTHON - TURTLE&PYGAME

Some of the modules you will use in every game. You will always have some sort of display,
so the display module is essential, and you will definitely need some kind of input, whether it
is keyboard, joystick, or mouse. Other modules are less commonly used, but in combination
they give you one of the most powerful game creation tools around.

Mdulos en el paquete pygame


Table 3-1. Modules in the Pygame Package

Module Name Purpose


__________________________
pygame.cdrom Accesses and controls CD drives
pygame.cursors Loads cursor images __________________________
pygame.display Accesses the display
pygame.draw
pygame.event
Draws shapes, lines, and points
Manages external events
__________________________
_________________________
pygame.font Uses system fonts
pygame.image Loads and saves an image
pygame.joystick Uses joysticks and similar devices
pygame.key Reads key presses from the keyboard __________________________
pygame.mixer Loads and plays sounds
pygame.mouse
pygame.movie
Manages the mouse
Plays movie files
__________________________
__________________________
pygame.music Works with music and streaming audio
pygame.overlay Accesses advanced video overlays
pygame Contains high-level Pygame functions
pygame.rect Manages rectangular areas __________________________
pygame.sndarray Manipulates sound data
pygame.sprite
pygame.surface
Manages moving images
Manages images and the screen
__________________________
__________________________
pygame.surfarray Manipulates image pixel data
pygame.time Manages timing and frame rate
pygame.transform Resizes and moves images
* For complete documentation on the Pygame modules, see
www.pygame.org/docs/.

Resoluciones para el Display


Not all of the modules in Table 3-1 are guaranteed to be present on every platform. It is

__________________________
possible that the hardware the game is running on does not have certain capabilities, or that
required drivers are not installed. If this is the case, Pygame will set the module to None, which

__________________________
__________________________
>>> import pygame
_________________________
>>> pygame.init() __________________________
(6,0) __________________________
>>> pygame.display.list_modes()
[(1280,800), (1024,768), (832,624), __________________________
(800,600), (720,400), (640,480),
(640,400), (640,350)] __________________________
__________________________
__________________________

Ejemplo: Colocar imagen en __________________________


#!/usr/bin/python
pantalla __________________________
import pygame
from pygame.locals import *
from sys import exit __________________________
imagen = "plato.jpg"
_________________________
pygame.init()

pantalla = pygame.display.set_mode
__________________________
((640,480), 0, 32)
pygame.display.set_caption ("IMAGEN") __________________________
fondo = pygame.image.load(imagen).convert
() __________________________
while True:
for evento in pygame.event.get():
__________________________
if evento.type == QUIT:
exit() __________________________
pantalla.blit(fondo, (0,0))

pygame.display.update()
Prctica 5.py __________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

pygame.display __________________________
__________________________
__________________________

pantalla = pygame.display.set_mode((640, _________________________


480), 0, 32)
pygame.display.set_caption("IMAGEN") __________________________
__________________________
El despliegue es una ventana en la computadora o una entrada __________________________
en la pantalla, pero siempre se accede por medio un objeto de
superficie de pygame. El llamado a pygame.display.set_mode __________________________
retorna dicha superficie que representa la ventana en la
computadora.
__________________________
__________________________

pygame.display __________________________
__________________________
__________________________
Sus parmetros
8725ch03.fm son:
Page 47 Friday, September 14, 2007 3:48 PM
_________________________
1. La dupla que contiene el ancho y alto. Este es el requerido, los __________________________
siguientes son opcionales. CHAPTER 3 INTRODUCING PYGAME 47

__________________________
2. Bandera
morequedetailse usaOpening
in the para ela Display
modo section
de despliegue. Se puede
later in this chapter. We wont be enabling any
combinarof las
thesebanderas conPygame
flags for this first el operador ORvalue
script, so the __________________________
(|).we give for flags is just 0, which is also the
default.
3. Profundidad. Especifica la cantidad de bits usados para __________________________
Table 3-2. Flags for pygame.display.set_mode
almacenar los colores en el despliegue.
8725ch03.fm Page 47 Friday, September 14, 2007 3:48 PM
Flag Purpose __________________________
FULLSCREEN Creates a display that fills the entire screen.
DOUBLEBUF Creates a double-buffered display. Recommended for HWSURFACE or OPENGL.
__________________________
CHAPTER 3 INTRODUCING PYGAME 47
HWSURFACE Creates a hardware-accelerated display (must be combined with the
FULLSCREEN flag).
more detail in the Opening a Display section later in this chapter. We wont be enabling any
OPENGL Creates an OpenGL renderable display.

Banderas y Bit de profundidad


of these flags for this first Pygame script, so the value we give for flags is just 0, which is also the
default. RESIZABLE Creates a resizable display.
__________________________
NOFRAME Removes the border and title bar from the display.
Table 3-2. Flags for pygame.display.set_mode

Flag Purpose
__________________________
The next parameter specifies the depth of the display surface, which is the amount of bits
FULLSCREEN Creates a display that fills the entire screen.
used to store colors in the display. A bit, or binary digit, is the most fundamental unit of storage
DOUBLEBUF in aCreates
computer. Bits have exactly
a double-buffered two potential
display. values,
Recommended for 1HWSURFACE
or 0, andorare arranged in memory as
OPENGL.
__________________________
HWSURFACE groups of 8. A group of 8 bits is called a (must
byte. Dont worry with
if this sounds like techno-babble to
Creates a hardware-accelerated
you;FULLSCREEN
Python tends
display be combined the
flag). to hide this kind of thing from the programmer. We will use the value 32 for _________________________
OPENGL ourCreates
bit depth becauserenderable
an OpenGL it gives us display.
the most colors; see Table 3-3 for other potential bit-depth val-

RESIZABLE
ues. If you dont supply a value for the depth or set it to 0, Pygame will use the depth of your
Creates a resizable display.
__________________________
desktop.
NOFRAME Removes the border and title bar from the display.
__________________________
Table 3-3. Bit-Depth Values

The next parameter


Bit Depth specifies
Number the depth of the display surface, which is the amount of bits
of Colors __________________________
used to store colors in the display. A bit, or binary digit, is the most fundamental unit of storage
8 bits 256 colors, chosen from a larger palette of colors
in a computer. Bits have exactly two potential values, 1 or 0, and are arranged in memory as
groups of 15 bits
8. A group of32,768
8 bits colors,
is calledwith a spare
a byte. bitworry if this sounds like techno-babble to
Dont
__________________________
you; Python tends to hide thiscolors
kind of thing from the programmer. We will use the value 32 for
16 bits 65,536
our bit depth because it gives us the most colors; see Table 3-3 for other potential bit-depth val- __________________________
ues. If you24 bits supply
dont 16.7 million
a value forcolors
the depth or set it to 0, Pygame will use the depth of your
desktop. 32 bits 16.7 million colors, with a spare 8 bits __________________________
* It is possible to have other bit depths, but these are the most
Table 3-3. Bit-Depth
common.Values
Bit Depth Number of Colors
8 bits 256 colors, chosen from a larger palette of colors

NOTAS DEL
15 bits Note colors,
CURSO
32,768 with Pygame
Sometimes is unable to give us the exact display we ask for. It may be that the graphics M.C. GABRIEL
a spare bit GERNIMO CASTILLO

16 bits card doesnt
65,536 support the features we are requesting. Fortunately, Pygame will choose a display that is com-
colors
24 bits patible with thecolors
16.7 million hardware and emulates the display we actually asked for. Thank you, Pygame!
32 bits 16.7 million colors, with a spare 8 bits
* It is possible to have other bit depths, but these are the most
PYTHON - TURTLE&PYGAME

Dibuja lineas en pantalla __________________________


#!/usr/bin/python __________________________
import pygame
from pygame.locals import *
from sys import exit __________________________
pygame.init()
color = (50,150,200); color1 = (255,230,0); color2 = (10,10,255)
_________________________
negro = (0,0,0); blanco = (255,255,255)

pantalla = pygame.display.set_mode ((800,600))


__________________________
pygame.display.set_caption ("lineas");
while True: __________________________
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit() __________________________
sys.exit()
pantalla.fill (color)
pygame.draw.aaline (pantalla,color1,(0,0),(799,599))
__________________________
pygame.draw.aaline (pantalla,color2,(799,1),(1,599))
pygame.draw.line (pantalla,(255,255,0),(0,300),(799,300)) __________________________
pygame.draw.line (pantalla, color1, (400,0),(400,799))
pygame.draw.circle(pantalla, (255,255,0), (400,300), 40)
pygame.display.flip() __________________________

Dibuja lineas en pantalla y


__________________________
mueve cuadro
__________________________
ANEXAR. __________________________
_________________________
En que parte del cdigo
anterior?? __________________________
x,y=10,20
__________________________
if evento.type == KEYDOWN:
if evento.key == K_v: __________________________
area.move (x,y)
x+=10;y+=10
__________________________
rect = pygame.Rect(x,y,30,30)
area= pygame.Rect(rect) __________________________
pygame.draw.rect (pantalla, negro , rect,0)
__________________________

Mueve una pelota con


__________________________
#!/usr/bin/python cualquier evento
import pygame,sys
pygame.init() __________________________
tam = ancho, alto = 320, 240
velocidad = [2, 2]
__________________________
negro = (0, 0, 0)
pygame.display.set_caption ("Mueve - Pelota"); _________________________
pantalla = pygame.display.set_mode(tam)
pelota = pygame.image.load("ball.bmp")
recpelota = pelota.get_rect()
__________________________
while True:
for event in pygame.event.get(): __________________________
if event.type == pygame.QUIT:
sys.exit()
recpelota = recpelota.move(velocidad) __________________________
if recpelota.left < 0 or recpelota.right > ancho:
velocidad[0] = -velocidad[0]
if recpelota.top < 0 or recpelota.bottom > alto:
__________________________
velocidad[1] = -velocidad[1]
__________________________
pantalla.fill(negro)
pantalla.blit(pelota, recpelota)
pygame.display.flip()
__________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Ejemplo: Coloca imagen en pantalla y __________________________


cambia imagen del curso
#!/usr/bin/python __________________________
import pygame
from pygame.locals import *
from sys import exit
__________________________
imagen = "plato.jpg"; mouse = "Near.png" _________________________
pygame.init()
pantalla = pygame.display.set_mode ((640,480), 0, 32)
pygame.display.set_caption ("IMAGENES") __________________________
fondo = pygame.image.load(imagen).convert()
cursor = pygame.image.load (mouse).convert_alpha()
__________________________
while True:
for event in pygame.event.get():
if event.type == QUIT:
__________________________
exit()
x, y = pygame.mouse.get_pos() __________________________
x -= cursor.get_width()/2
y -= cursor.get_height()/2
pantalla.blit(fondo, (0,0)) Prctica 6.py __________________________
pantalla.blit (cursor, (x, y))

pygame.display.update()
__________________________

Desplegando imgenes __________________________


__________________________
Se usa la funcin load de pygame.image para cargar imagenes de fondo y
del cursor del mouse. fondo = __________________________
pygame.image.load(imagen).convert()
cursor = pygame.image.load (mouse).convert_alpha _________________________
()
__________________________
Se leen los archivos y se almacenan en una superficie en memoria, no se
muestran hasta que se manden a dibujar. __________________________
convert() convierte la imagen en el mismo formato del display, y
__________________________
convert_alpha() hace que la porcin de imagen sea traslcida o
completamente invisible. __________________________
el miembro blit del objeto surface de la funcin, toma la imagen
__________________________
fuente y la posicin destino (esquina izquierda superior de la pantalla)
pantalla.blit(fondo, (0,0)
pantalla.blit (cursor, (x, y))
__________________________

Desplegando imgenes __________________________


__________________________
__________________________
_________________________
Cuando construimos una imagen a travs de blits
sobre la superficie de la pantalla, no la vemos de __________________________
forma inmediata. Esto es por que Pygame primero
construye la imagen en un buffer alterno, lo cual lo __________________________
hace invisible en memoria. El llamado a
pygame.display.update() es necesario para __________________________
garantizar que sean mostradas. __________________________
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Ejemplo: Mensaje pasando en la __________________________


#!/usr/bin/python
import pygame
pantalla __________________________
from pygame.locals import *
from sys import exit
__________________________
pygame.init()
imagen = "plato.jpg"
mensaje = " Demostracion de mensaje con scrolly" _________________________
pantalla = pygame.display.set_mode ((640,480), 0, 32)
pygame.display.set_caption ("MENSAJE SCROLLY")
fuente = pygame.font.SysFont ("arial",60);
__________________________
texto = fuente.render (mensaje, True, (0,0,255))
fondo = pygame.image.load(imagen).convert()
__________________________
px = 0; py = (500 - texto.get_height()) / 2
while True:
for event in pygame.event.get():
__________________________
if event.type == QUIT:
exit()
pantalla.blit(fondo, (0,0))
__________________________
px -=1
if px < -texto.get_width():
px = 0
__________________________
pantalla.blit(texto,(px,py))
8725ch03.fmpantalla.blit (texto,(px+texto.get_width(),
Page 51 Friday, September 14, 2007 3:48 PM py))
pygame.display.update()
Prctica 6.1.py __________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

CHAPTER 3 INTRODUCING PYGAME 51

Eventos estndares
Table 3-4. Standard Events
__________________________
Event Purpose Parameters
QUIT User has clicked the close button. none __________________________
ACTIVEEVENT Pygame has been activated or hidden. gain, state
KEYDOWN Key has been pressed. unicode, key, mod __________________________
KEYUP Key has been released. key, mod
MOUSEMOTION Mouse has been moved. pos, rel, buttons
_________________________
MOUSEBUTTONDOWN Mouse button was pressed. pos, button
__________________________
MOUSEBUTTONUP Mouse button was released. pos, button
JOYAXISMOTION Joystick or pad was moved. joy, axis, value __________________________
JOYBALLMOTION Joy ball was moved. joy, ball, rel
JOYHATMOTION Joystick hat was moved. joy, hat, value __________________________
JOYBUTTONDOWN Joystick or pad button was pressed. joy, button
JOYBUTTONUP Joystick or pad button was released. joy, button
__________________________
VIDEORESIZE
VIDEOEXPOSE
Pygame window was resized.
Part or all of the Pygame window was exposed.
size, w, h
none
__________________________
USEREVENT A user event has occurred. code
__________________________
Lets write a simple Pygame script to display all the events that are generated. Listing 3-2
uses pygame.event.wait() to wait for a single event. As soon as it gets one, it turns it into a

Lluvia de crculos
string with str and adds it to a list. The rest of the code displays the new event along with as
many previous events as it can fit on the screen. It uses the font module to display text (which
we will discuss later).
#!/usr/bin/python __________________________
import pygame,sys, random
pygame.init()
__________________________
Tip If blanco
negro =(0,0,0); you change the fill color in Listing 3-2 to (0,0,0) and the color of the font to (0, 255, 0), it will look a
= (255,255,255)
pantalla = pygame.display.set_mode ((800,600))
little like Matrix-style code. You may have to use your imagination a little!
pygame.display.set_caption ("Lluvia de circulos"); __________________________
lista=[]
for i in range (20):
x=random.randrange(0,800) _________________________
y=random.randrange(0,800)
r=random.randrange(1,3)
lista.append([x,y,r]) __________________________
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT: __________________________
pygame.quit(); sys.exit()
pantalla.fill (negro)
for i in range (len(lista)): __________________________
x,y, radio=lista[i][0],lista[i][1], lista[i][2]
pygame.draw.circle(pantalla,blanco,(x,y),radio)
lista[i][1]+=1 __________________________
if lista[i][1]>590:
y=random.randrange(-50,-10)
lista[i][1] = y __________________________
x=random.randrange(0,800)
lista[i][0] = x
pygame.display.flip() __________________________
pygame.quit ()

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Colocando una imagen bajo la lluvia de


crculos __________________________
#!/usr/bin/python
import pygame,sys, random
from pygame.locals import *
while True: __________________________
for evento in pygame.event.get():
from sys import exit

pygame.init()
if evento.type == pygame.QUIT:
pygame.quit(); sys.exit() __________________________
pulsada = pygame.key.get_pressed()
negro = (0,0,0); blanco = (255,255,255)
pantalla = pygame.display.set_mode ((800,600))
if pulsada[K_UP]: mario.rect.top -= 0
if pulsada[K_DOWN]: mario.rect.top += 0 _________________________
pygame.display.set_caption ("Mario");
if pulsada[K_LEFT]: mario.rect.left -= 5
imagen = pygame.image.load("mario.png")
x = 100 ;y = 500
if pulsada[K_RIGHT]: mario.rect.left += 5
for rectangulo in listarect: __________________________
pygame.draw.rect(pantalla, (1, 0, 0), rectangulo )
mario = pygame.sprite.Sprite()
mario.image = imagen
if (rectangulo.colliderect(mario)):
mario.rect.left = oldx; mario.rect.top = oldy
__________________________
mario.rect = imagen.get_rect()
c+=1; print ("colision ",c)
oldx = mario.rect.top = y
oldx = mario.rect.left
oldy = mario.rect.top
__________________________
oldy = mario.rect.left = x
reloj.tick(15)
reloj = pygame.time.Clock()
lista=[]; listarect=[]
pantalla.fill (blanco)
__________________________
for i in range (20):
pantalla.blit(mario.image, mario.rect)
x=random.randrange(0,800)
y=random.randrange(0,800)
listarect=[] __________________________
r=random.randrange(1,3)
lista.append([x,y,r])
listarect.append ( pygame.Rect (x-r,y+r,2*r,2*r) ) __________________________
c=0

Colocando una imagen bajo la lluvia de


crculos __________________________
__________________________
__________________________
for i in range (len(lista)):
x,y, radio=lista[i][0],lista[i][1], lista[i][2]
_________________________
pygame.draw.circle(pantalla,negro,(x,y),radio)
lista[i][1]+=1
if lista[i][1]>590:
__________________________
y=random.randrange(-50,-10)
lista[i][1] = y __________________________
x=random.randrange(0,800)
lista[i][0] = x
listarect.append (pygame.Rect (x-radio,y+radio,2*radio,2*radio)) __________________________
pygame.display.flip()
pygame.quit () __________________________
__________________________
__________________________

Mario bajo la lluvia de crculos, con imagen y


msica de fondo __________________________
__________________________
Para esto aumentamos las siguientes instrucciones:

pygame.mixer.music.load ("mario_main.mp3")
__________________________
pygame.mixer.music.play (-1,0.0)
_________________________
mar="mario.png"
fon="fondo_mario.jpg"
fondo = pygame.image.load(fon).convert() __________________________
imagen = pygame.image.load(mar).convert_alpha()

Cuando chequemos el evento de salida detenemos la __________________________


msica:

if evento.type == pygame.QUIT:
__________________________
pygame.mixer.music.stop()
pygame.quit() __________________________
sys.exit()

Y para mandar a pantalla: __________________________


pantalla.blit(fondo,(0,0))
pantalla.blit(mario.image, mario.rect) __________________________
Laboratorio Edumvil. M.C. Gabriel Gernimo C.

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Mueve una nave en la pantalla __________________________


#!/usr/bin/python
import pygame
from pygame.locals import *
__________________________
from sys import exit

pygame.init()
__________________________
nave = "nave.jpg"
pantalla = pygame.display.set_mode ((640,480), 0, 32)
pygame.display.set_caption ("Mueve una nave") _________________________
nave1 = pygame.image.load(nave).convert()
x, y = 0, 0; mx, my = 0,0
while True: __________________________
for event in pygame.event.get():
if event.type == QUIT:
exit()
if event.type == KEYDOWN:
__________________________
if event.key == K_LEFT: mx = -1
if event.key == K_RIGHT: mx = +1
if event.key == K_UP: my = -1
__________________________
if event.key == K_DOWN: my = +1
elif event.type == KEYUP:
if event.key == K_LEFT: mx = 0 __________________________
if event.key == K_RIGHT: mx = 0
if event.key == K_UP: my = 0
if event.key == K_DOWN: my = 0 __________________________
x+= mx; y+= my

Prctica 8.py __________________________


pantalla.fill ((0,0,0))
pantalla.blit(nave1, (x,y))
pygame.display.update()

#!/usr/bin/python
import pygame Mueve dos naves en la pantalla
from pygame.locals import *
from sys import exit
__________________________
pygame.init()
nave = "nave.jpg" __________________________
pantalla = pygame.display.set_mode ((640,480), 0, 32)
pygame.display.set_caption ("Mueve dos naves")
nave1 = pygame.image.load(nave).convert() __________________________
nave2 = pygame.image.load(nave).convert()
x, y = 0, 0; r, s = 450, 10
mx, my , mr, ms = 0,0,0,0
while True:
_________________________
for event in pygame.event.get():
if event.type == QUIT: exit()
if event.type == KEYDOWN:
__________________________
if event.key == K_a: mr = -1
if event.key == K_z: mr = +1
if event.key == K_s: ms = -1 __________________________
if event.key == K_x: ms = +1
if event.key == K_LEFT: mx = -1
if event.key == K_RIGHT: mx = +1 __________________________
if event.key == K_UP: my = -1
if event.key == K_DOWN: my = +1
__________________________
x+= mx; y+= my;r+= mr;s+= ms
elif event.type == KEYUP: pantalla.fill ((0,0,0))
if event.key == K_a: mr = 0 pantalla.blit(nave1, (x,y))
if event.key == K_z: mr = 0 pantalla.blit(nave2, (r,s))
if event.key == K_s: ms = 0
if event.key == K_x: ms = 0
pygame.display.update() __________________________
if event.key == K_LEFT: mx = 0
if event.key == K_RIGHT: mx = 0
if event.key == K_UP: my = 0 Prctica 9.py __________________________
if event.key == K_DOWN: my = 0 Laboratorio Edumvil. M.C. Gabriel Gernimo C.

Mueve dos naves en la pantalla con


#!/usr/bin/python
import pygame
imagen de fondo __________________________
from pygame.locals import *
from sys import exit
pygame.init() __________________________
nave = "nave.png"
estrella = "e_muerte.jpg"
pantalla = pygame.display.set_mode ((640,480), 0, 32)
pygame.display.set_caption ("NAVES")
__________________________
fondo = pygame.image.load(estrella).convert()
nave1 = pygame.image.load(nave).convert_alpha()
nave2 = pygame.image.load(nave).convert_alpha()
_________________________
x, y = 0, 0; r, s = 450, 10
mx, my , mr, ms = 0,0,0,0
while True: __________________________
for event in pygame.event.get():
if event.type == QUIT: exit()
if event.type == KEYDOWN: __________________________
if event.key == K_a: mr = -1
if event.key == K_z: mr = +1
if event.key == K_s: ms = -1
if event.key == K_x: ms = +1
__________________________
if event.key == K_LEFT: mx = -1
if event.key == K_RIGHT: mx = +1
if event.key == K_UP: my = -1
x+= mx;y+= my; r+= mr;s+= ms
pantalla.fill ((0,0,0))
__________________________
if event.key == K_DOWN: my = +1 pantalla.blit(fondo,(0,0))
elif event.type == KEYUP:
if event.key == K_a or event.key == K_z: mr = 0
pantalla.blit(nave1, (x,y))
pantalla.blit(nave2, (r,s))
__________________________
if event.key == K_s or event.key == K_x: ms = 0 pygame.display.update()
if event.key == K_LEFT or event.key == K_RIGHT : mx = 0
if event.key == K_UP or event.key == K_DOWN: my = 0 __________________________
Prctica 10.py

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO



PYTHON - TURTLE&PYGAME

Referencias __________________________
__________________________
__________________________
1.Making Games with Python & Pygame. Al Sweigart. Licensed under a
Creative Commons.2012. _________________________
2. Begin Game Development with Python and Pygame. Will McGugan. __________________________
Apress. 2007.
__________________________
2. The Art of Computer Game Design. Chris Crawford.
__________________________
__________________________
__________________________
__________________________

NOTAS DEL CURSO M.C. GABRIEL GERNIMO CASTILLO

Вам также может понравиться