小言_互联网的博客

有趣的Python Challenge编程解谜游戏第16关

313人阅读  评论(0)

**有趣的Python Challenge编程解谜游戏第16关**

介绍

游戏介绍

平时自己学python,大家肯定很是无聊,推荐一个很早之前的网页版python闯关游戏——Python Challenge,虽然说这个网站很早了,但是很有意思,你会发现这些游戏一点也不简单,基本都需要通过编程来解决……

有意思的是,这是个解谜游戏,所以需要你细心去发现线索,破解谜底,并且考察的知识量也不是很小,很有意思。

游戏链接:http://www.pythonchallenge.com/

界面是这样的:

点击图中Click here to get challenged开始挑战。

全解(持续更新)

Python challenge 全解(持续更新中,建议收藏)

重点必看

第8关我们得到了一个账号和密码:huge.file,这个需要牢牢记住,因为后面的关卡,基本都需要登录。

第16关


查看源代码:


<html>
<head>
  <title>let me get this straight</title>
  <link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<br><center>
<img src="mozart.gif"><br>
</body>
</html>

啥也没有。。
看来这一关就只能是在图片和标题中寻找线索了。。。
标题的意思一般是 让我弄清楚 。但是在这里,我们应该是从字面意思来理解,就是把什么东西拉直的意思,图片里面可以拉直的也许就是这些颜色不同的像素了。

from PIL import Image
    img = Image.open("mozart.gif")
    #获得像素点
    imgs=[im.getpixel((x, 0)) for x in range(im.size[0])]
    for i in range(len(imgs)):
        print(line[i],end=" ")

我们先看一下第一行的像素,

……………… 59 60 60 249 195 195 195 195 195 252 88 48……………………

大家可以看到这里面出现了5个195,这就是那个显眼的紫色部分,事实上,每一行都有一段,都是5个像素的长度。。其实就是把紫色都拉到左边来,紫色左边的移动到右边去:

img = Image.open("mozart.gif")
for y in range(img.size[1]):
    #获得所有像素点
    imgs=[img.getpixel((x, y)) for x in range(img.size[0])]
    b=imgs.index(195)
    imgs=imgs[b:]+imgs[:b]
    #重新排列所有像素点
    [img.putpixel((x, y),imgs[x]) for x in range(len(imgs))]
img.show()

得到答案:

得到了单词romance,替换得到了正确的url:

结果链接

http://www.pythonchallenge.com/pc/return/romance.html

第17关预告


图片里面能看见什么熟悉的??

最后,大家不妨关注一下可怜的我。。


转载:https://blog.csdn.net/weixin_46283214/article/details/105491472
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场