TimothyQiu's Blog

keep it simple stupid

CoolShell 解题记

分类:技术

吃完饭在微博上看到 CoolShell 上发了一个解谜游戏,类似于很久以前很流行的那种黑客游戏。咱自然是要试试的啦~由于中午在父母家吃饭,电脑上没有任何 IDE 之类的,于是只能用在线 IDE 了。

严重剧透请注意!

第一关对于听说过 BrainFuck 的人都木有难度,正文里也有明显的提示。代码可以直接在 IDEOne 运行。

第二关是联想题:

尽管后者我知道是《银河系漫游指南》的梗,但是前者我盯着看了半天没看出来,尝试了各种方法也没有线索……正在濒临崩溃之际,小 Q 童鞋跑过来扫了一眼屏幕,然后立马告诉我「2×3=6、3×6=18……」。我看了看……哦,好像确实哦……于是更加崩溃了 Orz...

第三关是关于 Dvorak 键盘布局的题目,可以直接通过在线工具转换。转出来的是一份 C 语言代码,其中涉及的原理在很久以前的这篇《String as Array Index》里有提到,当然最简单的解法还是直接通过 IDEOne 运行,嘿嘿。

第四关扫二维码后可以发现是一个字符映射表,用 Python 写个简单的脚本来转即可。解码后得到一句话,大意是让你用 rot13 去加密一个单词,同样找一个在线工具就可以轻松搞定了。

第五关的喵星人貌似难住了不少人。唯一的线索似乎只有明文给出的「回文」两个字,从网页源代码里找出所有回文词以后就没了头绪。正在一筹莫展之际,又是小 Q 同学叼着根棒冰过来,看了眼题目后很快就高屋建瓴地指出:前两个字符必须是一个大写字母、一个数字,中间的字符必须是小写。我抱着试一试的心态用了一疗程,结果居然真的拼出了一个单词 Orz...

第六关的提示是「勇往直前」,点击图片后可以得到一个莫名其妙的数字,数字所在页面的 URL 里也有个莫名其妙的数字。把 URL 里的数字换成 0、1 之类的没有反应,尝试直接把数字作为答案也不对,最后终于想起了「把网页返回的数字放到 URL 里」的方法。于是发现这个页面类似于随机数生成器:输入一个数字,返回下一个数字。结合「勇往直前」的提示,于是写了一个程序不断重复此过程,在若干次迭代后就得到了正确答案。

第七关是最蛋疼的二叉树题:根据中序、后序遍历二叉树的结果重建二叉树,然后找出最长路径,就可以得到密码。带入用题目中给出的命令对密文解密即可。今天是我第一次用 Python 写二叉树相关的东西,感觉好极了 :)

第八关是 N 皇后问题。题目中给出了一个八皇后的解,可以由此得到 code 与「解」的对应关系,剩下的就是找九皇后的解了。大学的课程设计让我对八皇后留下了非常不好的印象,感觉非常古板枯燥。所幸懒人有懒福,我很快发现维基百科英文版里有一个九皇后的解,而把这个解代入题中正好 OK,耶~ :P

第九关其实是一个 26 进制数的问题,没啥特别的。

第十关光看题目没啥思路,题目中说「如果你知道上面两张图是什么意思,那这道题很容易」,但我显然不清楚。所幸此处的图片命名都很科学,根据图片的命名,找到了编码方法(即便命名没有规律,用 Google 图片搜索也可以搜到),于是答案很容易就找到了。

做完后唯一的感觉是:对 Q 爷的敬佩真如滔滔江水……

以上。

这篇文章没有标签

已有 2 条评论 »

  1. 鄙人智商平平,但是却有一颗通关的心,感谢分享。

  2. 小Q 小Q

    O(∩_∩)O哈!

添加新评论 »