前文概述
这个游戏是锻炼逻辑思维的程序模拟游戏,是拖动按钮来做program,继而解决其中的问题。分为4个部分:绿、蓝、橙、红。每个部分都有10多个题目,难度依次递增。
开始攻略
Content Creators Bug Fix
这是我工作的第17年。没错,我已经不知道多少次进入公司的命运电梯了。曾经还为每完成一个任务能经由电梯回到过去感到兴奋不已,现在我只想快点退休。要不,就是遇到点有趣的任务好消磨时光。
面前的打印机在昨天还把我们给压死了,就因为managerment的错误命令。今天他给了我们takeFrom的方法,可以安全的从打印机上取东西。
Big Data
必须让每个worker手上拿到的方块的数字大于50。
这么简单,看来后面要使大招啊。
Number Royale
这一关要比较大小。但是没说清楚该怎么比较自己的方块和旁边的人的方块大小。
这里myitem应该与方向做对比。这个地方的方向应该是形容词,意思是我的物体比旁边的物体数量小或其他。
中间几个一起掉下去正好说明这个游戏是并行运算的。
Sorting Hall
在狭窄的通道里排序20个方块,到了考验排序思维的时候了。
难度好大啊!!!
没有用作遍历的变量i,j没办法指代各个worker啊!!!
但是,在仔细阅读Managerment给规则后,有这么一条, 两 个 w o r k e r 走 相 反 方 向 时 会 交 换 位 置 ! ! ! ! \color{red}两个worker走相反方向时会交换位置!!!! 两个worker走相反方向时会交换位置!!!!
所以,只需要让小的往左边走,大的往右边走就行了。
Budget Brigade 1
这关比较简单:
Budget Brigade 2
仍然是一个尿性。用人来当传送带。
这个解答没什么好说的。但是程序效率是个问题。
My First Shredding Memory
现在是蓝色阶段了。从这个任务开始,我拥有了记忆。那以前的那些是什么呢?是别人的思绪吧!
我现在可以记住4件事。可以是shred machine(垃圾粉碎机)的位置或方块的位置。
另外,从这个任务开始,有些步骤就不需要一步步来走了。
比如去拿方块就可以是,mem1=最近的方块位置,pickUp(mem1)就可以自动去拿方块。
比如去shred machine那里把方块丢下去可以是,mem2=最近的shred machine位置,giveTo(mem2)自动去粉碎方块。
上面的粉碎机只有一个位置,而方块有许多,所以需要不断更新方块位置。
Fill the Floor
取打印机那拿方块,再放到地板上,直到铺满整个地板。
- 如果step同时点上几个方向,worker会走其中随机的一个。
下面这种方案是我运行最快的一个(171 s)。
Checkboard Organization
这题说是要把方块放成象棋棋盘的样子,就是摆斜线。
Creation Writhing
这关依然是教学关。
目的是把每个方块的数字重写为99。
Data Backup Day
制作数据备份。
原理是把左边的方块拿起,记住他的大小,放下去拿另一边的方块,比较两个方块大小并把大的方块数字改成小的方块的。
Seek and Destroy 1
寻找最小的方块。
上面这个算是我看过的最简单的了。不是我想出来的。
这题关键是用来比较的mem要初始化。
下面是另一种解法:
Seek and Destroy 2
如果单单是上面的程序加一个跳转的话是不行的,worker在找最近的方块时会找到别的列上去。
Seek and Destroy 3
这题真的太难了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 找出每一列最小的方块并拿起
- 与邻近的worker比较,大的被消灭。如果有和自己数字一样的,就随机走,看谁先死,剩下的一个就去粉碎。
Intro to Calc for Art Majors
我工作的第35年。
疲劳。
今天老板问我算术。可这我怎么会,自从发现自己才不久前刚拥有记忆后,我明白自己也不过是个机器人。现在想想,之前憎恨老板的想法,是那个秃头boss的吧!可见在他上头也有一个boss。
于是他给了我一个计算器
…
\dots
…
Dangerous Shreadsheeting
这里的问题是如何处理那个洞,并且,过洞的代码放的位置要好好考虑。
要处理洞前的方块,所以运算要放在跨过的前面,但是跨过后还有洞后的方块,所以,如果有跨过洞的行为,应该跳转到运算。
最后到墙了,就把墙下的方块捡起并重写。
Printing Etiquette 1
现在我已经有了12个命令了。
任务是打印5个方块,然后放在地板上。
Printing Etiquette 2
这个与上面的任务区别是把每个worker自己拿的方块逐一标上1~5.
只需要上drop前把mem2中保存的值赋给方块就行了。
Image Decrypter
这里我理解错了,一直纠结方块的数字应该指离左边箭头的距离。其实是左移的步数。
Multiplication Table
workers该如何判断自己的位置,行是多少?列是多少?
乘法解决方案:
- 先找到自己列的头N
- 按照顺序,从上到下,第一个1XN,第二个2XN,,,,,,
另外有一种牛逼的方法是用加法,其实是迭代把之前的数字加起来就等于乘法了。
因为与的优先级比或高,所以先处理与。
Important Email Organization
还记得两个worker对着走会发生什么吗?
会交换位置,就是说,对着走就不会被对方拦住。
这里也用了那个特性。
数据分类的原理是先除10得到数据的10位,再按照从左自右的顺序找到自己的shred machine
Unique Fashion Party
过年最后一天,而且下次回来我就进入橙色员工的行列了。
说好的最后的派对,结果又是任务。
有数字方块0~6的类型,拿到相同的方块的人自觉送死,每种方块只能留一个人。最后7个人要全部去隔壁房间。