进入14关,看到了一个面包,肚子不争气的饿了。。。
言归正传,除了这个面包还看到了一张条纹图案,不明觉厉。
然后查看源代码,看到了一行注释:
<!-- remember: 100*100 = (100+99+99+98) + (... -->
然而并不知道这样分解是什么意思,将两张图片下载下来后发现那张条纹图案是被“折叠”为正方形的长条图案。
再看看题目,walk around,顿时提示有了意义:
100*100就是图片的全部像素
而(100+99+99+98)不就是100*100图像的最外围一层像素嘛
于是明白了题目是要我们把这张长条从外往里铺满成一张完整的图片啊,于是上代码:
from PIL import Image
img=Image.open('wire.png')
print img.size
def decode(source):
mImage=Image.new(source.mode,(100,100))
left,top,right,bottom=0,0,99,99
dx,dy=1,0
x,y=0,0
for i in range(10000):
print x,y
mImage.putpixel((x,y),source.getpixel((i,0)))
if(x==bottom and dx==1):
dx=0
dy=1
left+=1
if(y==right and dy==1):
dx=-1
dy=0
bottom-=1
if(x==top and dx==-1):
dx=0
dy=-1
right-=1
if(y==left and dy==-1):
dx=1
dy=0
top+=1
x+=dx
y+=dy
return mImage
decode(img).show()
结果出来一张猫的图片,将网址替换为cat,http://www.pythonchallenge.com/pc/return/cat.html,然后我们看到了这张猫的生活照,真心呆萌!
上面提示我们它的名字是uzi,替换网址为 http://www.pythonchallenge.com/pc/return/uzi.html,进入下一关!
花絮:
1.顺逆时针其实都可以,首先顺时针出来的猫是倒着的,于是将代码改为了逆时针
2.那个面包不仅提示你的肚子饿,也会提示你答案要把转圈圈才能出来:)