连接为:http://www.pythonchallenge.com/pc/return/italy.html
————————————————————————————————————————
这一关是一个面包,下面有个图片,看看源代码:
标题是:work around
注释:
<!-- remember: 100*100 = (100+99+99+98) + (... -->
还有一张图片,
是一个长条形(1*10000),我们保存下来。
————————————————————————————————————
不懂如何做。百度一下:原来是让我们把这个长条学面包一样做成一个100*100的图片,那么关键就是如何把图片来做成正方形。
根据注释,那就是选择一个方向
——————————————————————————————————————————————————
from PIL import Image,ImageDraw
#计算每圈的长度,存到列表之中
def xy_nums( org_x ):
datalist = []
while org_x>0:
datalist.append(org_x)
datalist.append(org_x-1)
datalist.append(org_x-1)
datalist.append(org_x-2)
org_x=org_x-2
return datalist
#画图函数
def paintimg(im,nim,datalist):
#右,下,左,上,四个方向
directs = [(1, 0), (0, 1), (-1, 0), (0, -1)]
x, y= -1, 0
count=0
#循环次数为转圈段数
for i in range(len(datalist)):
#选择转弯方向
d=directs[i%4]
#每个方向上面画图
for j in range(datalist[i]):
x =x+d[0]
y = y+d[1]
nim.putpixel((x,y), im.getpixel((count,0)))
count+=1
nim.save('wire_r.png')
if __name__=='__main__':
org_x = 100
im = Image.open('wire.png')
nim = Image.new('RGB', (100, 100), 0)
datalist=xy_nums(100)
paintimg(im,nim,datalist)
print('Done!')
————————————————————————————————————————————————————————
完成这一关使我很难过,因为实在不知道如何绕圈,后来百度了一下。发现我看错(-。-;),,绕圈的函数也是不会写,后来参考了别人的代码,实现了四个方向,要是我自己写,不知道还要等好久,,哎。
最终结果为;,改变网址,得到:http://www.pythonchallenge.com/pc/return/cat.html
提示是:
and its name is uzi. you'll hear from him later.
所以下一关为:http://www.pythonchallenge.com/pc/return/uzi.html
吃饭,吃饭!