[pyar] Curva de Hilbert en Python, en un tweet (<= 140 caracteres)

Francisco Falcon fdfalcon en gmail.com
Mar Nov 16 02:28:49 ART 2010


Buenas,

Tomé de Wikipedia la implementación en Python de la Curva de Hilbert [
http://en.wikipedia.org/wiki/Hilbert_curve], y me propuse tratar de
reducirla para que quepa en un tweet (es decir, el código debería tener una
longitud máxima de 140 caracteres). La idea era utilizar el módulo
turtlepara dibujar, tal como lo hace la implementación que figura en
Wikipedia.

Para lograrlo, tuve que:
* Abusar de sentencias compuestas utilizando punto y coma.
* Prescindir del método right() del módulo turtle para girar 90/-90 grados a
derecha; lo reemplacé por giros a izquierda de 270/-270 grados.
* Meter saltos de línea estilo Unix (1 byte), a pesar de que estaba
laburando en Windows (en el cual los saltos de línea ocupan 2 bytes).
* Simplificar varias cositas, desde el condicional que corta la recursión
hasta la forma de importar los métodos que necesito del módulo turtle.

El resultado final fue el siguiente, utilizando 137 caracteres, por lo que
me sobraron 3:

from turtle import *
l=left
f=forward
def h(n,a):
 if
n:n-=1;l(a*3);h(n,-a);f(4);l(a);h(n,a);f(4);h(n,a);l(a);f(4);h(n,-a);l(a*3)
h(6,90)


Lo probé sobre Windows, con Python 2.5.

Es una pavada, pero me resultó divertido hacerlo.
Si alguien se copa y hace una implementación más corta, bienvenida sea!

Saludos,
Francisco
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101116/10f8271c/attachment.html>


More information about the pyar mailing list