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

Ing. Alfonso Palomares alfpalomares en gmail.com
Mar Nov 16 10:08:05 ART 2010


2010/11/16 Francisco Falcon <fdfalcon en gmail.com>

> 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
>
>
>
Excelente Franciso!
Muy bueno para pasar el rato jajaja!



> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101116/12198135/attachment.html>


More information about the pyar mailing list