谜题的答案和活动的心得体会

谜题的答案和活动的心得体会

我于2014年8月3日周六的上午在微博、twitter、CoolShell上发布了一个和程序员有关的解谜题的活动——【活动】解谜题送礼物。我使用了二级域名fun.coolshell.cn做为这次活动的页面。

截止这篇文章发布的时候,fun.coolshell.cn的访问量UV大约有4万左右,通关人数大约有200人,但因为在活动的第二天网上就出了一些答题攻略,通过分析,实际靠自己能力通过的人数在130人左右。通过率大约不到4‰的样子。

在这里我把整个谜题和做这个活动的东西写一下,算是给自己的一个总结。

谜题的答案和花絮

fun.coolshell.cn上一共有十道谜题,要设计这些东西还真是费尽脑汁,这让我对那些设计谜题式游戏的人相当敬佩

第0关:很多人可能一头雾水,完全不知道这是什么,其实只要Google一下,你会知道这是一个叫BrainFuck的语言。在Coolshell.cn上我也介绍了过——《BT雷人的程序语言》《BT雷人的程序语言(大全)》,要通过这关,你需要把那段程序编译一下。要编译这段程序其实很简单,Google一个在线的编译器就可以了。(关于其它更多的古怪的编程语言请参看这里:http://esolangs.org/wiki/Language_list

第1关:这一关也是很简单的,你需要在网页上找到两个数,一个是X,一个是Y,然后求得X和Y的乘积。对于X,你可以观察一下那个数列游戏,对于Y,你可以Google一下就知道了(我在Coolshell的《如何用最有创造力的方式输出42》说过这个事)。

第2关:上面显示了一个不一样的键盘,我给了这个键盘的Wikipedia的链接。这个键盘叫Dvorak键,不同于我们的Qwert键。通过这个两个键盘的布局映射,你可以把下面那段读不懂的文字解出来(其实,你还是可以Google,有在线的转换)。把下面那段文字转成Qwert键的,你就会发现这是一段代码,这段代码非常著名,是1987年国际C语言混乱大赛一等奖的一段代码(你可Google “IOCCC 87 unix”)。(关于IOCCC你可以参看Coolshell之前的《6个变态的HelloWorld》、《如何混乱代码》、《如何写出无法维护的代码》这几篇文章)

第3关:扫描二维码以后,你会得到一个码表转换,你可以使用Shell的tr命令来转一下下面的话。转完后你就可以读懂了,读懂了你还需要使用rot13来转一下“shell”(Google一下,你会发现也有在线的转换器,另外还有其它的rot)

第4关:这是众多同学被卡在的地方。很多同学吐槽这题太坑了,别忘了这是游戏啊。我问了几个早先通关的同学,他们都说还好了,只要静一下心来多观察一下,你就会找出规律的。这个回文的模式是,一个大写字符和一个数字(顺序不限)把一个小字母套起来。于是,写成正则表达式是: