python挑战之level 14

连接为: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

吃饭,吃饭!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值