这一关给出的是一个类似数独游戏,叫做Nonogram,大概的玩法就是按照每一行和每一列的要求确定每个格子是否点亮。http://zh.wikipedia.org/wiki/Nonogram给出了详细的介绍以及人工求解的思路。
一开始的提示是下载一个warmup.txt,也就是一组输入,然后求解出结果。这组数据是9*9的,可以先人工求解,算出的结果是一个向上的箭头,尝试用up替换,得到第二组正式的输入,32*32,编程计算得到一幅Python大蟒蛇的图片,用python替换,然后获得一段文本:
"Free" as in "Free speech", not as in "free... 再用谷歌搜一下就可以知道缺少是beer了。
对于求解的算法,本质和wiki上的思路差不多,而且在这关里还稍微简单点:
1.处理完数据后,首先就是要获得每一行、每一列可能的备选排列
2.针对每一行(列),寻找出相同的点(也就是每一种备选排列在这个位置都相同),然后用这个点去排除其他列(行)的备选排列。如果只有一种备选方案,那么这一行(列)就确定了。