邓世龙的自留地

兼济天下则达 独善其身则穷

分类目录归档: 游戏

manufactoria通关攻略


《空闲时玩的游戏manufactoria》《通关manufactoria》说过在manufactoria上花了很多时间,并借助外力的帮助下通关了,但是一直没有将它记录下来,现在记下通关方法,以免以后又忘记了。这个游戏对于我对程序设计的理解有很大帮助,给了我许多兴趣。本来给出解答是不应该的,这样会剥夺了别人思考的权力,就像以前的《吉米多维奇》习题集,本来非常火爆的,结果有好事者搞出了习题解答,之后这套习题集就冷下来了。可是每个人都有局限性的,看过《三体》之后,让我知道技术爆炸这个词,也就是徒弟本来不会一项技术,师傅教他之后,他比师傅做的还好,并有了创新。秉着这个观点,把解答贴在这里,让更多的人体验技术爆炸。

关卡按照从左到右,从上到下计数。

  1. Move robots from the entrance(top) to the exit (bottom)! 将机器从入口(顶部)移到出口(底部)! 简单,不多说
  2. If a robot's string starts with blue, accept. Otherwise, reject!  如果机器以蓝色字符开头,则接受。否则,丢弃。
  3. ACCEPT:if there are three or more blues! 如果有三个或三个以上的蓝色的,则接受
  4. ACCEPT: if a robot contains NO red! 如果机器不包含红色的,则接受。
  5. OUTPUT:The input,but with the first symbol at the end!  对于输入的字符,将第一个字符移到末尾作为输出
  6. ACCEPT: if the tape has only alternating colors! 如果只存在交替字符,则接受。 意思就是字符如果是交替出现的则接受,如蓝红蓝红蓝,红蓝红蓝等等,而蓝蓝红,红蓝蓝等出现连续相同的字符,所以不接受
  7. OUTPUT:Replace blue with green, and red with yellow! 输出:将蓝色换成绿色,将红色换成黄色。
  8. ACCEPT: if the tape ends with two blues!  如果末尾是两个蓝色,则接受。
  9. OUTPUT: Put a green at the begining,  and a yellow at the end! 输出: 对于输入的字符,在开头中添加一个绿色字符,在末尾中添加一个黄色字符。
  10. ACCEPT: Strings that begin and end with the same color! 如果开始字符和结束字符时相同,则接受。
  11. ACCEPT: With blue as 1 and red as 0, accept odd binary string! 把蓝色当做1,红色当做0, 接受奇数二进制数。 其实就是接受蓝色结尾的字符。
  12. ACCEPT: Some number of blue, then the same number of red! 接受: 一些蓝色的,然后相同数量的红色的。 也就是接受诸如蓝蓝红红,蓝蓝蓝红红红等,当然空字符也要接受,因为空字符代表0个蓝色,0个红色。
  13. OUTPUT: Swap blue for red, and red for blue! 输出: 将蓝色换成红色,红色换成蓝色。 也就是将字符串中的颜色互换。
  14. OUTPUT: All of the blue, but none of the red! 输出字符串中的所有蓝色字符,不输出红色字符。 也就是将字符串中的所有红色字符去掉,留下蓝色的。
  15. OUTPUT: The input, but with the last symbol moved to the front! 输出: 对于输入的字符,将最后一个字符移动最前面。
  16. OUTPUT: With blue as 1 and red as 0, multiply by 8! 输出:把蓝色当做1,红色当做0,将二进制字符串乘以8. 其实也就是在字符串末尾添加3个0,也就是添加三个红色
  17. ACCEPT: With blue as 1 and red as 0, accept binary strings > 15! 接受:把蓝色当做1,红色当做0,接受大于15的字符串。
  18. An equal number of blue and red, in any order! 只要字符串中包含相同个数的蓝色和红色,则接受。
  19. OUTPUT:Put a yellow in the middle of the (even-lenght) string! 输出: 在字符串(偶数个字符串)的中间放置一个黄色字符。
  20. ACCEPT: X blue, then X red, then X more blue, for any X! 接受: X个蓝色,然后X个红色,接着X个蓝色,对于X没有限制。 也就是接受蓝红蓝,蓝蓝红红蓝蓝等字符串,对于空字符也接受,因为它代表0个蓝色,然后0个红色,接着0个蓝色。
  21. OUTPUT: The input, but with all blues moved to the front! 输出:对于输入,将字符串中所有的蓝色移到前面。
  22. OUTPUT: With blue as 1 and red as 0, add 1 to the binary string! 输出: 将蓝色当做1,红色当做0,将二进制字符串加上1.
  23. ACCEPT: With blue as 1 and red as 0,  accept natural powers of four! 接受:把蓝色当做1,红色当做0,接受四的开方
  24. ACCEPT: (Even-length) strings that repeat midway through! 接受:(偶数长度)接受从中间开始重复的字符串 意思就是接受的字符串是偶数长度,前半段和后半段是一样的,如蓝红红蓝红红,
  25. ACCEPT: If there are exactly twice as many blues as red! 接受:如果蓝色的个数是红色个数的两倍,则接受。
  26. OUTPUT: Reverse the input string! 输出:将输入的字符串逆转输出
  27. OUTPUT: Subtract 1 from the binary string!(Input >= 1) 输出:从二进制字符串中减去1(输入字符串>=1)
  28. ACCEPT: Perfectly symmetrical strings! 接受:完美对称字符串!意思就是回文串,也就是从左读到右和从右读到左是一样的。
  29. ACCEPT: Two identical strings, separated by a green! 接受:两个相同的字符串,由绿色隔开。
  30. ACCEPT: Read the tape as two numbers, A and B, split by a green: accept if A > B! 接受:读入的字符串当做两个二进制数,A和B,由一个绿色隔开,如果A>B则接受。
  31. OUTPUT: Read the tape as two numbers, A and B, split by a green: output A + B! 输出:读入的字符串当做两个二进制数,A和B,由一个绿色隔开,输出A+B的和!

记一个变态的反贼


前几天在小明的鼓动下,玩起了三国杀。一直没有玩三国杀,是因为我喜欢规则简单,无须太多记忆的东西,而三国杀必须要记很多武将的属性,所以一直没有尝试。但想到玩玩也无所谓,毕竟是桌面游戏,有空时大家坐在一起玩玩也是不错的选择,于是玩起了三国杀。

很快,升到5级后,对基本玩法已经非常熟悉了,就不在局限于无属性玩法了,到标准场试试。标准场的出牌时间很短,很多时候都来不及出牌。当了几次反贼,忠臣,内奸,主公,对角色的任务也熟悉了,不久就有了这局的经历。在前一局中,我的角色是反贼,作为主公的上一家,果断表反后,遭到上一家忠臣孙尚香的屠杀,孙尚香的技能相当强,很快我就死了。

而在这一局中,我又是反贼,又是主公的上一家,我选的是周瑜。这次又有孙尚香在场。这次不再表反了,而对孙尚香展开攻击,即使不知道她的身份,五谷丰登拿到一张杀后,杀向孙尚香,而且周瑜的英姿技能有些强大,可以多拿一张牌,也就有更多的选择。很快孙尚香就阵亡了,身份竟是反贼。这时候只好继续装忠臣了,再次用一张五谷丰登,忠臣身份确定无疑。这之后我成了内奸和忠臣攻击的目标了,内奸肯定认定我是忠臣了,而真正的忠臣在那里偷笑。刚烈哥夏侯惇对我的攻击最猛烈,我也豪不客气的给与还击。杀他之后我又舍不得丢牌,竟害得我也掉血了。在内奸和忠臣的攻击下,很快就无血了,还好主公出手相救,之后夏侯惇被主公杀死,身份内奸。

这之后主公肯定是认为我是忠臣了,真正的忠臣则成了攻击的目标,我使用了反间技能,不巧杀被拿走了,之前的战斗中损失惨重,被忠臣一张决斗和杀之后,我无血了,还好主公再次相救,最后忠臣死了。剩下我这个反贼和主公搏斗,但主公孙权的制衡技能确实强大,几个回合之后我就招架不住了。不愧是生子当如孙仲谋。

这局很有趣,反贼装忠臣,装的太像了,玩到最后都取代了内奸的身份了。因为刚开始玩三国杀,所以有点不合常规,纪念一下。

 

通关蜡笔物理学


前几天闲着,于是玩蜡笔物理学,但是还是卡在此前无法通过的关卡中。无奈之际,打电话给同学,打给王雅丽时聊起这个游戏,她竟然通关了。问过如何通关之后,才发现方法是如此简单,小朋友一般能想出来,可惜我想不到,所以说这是Crayon Physics是适合小朋友玩的游戏。他山之时,可以攻玉,如果一个问题一直没办法解决的话,不要一直纠缠下去,和同学聊聊天,意外之中,问题就解决了。

不过,现实生活中,这种聚沙成塔的方法是不可能摘下天上的星星的,坐火箭倒有可能。虽然通关了,但一点也不高兴,因为不是最完美的实现,虽然我不是完美主义者,但我怎么也算是个程序员,还是需要考虑如何最优,如何才能优雅。所以啊,通关只是用来骗自己的,有时间的时候,还是会拿这个游戏出来玩玩,毕竟坐火箭摘星星的感觉与爬楼梯摘星星的感觉是不可同日而语的。

通关manufactoria


《空闲时玩的游戏manufactoria》中说过,没能通关manufactoria游戏,一直有些遗憾,今天豁出去了,想把它解决。结果之前的记录已经被删除了,所以得从第一关开始玩,但是遇到了很多困难。因为隔了这么久,已经忘记了以前的解法。现在的心态已经大不如前,所以求助于Roy(姜子麟)的解法。他的解法跟我的很相似,所以很快就到了最后一关。

最后一关就是二进制的加法,一直是想从低位开始相加,这样就有保留进制的问题,很快我就无解了。纠结了很久,看还是不看解答呢?傍晚跑步回来,吃过晚饭后,决定看解答。意外的是,竟看不懂解答,于是单步跟踪,渐渐明白了用意。

其实这题如果换个角度思考就好了,可惜陷入思维定势了,看来还要仔细看看《怎样解题》。不得不说,姜子麟是神牛,神牛曾说过他去教奥数的经历,以接近一毛钱每秒,每天教六小时,连续教了六天,可以算算这六天来他的所得,所以知识就是力量。有兴趣的可以看看老鼠毒药问题的升级版,仓鼠毒药问题,你会感慨,数学,又见数学。

这样,这个遗憾就一直存在了,因为是借助别人的解答,不想留有遗憾的还是不要看解答。现在还可以考虑matrix67的猜英文句子,决定不看解答。

适合小朋友玩的游戏


假期将至,推荐一个游戏给大家,学习之余,放松放松。游戏名字是Crayon Physics,在任晓祎的博客上看到这个游戏,但没有玩。某日,看到陈秀娜小朋友在玩QQ游戏,而我一直都不喜欢玩QQ游戏,于是就推荐这个游戏给陈秀娜小朋友。当然如果要推荐的话,自己要先玩玩这个游戏,好玩的话才能推荐。很快,我迷上了这个游戏。游戏的画风很朴素,但玩起来饶有兴趣。

相信大家小时候都有一个想法,那就是摘下天上的星星,但后来发现这是不可能的。如果你至今还对无法摘到星星而耿耿于怀,不妨玩玩这个游戏,游戏的任务就是摘星星。

以下是我与陈秀娜小朋友的对话,对话如下:

邓世龙:陈秀娜小朋友,你玩过这个游戏之后有什么想法没?是否勾起你童年的回忆?

陈秀娜小朋友:我觉得这个游戏挺好玩,挺适合女生。背景音乐给人一种很喜悦很舒心的感觉,这个游戏中利用物理原理来完成,稍稍动动脑子还是挺好的。

邓世龙:小朋友,竟然会懂物理原理,不错不错。

陈秀娜小朋友:玩这个游戏,不知不觉中,你就会懂物理原理的。

邓世龙:游戏过程很像在创作一幅图画吧?

陈秀娜小朋友:是的,很像,我有点想画画了。

空闲时玩的游戏manufactoria


在matrix67的博客上看到这个游戏,于是玩这个游戏,确实有难度。翻开日志,看了一下玩游戏的整个过程。

2011年1月2日,20:36通过任晓祎的博客访问到matrix67的博客。花费40分钟。

1月3日,15:26玩游戏“manufactoria" 花费3小时。

1月5日 10:30 去实验室,玩manufactoria。花费30分钟,11:16玩manufactoria 花费40分钟。

1月7日 11:30 玩manufactoria。花费30分钟   18:15 回实验室,玩manufactoria花费 40分钟。   21:27 玩manufactoria 花费30分钟。

1月9日,被有一关卡住了,没办法通过,于是叫同学玩,希望他们能解决。 18:00教杨俊玩manufactoria。花费1小时。  21:42 教陈海龙玩manufactoria。花费44分钟。后来发现是由于对题意理解错误,之后这关很快解决。

3月18日  18:26 去实验室,玩manufactoria,花费2小时。

3月20日,9:30 又被一关卡住了,教黎扬玩manufactoria,他解决了这关。花费2小时20分

3月26日, 14:20 玩manufactoria 花费2小时10分。

5月25日 15:23 玩manufactoria 花费2小时

7月25日 至 8月1 晚上睡觉是考虑manufactoria,试着像特斯拉一样在大脑中想象机器的运转过程,但终究比不上特斯拉,没有那么精确,但想通了加一,减一,逆序输出字符。

8月11日   20:30 玩manfactoria 解决加减,逆序输出字符 花费2小时。 23:30 玩manufactoria 花费1小时10分

8月12日, 9:40 玩manufactoria 解决对称 花费1小时20分。

总游戏时间为22小时14分钟。当然还没有加上吃饭时考虑这个游戏,睡觉时考虑这个游戏的时间。总游戏时间相当长,而且很遗憾的是,现在还没有将游戏通关。想想matrix67花费一个下午加晚上的时间就把游戏通关了。但我想他之所以能做到这样,此前必定付出很多努力。于是在他的网站中寻找证据,果然被我找到一条,在他的博客中《我中学时代的作文一:换一个角度思考问题》。matrix67考虑的是这样一个问题:22, 2, 53, 10, 19, 0, 53, 7, 0, 79, 28, 8, 69, 1, 100, 104, 0, 74, 18, 39。每一个数字代表一个字母,合起来组成一个简单的英文句子,用通常的方法无法的到答案,需要换一个角度思考。读者会在某特定的场合下想出答案。为了这个问题,读初三的他竟会探索半年之久。这也证实了我的想法。

希望有哪位空闲的能人异士将游戏通关,然后告诉我最后一关的算法。