如何将矩阵传递到"功能"

时间:2016-10-05 22:56:13

标签: function maps ti-basic

我正在制作TI-BASIC游戏,玩家可以在主屏幕上移动二维地图。我为每张地图制作了一个8x16矩阵:

    [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
     [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     [1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1]
     [1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1]
     [1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1]
     [1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
     [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]

......以及这个"功能"显示它:

    For(A,1,8)
    For(B,1,16)
    Output(A,B,sub(" I",[A](C,D)+1,1))
    End:End

现在,我有多个地图(矩阵),需要"呼叫"该函数具有不同的矩阵,而不是每次都重新键入该代码。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

不幸的是,TI-84没有方法。

我认为你最好的选择就是创建另一个只有“功能”的程序,并在你需要的时候在主程序中执行“子程序”,这是你调用方法最接近的事情。您也可以使用LblGoto命令,但使用较大的程序可能会比较复杂(而且速度较慢)。

答案 1 :(得分:0)

可以使用Ans变量将参数传递给方法。以下是一个示例(基于您给定的显示函数prgmDISPLAY):

prgmDISPLAY
For(A,1,8
For(B,1,16
Output(A,B,sub(" I",Ans(C,D)+1,1
End
End

然后您可以通过从主程序中调用prgmDISPLAY来调用此方法,如下所示:

[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1][1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1][1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1][1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1][1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1][1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1][1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1][1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
prgmDISPLAY

或者,如果矩阵存储在[A]中,只需执行:

[A]
prgmDISPLAY