深圳IO游戏入门攻略(不定期更新)


@


没学过汇编,公众号看到的游戏,steam入手了,随手记录下

第一关 (模拟)安全摄像头

在这里插入图片描述
第一关比较简单,只需要在原来的基础上面造轮子就行。先选择右侧的器件,这里选用MC4000。(保持上下器件一致,毕竟刚接触,其他器件也不知道怎么玩,鼠标左键是连线,右键是取消)
切换到确认的选项卡,可以看到信号的输出。分析给出的活动状态的代码

  mov 0 p0       //将第一个操作数复制到第二个操作数中
  slp 6          //slp 6等价于sleep 6毫秒,在游戏中就是六个单位
  mov 100 p0
  slp 6

0电平信号走了6单位,100电平走了6单位,然后一直循环。
在来看网络输出信号的规律。
在这里插入图片描述
大体都一样,都是对某一部分循环。
0电平4单位,100电平2单位,0电平1单位,100电平1单位。

mov 0 p0
slp 4
mov 100 p0
slp 2
mov 0 p0
slp 1
mov 100 p0 
slp 1

测试成功
在这里插入图片描述
在这里插入图片描述
这里还显示了所花费的产品成本,电量以及代码行数,同时可以看到其他玩家的消耗,鼓励玩家不断优化自己的代码,成本和电量,相当于同台竞技,挺好的。第一关通过后有个纸牌游戏在这里插入图片描述
想累了,可以试着玩一下。有空做个入门的小教程,也不知道每一把是不是都有个解?

第二关 工程模型替换件

邮件和信息提升
第二关可能把一部分人整蒙了(包括我),因为没有可以参考的了,所以只能自己做了。通过提示信息和邮件,我们需要放大控制信号。器件依旧是MC4000。

由于没学习过汇编语言,所以参考自带的数据手册(下载链接在末尾,分中英两版,版主英语不行,看的是中文的)
翻阅手册,在p13-p15左右找到一些头绪
在这里插入图片描述
在这里插入图片描述
R我觉得应该是寄存器(Register)吧?咋翻译成存储器,不是很清楚,参考链接:知乎
主要是两个指令,mov 和 mul。还有一个名为acc的默认寄存器
在回想下第一关中的代码,好像就明白了一些什么

mov R/I R    //R:寄存器,I:整数类型
mov 0 p0     //把0(操作数)复制到p0(操作数)
mul R/I      //将第一个操作数的值与acc存储器相乘,并将结果存到acc

我们要做到,是将p0端的信号,放大一倍输出到p1端。那么中间势必要经过某些过程,没学过计算机的可能对这些指令不知道怎么办。我举个例子,你有两杯饮料,分别装着牛奶和橙汁,你现在需要调换两杯子之间的饮料,先前放牛奶的杯子现在要放橙汁,放橙汁的杯子现在要放牛奶。显然,如果只有手头两个装满饮料的杯子,是没有办法将内容进行调换的。所以我们需要借一个杯子,第三个杯子。牛奶的先倒在空杯子,橙汁的倒在牛奶里面,空杯子内的牛奶在倒在橙汁里,这样就完成了饮料的互换。

mov p0 acc  //将输入端的信号放到acc中
//因为需要放大一倍的信号,也就是乘以2
mul 2  // mul 2也就是 acc *= 2等价于acc = acc * 2
mov acc p1
//注意,这里需要slp 1,通过观察波形图可以得知。具体进游戏,鼠标放上去有提示
slp 1

在这里插入图片描述
在这里插入图片描述
测试成功
在这里插入图片描述

第三关 脉冲发生器

阅读邮件,注意到有条件执行五个字
在看一眼波形图
在这里插入图片描述
输入信号为100时,脉冲信号走1单位100,然后走1单位0(注意第三个,输入是100走11单位,但第12单位变0,输出也就变0)。
重点是条件这两个字,继续翻手册,p16可以得到想要的内容。
在这里插入图片描述
上述分析我们得知,当输入为100时,才产生脉冲。

  teq R/I R/I  //比较两个操作数是否相等
  //相等:执行+指令,禁止-指令,不相等:执行-指令,禁止+指令

问题来了,+ - 放在哪里呢?在p13,可以得到想要的答案
在这里插入图片描述

  teq 100 p0     //判定100 和p0相等么?相等走+指令
+ mov 100 p1     //将p1置为100,
+ slp 1          //走1单位
+ mov 0 p1       //p1置为0
  slp 1			 //若不相等,走1单位

注意这里的程序结构,由于程序是自上而下的,有的人可能写成这样

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

测试后:
在这里插入图片描述
还是要注意下,代码的先后顺序的。对了,可以设置断点,不断的试错。成功是建立在无数次失败上面的!
测试成功
在这里插入图片描述
点击模拟,没有前面两个那么丝滑了,嗯,我在想想咋改进,让它丝滑点。-----------------------------2021/3/14更
在这里插入图片描述

第四关 发光标志

看一眼邮件和提示信息
在这里插入图片描述
在看一眼波形图
在这里插入图片描述
好像找不到什么思绪。看了下点击0和点击1两部分,是互补的。第二关中给的图中有这么一个指令:not
在这里插入图片描述
在这里插入图片描述
acc寄存器的值默认为1,由于not不带任何操作数,所以,应该是单独的一行。注意到,点击1的波形图先是0电平,走一单位,100电平,走一单位,0到100电平靠not指令执行。

mov acc p1  //先将p1寄存器中存放acc的默认值,0
not         //acc此时的值为100
mov acc p0  //将p0寄存器中存放acc为100的状态量
slp 1       //走一单位。
//第一圈:p1 = 0,p0 = 100,走一单位
//第二圈:p1 = 100, p0 = 0,走一单位,此后循环往复。 

测试结果:
在这里插入图片描述
现在开始另外一部分,也是互补,只不过是三个部分的互补了。
没想到啥好的思路,先过关,后面来补。

//喝-0
  mov 100 p0
  slp 6
  mov 0 p0
  slp 4
//喝-1
  mov 0 p0
  slp 6
  mov 100 p0
  slp 1
  mov 0 p0
  slp 2
  mov 100 p0
  slp 1
//喝-2
  mov 0 p0
  slp 7
  mov 100 p0
  slp 2
  mov 0 p0
  slp 1

测试成功
在这里插入图片描述
-----------------------------------------------------------------2021/3/15更
PS:今天沙尘暴有点大,受不住这空气

第五关 海量男爵

第六关 垃圾音频装置

游戏成就

在这里插入图片描述
嘿嘿,空挡接龙成功10次了--------2021/3/15 1:41更
成功20次--------------------------------2021/3/16 0:32更

参考手册

中文

链接:https://pan.baidu.com/s/1aTiLpA44K2nXDvYemgvSTA
提取码:s5zx

英文

链接:https://pan.baidu.com/s/1Ydvd4dQtcaxluSrctIvLzg
提取码:xexp


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM