jueves, 17 de enero de 2008

pythonchallenge


''' ENERO 13'''

No se programar, no se nada de python pero ahi voy en el 5to nivel, tratando de aprender un poco de python y enviciandome de nuevo.
Espero hacer unos 15 o 20 niveles y me acuesto :p

Luego les cuento ...

aqui voy:
http://www.pythonchallenge.com/pc/def/peak.html

http://www.pythonchallenge.com/forums/viewtopic.php?t=8


''' ENERO 14 '''

Bueno ya pase el 5 y el 6, voy a poner mi codigo del 6 porque me quedo bonito pa no saber manejar archvios .zip en python.
Estoy en aprendizaje:

http://www.pythonchallenge.com/pc/def/channel.html

codigo para pasar el nivel 6:

{{{
import zipfile,re,sys
archivo="90052"
file = zipfile.ZipFile("./channel.zip", "r")
comentarios=[]
numero=re.compile("(\d+)").findall
while True:
try:
s=file.read(archivo+".txt")
a=numero(s)
archivo=a[0]
comentarios.append(archivo)
except IndexError:
for name in comentarios:
print file.getinfo(name+".txt").comment,
sys.exit()
}}}

Y salida en pantalla, toma exactamente los comentarios que existen, todo gracias al Try/except

{{{
nando@debian:~/python/retos/channel$ python seis.py
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * *
* * O O O O X X Y Y Y Y G G G G E E E E E E N N N N * *
* * O O O O X X X X X X Y Y Y Y Y Y G G G G E E E E E E N N N N * *
* * O O O O X X X X X X Y Y Y Y Y G G G G E E N N N N * *
* * O O O O O O O O X X X X Y Y G G G E E E E E N N N N * *
* * O O O O O O O O X X X X Y Y G G G E E E E E N N * *
* * O O O O X X X X X X Y Y Y Y Y G G G G E E N N * *
* * O O O O X X X X X X Y Y Y Y Y Y G G G G E E E E E E N N * *
* * O O O O X X Y Y Y Y G G G G E E E E E E N N * *
* * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
nando@debian:~/python/retos/channel$
}}}

Si alguien encuentra una mejor forma de hacerlo, me dice:
basicamente lo que hay que hacer es buscar en un archivo un numero que significa el nombre de otro archivo, luego abrir ese y asi sucesivamente, pero al tiempo ir organizandolos para luego sacarle a todos esos archivos los comentarios. la cuestion es que los archivos estan en un .zip, por eso hay que usar el modulo para manejo de archivos .zip de python.
sigo aqui ...

Como me gusto tambien el nivel 7, lo pongo aqui, jeje

Codigo nivel 7:

{{{import Image
im = Image.open("oxygen.png")
print "La imagen es de: ", im.size

#Busque pixeles por toda la imagen en orden, hasta que alguno sea grisaseo, cuando esto pase, imprimalo como caracter
#Se asume que el mensaje es la franja gris :)

for x in range(0,im.size[0],7):
for y in range(0,im.size[1],7):
pixel=im.getpixel((x,y))
if pixel[2]==pixel[1]==pixel[0]:
print chr(pixel[0]),

#Luego de ver el resultado, tomamos los numeros que nos dan y los imprimimos como caracteres
print "\n"
print "La respuesta al proximo nivel es: ",
mensaje=[105,110,116,101,103,114,105,116,121]
for i in range(len(mensaje)):
print chr(mensaje[i]),

print "\n"
}}}

y asi se ve:

{{{nando@debian:~/python/retos$ python siete7.py
La imagen es de: (629, 95)
s m � � a � � r t g u y , y o u m a d e i t . t h e n e x t l e v e l i s [ 1 0 5 , 1 1 0 , 1 1 6 , 1 0 1 , 1 0 3 , 1 1 4 , 1 0 5 , 1 1 6 , 1 2 1 ]

La respuesta al proximo nivel es: i n t e g r i t y

nando@debian:~/python/retos$
}}}

Resulto muy interesante este nivel, habia que dedicarle tiempo para pensar como encontrar una franja gris en una imagen de color, la respuesta es cuando
R,G,B estan en iguales cantidades ;)

''' ENERO 15 ''', son las 00:15

Llegue como hasta el nivel 11 de los retos de python, ya se estaban enfocando mucho en los modulos de imagenes y parecidos y no me llama tanto la atencion
Sin embargo aprendi unas cuantas cositas ;)

Lo que sigue es continuar aprendiendo de a poquitos y usandolo donde lo requiera.

La invitacion va para los que que quieran aprender un poco de python, no hay mejor forma de aprender que jugando ''wargames''.
ahí les dejo la duda: http://www.pythonchallenge.com/

------------------------------
------------------------------

1 comentario:

Anónimo dijo...

Spoiler maldito

Entradas populares