Untrusted 趣味解法

有人提到了 Untrusted 这个有意思的编程游戏,于是我也去尝试一下,结果发现挺好玩的,一玩玩上瘾了,搞了一通宵……

这个游戏实际上是很容易作弊的,打开控制台你会看到作者热烈的欢迎着你,源代码也没有任何处理,随便你 Hack。以下则记录的是我自己的趣味玩法。

Level 1

首先移动 @(代表你自己)去拣那个 符号(代表苹果电脑键盘上的 command 键,在这里指代电脑),接着就看到了可以操作的代码。注意只有背景色为黑色的部分才允许你编辑。最终的目标是走到浅蓝色的方框处,这是终点。

如果你稍微想一下,就明白源代码绘制了一大堆的 # 符号用来阻挡你的去路,那么生成符号的方式当然可以由你来篡改(在允许你改动的代码范围内)。所以本游戏的精神分两个层面:

  1. 认真思考,精确计算,给自己开出一条道来;
  2. 发挥黑客精神,破坏源代码,彻底颠覆迷途。

由于之前 SF 已经有人分享了一些思路,我接下来就只讲破坏性的方式!^^

好了,第一关最简单,把你能删掉的代码全部删掉,搞定!

正常版

Untrusted 趣味解法_第1张图片Untrusted 趣味解法_第2张图片

二逼版

Untrusted 趣味解法_第3张图片Untrusted 趣味解法_第4张图片

Level 2

第二关其实比较困难,按照之前本站朋友公子发表的办法进行多次尝试未果。经观察,源代码是有条件的绘制整副迷宫(每次刷新都重新分布),如果用正常的手段是无法绘制第二个出口的,(因为预先绘制的出口在最后一行,你无法在此之后执行,似乎也不能在图中同时存在两个出口,我尝试了很多次都没有成功)。

Anyway,其实作者已经给出了答案!在题目介绍里,作者说用四个字符就可以解这一关。哪四个字符呢……?想的我头皮都炸了!最后才忽然醒悟过来——块级注释啊!

Untrusted 趣味解法_第5张图片

Level 3

这关和第一关几乎一个性质,只不过最后有一个验证,所以删代码这种极具品味(不开玩笑)的事情是没得搞了。好在解法特别多,而且非常容易,这里随便放一种(因为这种走起来比较快)。

Untrusted 趣味解法_第6张图片

Level 4

这关没啥好说的,只要不验证,你随便折腾!

Untrusted 趣味解法_第7张图片

Level 5

这关也没啥好说的,Ctrl + 1 看看 API 就好了,没趣味。

Untrusted 趣味解法_第8张图片

Level 6

这一关的惯常解就是造一堵墙去挡守卫了,然而如果你事先走几遍你会发现如果遵循相同的方式来行走,那么守卫最终总是和你在同一点相遇,所以我们只需一行代码,就放一块砖头堵在相遇的那一点就可以了,于是你就可以看着守卫在屁股后面追你然后在心里暗爽了:来啊,你追我啊!

Untrusted 趣味解法_第9张图片

Level 7

这一关在逻辑上没什么难度,但是我考虑了一下,最终选择了也许不是最简单,但确是表达能力最好的一种方式。因为我一直相信,会说话的代码才是好代码。(不过我水平有限,或许还有表达能力更优的解)

Untrusted 趣味解法_第10张图片

BTW,我其实还很二逼的搞了一种使用 setInterval 的解法,没想到——

Untrusted 趣味解法_第11张图片

——我去你大爷的~~~

Level 8

我被这关坑了很久……我都不想回味它……原因在于字体……你们自己想吧!

Untrusted 趣味解法_第12张图片

Level 9

@公子 的解法着实惊艳到我了!在第九关他比我更 Hack,还好我的解法也不赖。要点是呼叫电话求救哦~(登船之后,让船改向上走)

Untrusted 趣味解法_第13张图片

Level 10

这关不难解,重点是队形要整齐!BTW,我过关的时候唱的是:Make way!For prince Ali~

Untrusted 趣味解法_第14张图片

Level 11

这一关开始控制机器人了,感觉反而更简单不过,和之前相似的代码就足已了。

Untrusted 趣味解法_第15张图片

Level 12

Have no better idea...

Untrusted 趣味解法_第16张图片

Level 13

这一关没有想象中那么难,我不会什么寻路算法,所以我用 player 当作游戏手柄来控制机器人。简单说一下,在屏幕上想象这样的图形:

  o
 oxo
  o

x 是你自己,你的上下左右的坐标都不难预先计算(出生地的坐标在顶部代码里是有的),然后 API 手册里有一个判断你当前坐标的方法……see

(最后一行 if 的代码不是我写的,不知道怎么冒出来的,而且还删不掉……也懒得再刷新一遍截图了)

Untrusted 趣味解法_第17张图片

Level 14

@公子 的解法坦白说我没看懂,我自己还是直接用了最无耻的办法……

Untrusted 趣味解法_第18张图片

Level 15

只要抛出异常你就成功了!

Untrusted 趣味解法_第19张图片

Level 16

一点点 Canvas 的知识就能看到激光束的颜色,然后利用场外电话求救改自己的颜色即可瞒天过海。

Untrusted 趣味解法_第20张图片

Level 17

你可能感兴趣的:(hack,javascript)