码迷,mamicode.com
首页 > 其他好文 > 详细

TIS100入门向攻略

时间:2016-01-03 07:36:20      阅读:478      评论:0      收藏:0      [点我收藏+]

标签:

前几天某QQ群有人推荐这个游戏,百度了下找到了贴吧下载,但是攻略好像没找到,B站到是有个入门视频介绍还满有用的。

入门的话强烈推荐先看完了解个大概

http://www.bilibili.com/video/av3312630/

 

因为我也是新手没玩几天,所以程序优化什么的都没有,只能算是勉强过关,有写的中二的算法直接无视就好。

 

关卡按X行Y列为序

首先是1_1

毫无疑问这关应该没人过不了,真真正正的Hello World,左边给了IN.X到OUT.X,右边照葫芦画瓢就行

技术分享

 

1_2

这也没啥好说的,因为游戏指令只有加,减,移位和跳转,所以乘法无非就是A+A,

把数据读入寄存器,然后加自身,结果输出就完了

技术分享

 

1_3

A-P的值输出到P,P-A的值输出到N

这关主要是告诉你,一个数据可以发送到多个CPU端口。

比如IN.A先把数据

1.读入寄存器,

2.发送到右边

3.拿到右边值,用自身ACC减去拿到的值

4.把ACC结果发送到下边

右边同理,要注意的是指令的执行顺序和等待,

点击STEP单步运行可以看到A在运行到SUB RIGHT那行时在等待右边,直到右边运行到最后一行的

MOV ACC LEFT,左边才继续运行,

搞清等待非常重要,这个我刚入门时折腾了好久才搞清,那个自带的手册上好像并没有提到等待的内容,虽然我也没怎么认真看就是了......

总之等待,数据同步这个概念很重要,后面关卡会很依赖这个概念,

有时候程序明明解决思路的逻辑都想出来了,但是执行不正确,多半就是等待和执行顺序的问题

另外要注意输入,输出数量要相等,比如目前这个最简单的

A是2入(上入,右入),2出(右出,下出)

B也是2入(上入,左入),2出(下出,左出)

A输出到B数据,B一定要接收,不然程序会阻塞锁死。

同理,数据发送到没有用的CPU端口,没有处理也会锁死,

所以一定要有数据有出OUT,就必需有入IN,垃圾数据也要有接收处理的概念。

当然这是后话,就目前这关直接用直觉写就能过,总之先有这个概念,后面会用到。

技术分享

 

1_4

题目要求,G,E,L三个输出分别为数据>,=和<三种状态的真假值,

如果数据>0,那么G就为1,其他两个为0,

数据=0,那么E为1,其他两个为0

数据<0,L为1,其他两个为0

这里比较坑的是第一次你是否能读懂题,反正第一次我是没读懂这玩意,根本不是人类语言......

技术分享

 

1_5

3个IN,1个OUT

跟据S值判断

S=-1输出A

S=1输出B

S=0输出A+B

 

MOV UP ACC 	//读值到ACC
JLZ RA 		//小于0跳到RA标签处
JGZ RB 		//大于0跳到RB
MOV LEFT ACC 	//否则计算A+B并输出
ADD RIGHT
MOV ACC DOWN
JMP END
RA:MOV LEFT DOWN
MOV RIGHT ACC
JMP END
RB:MOV RIGHT DOWN
MOV LEFT ACC
END:NOP

 

因为这个代码写的比较早,后来发现,可以把第一行加个标签,

这样就不用跳到END最后一行的NOP,而是直接重头运行,可以节省一行,

不过反正目前是能过关就行,暂时不管他

 

技术分享

 

未完待续......

TIS100入门向攻略

标签:

原文地址:http://www.cnblogs.com/kileyi/p/5095750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!