#智商与逻辑双重考验# 烧脑编程游戏: 深圳 IO 篇二:脑洞加宽的进阶提示

2017-10-09 19:26:45 61点赞 141收藏 24评论

接上篇:

#智商与逻辑双重考验# 烧脑编程游戏: 深圳 IO 篇一:游戏简介与上手指南前言我最近发现了一款非常烧脑的编程游戏SHENZHENI/O(深圳IO),是一家专门制作高质编程游戏的Zachtronics公司出品的.几年前迷过好一阵他们出的Spacechem,深深的被这款玩起来像上班一样的游戏折服.这次的深圳IO又一次刷新了我对游戏的理解.在傻傻看着游戏界面上百小时后,一个邪恶可爱的排骨| 211 评论87 收藏994查看详情

此篇紧接上篇.

如果你还没读过篇一, 请务必先点上面卡片读读篇一. 如果你还没读过篇一, 请务必先点上面卡片读读篇一. 如果你还没读过篇一, 请务必先点上面卡片读读篇一.

如果你读完了篇一还自(cheng)信(neng)想要继续, 或者好奇这游戏还能多烧脑, 那就继续往下看吧. 我会尽最大努力给你当导游脑洞加宽的进阶提示 这边走


第二关: 信号增幅器

脑洞加宽的进阶提示

信号增幅器是个生活中很常见的电子零件, 用于增强声光电信号, 比如功放机, WiFi信号放大号, 网络中继器/交换机等. 其实每关都是现实生活中取材的, 边玩边学知识. 比玩消消乐那些纯浪费时间的游戏有意义吧? 脑洞加宽的进阶提示 求消消乐党匆追打....

第二关 邮件 (这关的邮件是这个游戏里最短最没劲的.... )

张工说我们工厂里有些老设备需要增强信号, 原有的增强设备被压坏了, 你叫设计一下.
(就这些...)

第二关 提示

任务很简单, 把control-in输入的信号翻倍后输出给control-out.

第二关 分析

这关有输入输出共2个连续信号, 可以用1个MC4000来连接, 输入信号进入p0, 经代码处理后从p1输出.
根据测试数据不难看出, 输入信号在0~50之间, 翻倍后就是0~100. 那么我们只需要把p0输入的信号值放acc里乘2后输出给p1就够了.

mov p0 acc # 输入信号存到acc
mul 2 # acc值乘2
mov acc p1 # acc值输出到p1
slp 1 # 睡1秒 - 等待下1秒信号进来

过程见下动图:脑洞加宽的进阶提示

下图是个WiFi信号放大器, 基本原理和第二关一样.

腾达(Tenda)A9 300M 家用wifi信号放大器 无线路由器穿墙伴侣 wifi中继器 无线扩展器 信号增强器59元实际生活中的信号增幅器 :) 就是不放小米的京东去购买

第三关: 纸牌接龙麻将版

脑洞加宽的进阶提示

空挡接龙是Windows系统的标志之一, 没想到此游戏的作者在这个游戏里虚拟的概念OS里也做了个空挡接龙, 刚开始主菜单里看不到, 等你完成了前两关后, 它会突然出现并成为你的第三关 脑洞加宽的进阶提示.

很多玩家都调侃说一度把这个接龙小游戏当成此游戏的本体. 然后作者就把这个内嵌小游戏独立发布出来了, 好像还出了个dos版 脑洞加宽的进阶提示

第三关 邮件

张工: 我女儿在学编程, 她做了个纸牌游戏. 你们能不能试玩一下给她点反馈意见? 她想成为游戏开发人员.
卡尔: 哇喔! 做得太漂亮了, 比我预计的难太多了..... 你女儿设计得太挑战耐心了, 最好能加个"后退"功能.
张工: 她觉得不需要, 只要玩熟了就很简单了.
卡尔: 她真是得你的真传啊.
脑洞加宽的进阶提示

第三关 提示

退到主菜单, 点开新出现的接龙游戏图标. 右下有个 INSTRUCTION 是规则说明.

脑洞加宽的进阶提示把三组牌接1~9的顺序叠在右上角就赢了.脑洞加宽的进阶提示牌桌中间的牌只能按从大到小的顺序叠在不同色的牌上脑洞加宽的进阶提示左上3格可以放任意牌脑洞加宽的进阶提示当中/发/白4张全见光时, 就可以叠在一起放左上角了.

第三关 分析

这完全就是把4花色扑克牌♠♥♣♦的空挡接龙换成了麻将牌嘛... 规则几乎一样.

下图是过关动画 (NG的好多盘 脑洞加宽的进阶提示 )

脑洞加宽的进阶提示

下图是过关后邮件里搞笑后续 脑洞加宽的进阶提示 不是汉化版里的, 原版游戏里就是有中文.脑洞加宽的进阶提示纸牌接龙麻将版 (单独版)store.steampowered.com去看看


第四关: 脉冲生成器

脑洞加宽的进阶提示

本来不打算写这一关的, 因为找不出对应的现实生活中的产品. 不过这一关的目的是给玩家练习测试指令(逻辑判断)的, 这可是后面关卡必备的基本指令, 也是编程的基础之一.

设计要求很简单, button为100时(打开开关), 开始生成1上1下的脉冲信号, 持续到button变为0(关闭开关). 有点无聊的东西. 不过如果你把它想象成辐射2里的YK42B脉冲步枪, 抠下扳机就发射脉冲能量束~~ 是不是立马高大上了? 脑洞加宽的进阶提示 脑洞加宽的进阶提示我们拖一个MC4000上板, p0button, p1pulse. 代码如下:

teq p0 100
+ mov 100 p1
+ slp 1
+ mov 0 p1
slp 1

只有当 "teq p0 100" 即 p0=100 成立时, 下面3行带+的代码才会执行. 否则只会执行最后一行"slp 1". 因为button只会输入0和100两种数据, 所以可以用 "tgt p0 0" 或 "tcp p0 0" 指令替换 "teq p0 100". 我们甚至可以逆向思维把条件反过来.

teq p0 0
- mov 100 p1
- slp 1
- mov 0 p1
slp 1

虽然这2段代码完成了同样的任务, 但它们有时候不尽相同的意义. 这个以后出现需要双重条件判断的时候你就会了解了.


第五关: 电竞广告牌

脑洞加宽的进阶提示

第四关开始卡尔就告诉你可以使用其它一些元件做设计了. 但是第四关只是个过渡关, 剧情和设计都不出彩, 我就不写了.

老周拉来一个大单, 给一个电竞团队制作一个动画广告牌. 广告牌有5个信号输出, 信号规律是固定的. 看起来蛮简单的, 不就是第一关仿真监控器加强版嘛~~~
脑洞加宽的进阶提示

初次尝试:

按第一关的做法, 拖5个MC4000分别连上5个输出端口, 虽然有点挤, 好在PCB板够放. 脑洞加宽的进阶提示
根据验证数据一一为5个MC4000编码:

脑洞加宽的进阶提示 #click-0
mov 100 p0
slp 1
mov 0 p0
slp 1

# click-1
mov 0 p1
slp 1
mov 100 p1
slp 1

# drink-0
mov 100 p0
slp 6
mov 0 p0
slp 4

# drink-1
mov 0 p0
slp 6
mov 100 p0
slp 1
mov 0 p0
slp 2
mov 100 p0
slp 1

# drink-2
mov 0 p0
slp 7
mov 100 p0
slp 2
mov 0 p0
slp 1

测试执行后你会发现, 虽然能过关, 但是成绩非常差, 连平均分都达不到, 感觉自己像智障 脑洞加宽的进阶提示 1个MC4000明明可以接2个连续信号输出, 一共只需要3个MC4000就行了, 用5个明确是浪费! 而且5个MC4000都有空余的代码行没写.
千万不要以"能过关就行"这样的心态来继续这个游戏, 每过一关都要锻炼自己的技术, 把你的脑子放进acc然后狂点add脑洞加宽的进阶提示 . 你在其它游戏里每过一关积累的可能是金币装备等级, 在这个游戏里你唯一能积累的就是你的脑力, 寻求最简最快最省的解决问题的能力.

再次尝试:

click-0, click-1这两个信号规律很简单,1上1下和1下1上共4种变化. 用1个MC4000能搞定的, drink-1本身就已经有6下1上2下1上四种变化了, 估计需要占掉1个MC4000. 剩下的drink-0, drink-2信号相似, 共用1个MC4000应该没问题. 代码如下

脑洞加宽的进阶提示

# p0 –> click-0, p1 -> click-1
mov 100 p0
mov 0 p1
slp 1
mov 0 p0
mov 100 p1
slp 1


# p0 -> drink-0, p1 -> drink-2
mov 100 p0
mov 0 p1
slp 6
mov 0 p0
slp 1
mov 100 p1
slp 2
mov 0 p1
slp 1


# p1 -> drink-1
mov 0 p1
slp 6
mov 100 p1
slp 1
mov 0 p1
slp 2
mov 100 p1
slp 1

测试验证通过! 总算成功的拿到平均分. 成绩图表里显示有只用2-3行代码就完成的! 脑洞加宽的进阶提示 他们和我们玩的同一款游戏吗?
感觉我这个灵魂走路(线)有点丑, 再来优化一下看看.脑洞加宽的进阶提示这下齐整多了. 奇怪为什么线路都到元件下面去了? 按下TAB键, 就能看到全部的走线了.脑洞加宽的进阶提示原来只要不碰到其它的引脚, 元件下面也能走线. 节省空间方便布局?

别说我玩个游戏太钻牛角尖, 提前习惯一下可以让你在后面的关卡少拔掉自己不少头发呢脑洞加宽的进阶提示 .

类似本关电竞广告牌的产品真实生活中一般没有量产商品, 主要都是定制, 如下图. (OH我的乌嘛女神~脑洞加宽的进阶提示 ) 如果你去过澳门或者Vegas, 应该见过不少这种动态的霓虹灯吧. 它们就是这个原理动起来的 脑洞加宽的进阶提示 . (GIF是不是也一样? 不是, GIF是幻灯片, 原理比这个不弱智得多.)

脑洞加宽的进阶提示

脑洞加宽的进阶提示



第七关: 音效加强引擎 (垃圾功放芯片)

脑洞加宽的进阶提示

第七关这个音效加强引擎(harmonic maximization engine 貌似很屌的东东)被卡尔称为垃圾(Rubbish). 功能和一些功放硬件或播放软件的均衡器插件差不多. 但不算是混音.

卡尔在邮件里说到: 我们有个设计音频组件的合同, 客户保证产品的包装盒上会印上"完美均衡的清脆的高音与震撼的低音". 他把客户的广告方案放在你桌上了, 让你去说明书找来看看... 卡尔还说不管这玩意有多垃圾, 我们还是得完成它, 工作就是工作.

被卡尔说得这么不堪? 脑洞加宽的进阶提示 我翻开说明书找到客户的"Incredible Sound at a Breakthrough Price."这页方案. 吹了一大堆, 中间提示我们要用到的公式: AUDIO_OUT = (AUDIO_IN - 50) x 4 + 50. 用初中的数字知识简化一下这个公式得到 AUDIO_OUT = AUDIO_IN x 4 -150. WTF?! 把输入信号乘4再减150就是他们说牛X音效加强引擎?!!! 脑洞加宽的进阶提示 某厂不也用胶水方案出过多核CPU嘛~~脑洞加宽的进阶提示

这一关有2个连续信号输入和1个连续信号输出, 用一个MC4000不够, 我们需要组合一对MC4000来完成.
maximize值为0时, 直接把audio-in传给audio-out就行了, 只有当maximize为100时, 才需要通过"神奇的公式"处理信号再输出.
脑洞加宽的进阶提示

过程很简单, 先把audio-in存进acc, 如果maximize等于100(开关开启), 就把acc x 4 - 1500, 最后把acc的值传到另1个MC4000, 另1个MC4000收到信号马上传至audio-out. 1个MC4000作处理器, 1个MC4000作转接头. 当你的显卡只有hdmi输出而显示器只有vga输入时, 这第2个MC4000就相当于一个hdmi转vga的头子了. 脑洞加宽的进阶提示 又学知识了吧~

绿联(UGREEN)HDMI转VGA线转换器带音频口 高清视频转接头适配器 电脑盒子连接投影仪电视显示器线 黑 4024859元HDMI转VGA京东去购买百科索尼(SONY) UDA-1 功放 DSEE (数码音效加强引擎) 支持播放无损音乐 USB解码功放器 银色游戏里设计的相当于这个简化版 87 点评0 原创2 好价37去购买查看详情



第十五关: 投币机

脑洞加宽的进阶提示

这一个非常有意思, 除了关卡本身, 作者给配套的故事就比较经典.

"隐藏指令":

首先是卡尔听说了MCxxxx元件的隐藏指令, 然后张工告诉他不是隐藏的, 中文原版说明书上有的, 你们用的英文版忘了翻译这一节了而已 (求卡尔此时心里的阴影面积脑洞加宽的进阶提示 ). 作者太坏了......这种桥段也想得出.....
2个"隐藏指令"如下:

1. gen pn x y: 如 gen p0 2 1 效果等同于

mov 100 p0
slp 2
mov 0 p0
slp 1

2. @: 在指令行左边加上@符号代表此行代码只执行一次, 之后将被忽略. 较少使用.

试试把前面几关用的一些代码用gen代替, 也许能提高不少成绩哦.脑洞加宽的进阶提示

邮件:

戴维: 你们去过三国游乐园(这不是翻译名)吗? 我刚去了深圳的一家, 他们重塑的古代中国社会风貌真是太棒了! 你甚至要用古铜钱来买东西, 就像你真的在古代一样. 我看他们工作人员用手数钱, 是不是有点傻? 我觉得他们可以用投币机来数钱, 那就快多了, 所以我跟他们谈了建投币机的笔生意.
卡尔: 嗯.....投币机不符合那里的历史风貌吧?
戴维: 我跟他们谈过外观问题了. 把投币机造成刻着龙的山形就可以了. 你只要把足够的币投进去, 比如一个馒头的价格. 它就会噹一声通知工作人员把馒头给你, 然后退你零钱.

提示:

我们要设计的这个投币机可以接受3种币值, 1铢5铢12铢. 这老美开发的游戏用到12铢这个独特的币算是有点考究的了, "秦钱半两重十二铢", 三国游乐园里用秦半两, 没毛病. 脑洞加宽的进阶提示 又学知识了吧.
PCB板上有个定价元件, 当投入的币值之和大于或等于定价时, 要马上敲响4秒钟并同时开始退零钱, 而零钱优先退5铢的, 不够5铢时再退1铢的.
3种币值就是3个连续输入信号, 用2个MC元件来联机处理太浪费了. 不知道你在第十二关有没有用过DX300这个元件 (什么? 没有攻略直接跳过那关了? ). 这里我用使用DX300来把3个连续信号转换成1个离散信号来输入. 先来看一下DX300用法:脑洞加宽的进阶提示离散转连续, 离散信号数字只接受1和0, 大于1的都当成1, 小于1的都当成0. 离散值3位数从左至右对应p2 p1 p0
脑洞加宽的进阶提示连续转离散, 连续信号值只接受0和100, 大于100的都当成100, 小于100的都当成0. p2 p1 p0分别对应 100 010 001, 同时输入时将和值输出到离散端.
DX300是个非常强大的元件, 会在游戏中起到重要的作用.

分析:

从测试数据可以看出, 不会同1秒内多次投币, 也不会多次退币.
我们用1个DX300同时接收3个投币输入, 将会出现4种输入值: 000/001/010/100, 分别对应未投/投1铢/投5铢/投12铢. 未投币时我们什么都不要管, 直接跳到下一秒执行; 投了币就把币值加到acc中;
acc的值大于或等于定价器时, 输出"gen p1 4 0"用来敲4秒钟. 然后减去定价把余额退出来.
而每个退币的信号完全可以用 "gen pn 1 1" 生成, 所以我们用1个MC4000负责2个退币输出工作.

不知道你们会怎么设计, 我费掉些脑细胞把代码精简到只要1个MC6000和1个MC4000完成的. 如下图:
脑洞加宽的进阶提示判断币值我用了1个tcp指令配合1个tgt, 先存5铢到dat, 大于010(即100, 不会有其它值)时存12铢, 小于010时先存1铢, 再判断如果不大于0(即等于0, 这里就是个双重判断了)时再存成0铢. 然后把dat加进acc. 这样用7行代码算好总币值了.
接着判断总币值是否大于或等于定价. 是的话就敲钟, 如果大于还得退零钱. 由于退钱已经计划交给退钱模块(另1个MC4000)处理, 所以这里只需要把零钱数告诉退钱模块就是了. 我又用了一次tcp指令!脑洞加宽的进阶提示 钱不够直接跳到结束, 然后扣钱, 有余额就退钱, 然后敲钟.
退钱模块收到余额数值放进acc, 再循环判断是够5铢, 够就退面值5铢的, 不够了就退1铢的.

呵呵, 是不是觉得有点复杂了? 别给我说用C语言一下就搞定了. 我有50架航母也随便搞定7个insane难度的虫族电脑啊. 脑洞加宽的进阶提示

多币值投币器_淘宝搜索s.taobao.com去看看


总结:

篇一目前有900+收藏 190+赞. 不知道能坚持看完这篇二的能有多少人. 如果有人完成一周目开启海上城市之章的一定要@我哦脑洞加宽的进阶提示

后面的关卡越来越复杂了, 我感觉每一关都够写篇原创贴了. 就是怕没人关注没人看脑洞加宽的进阶提示


展开 收起

腾达(Tenda)A9 300M 家用wifi信号放大器 无线路由器穿墙伴侣 wifi中继器 无线扩展器 信号增强器

腾达(Tenda)A9 300M 家用wifi信号放大器 无线路由器穿墙伴侣 wifi中继器 无线扩展器 信号增强器

暂无报价 去购买

索尼(SONY) UDA-1 功放 DSEE (数码音效加强引擎) 支持播放无损音乐 USB解码功放器 银色

索尼(SONY) UDA-1 功放 DSEE (数码音效加强引擎) 支持播放无损音乐 USB解码功放器 银色

暂无报价 去购买

多币值投币器_淘宝搜索

多币值投币器_淘宝搜索

暂无报价 去购买

绿联(UGREEN)HDMI转VGA线转换器带音频口 高清视频转接头适配器 电脑盒子连接投影仪电视显示器线 黑 40248

绿联(UGREEN)HDMI转VGA线转换器带音频口 高清视频转接头适配器 电脑盒子连接投影仪电视显示器线 黑 40248

暂无报价

STR-DH790 7.2声道 AV功放

STR-DH790 7.2声道 AV功放

暂无报价

SONY 索尼 STRDH770 7.2声道4K AV功放机

SONY 索尼 STRDH770 7.2声道4K AV功放机

暂无报价

索尼 SONY TA-A1ES 合成式 立体声 功率放大器 银色

索尼 SONY TA-A1ES 合成式 立体声 功率放大器 银色

18299元起

SONY 索尼 STR-DN1080 7.2声道 功放 黑色

SONY 索尼 STR-DN1080 7.2声道 功放 黑色

暂无报价

SONY 索尼 STRDN1080.CEK 7.2声道功放机 黑色

SONY 索尼 STRDN1080.CEK 7.2声道功放机 黑色

暂无报价

SONY 索尼 UDA-1 USB解码功放器

SONY 索尼 UDA-1 USB解码功放器

暂无报价

SONY 索尼 HAP-S1 硬盘式音频播放器 内置功放机 500G硬盘 4.3英寸液晶屏

SONY 索尼 HAP-S1 硬盘式音频播放器 内置功放机 500G硬盘 4.3英寸液晶屏

暂无报价

DENON 天龙 AVC-X6800H 功放机家庭影院音响11.4声道功率放大器13声道全景声解码 独立单片放大器双核DSP 高端功放

DENON 天龙 AVC-X6800H 功放机家庭影院音响11.4声道功率放大器13声道全景声解码 独立单片放大器双核DSP 高端功放

26800元起

marantz 马兰士 NR1510 5.1声道功放机 黑色

marantz 马兰士 NR1510 5.1声道功放机 黑色

3758元起

昌业法国珊瑚礁Atoll IN400 SEHIFI音响合并式功率放大器

昌业法国珊瑚礁Atoll IN400 SEHIFI音响合并式功率放大器

42350元起

昌业法国珊瑚礁Atoll MS120 数字播放器 耳放前级全能解码器

昌业法国珊瑚礁Atoll MS120 数字播放器 耳放前级全能解码器

9800元起

DENON 天龙 PMA-600NE 功放机 银色

DENON 天龙 PMA-600NE 功放机 银色

2809元起

天龙 AVR-X580BT 5.2声道功放机

天龙 AVR-X580BT 5.2声道功放机

3049元起

昌业法国珊瑚礁Atoll IN300 家用HIFI音响 合并式功率放大器

昌业法国珊瑚礁Atoll IN300 家用HIFI音响 合并式功率放大器

25380元起

昌业挪威 黑格尔HEGEL H390 HIFI全能合并功放 MQA功率放大器

昌业挪威 黑格尔HEGEL H390 HIFI全能合并功放 MQA功率放大器

44500元起

昌业法国珊瑚礁Atoll AM400 家用HIFI音响纯后级 功率放大器

昌业法国珊瑚礁Atoll AM400 家用HIFI音响纯后级 功率放大器

38000元起
24评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
141
扫一下,分享更方便,购买更轻松