如何将矩阵传递给 "Function"
How to Pass Matrix into "Function"
我正在制作一款 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]]
...和这个 "function" 来显示它:
For(A,1,8)
For(B,1,16)
Output(A,B,sub(" I",[A](C,D)+1,1))
End:End
现在,我有多个映射(矩阵)并且需要 "call" 使用不同的矩阵来发挥作用,而无需每次都重新键入该代码。有办法吗?
很遗憾,TI-84 没有方法。
我认为你最好的选择是创建另一个程序,其中只有 "function",并在你需要的时候在你的主程序中执行那个 "subprogram",这是你可以得到的最接近的东西调用一个方法。您也可以乱用 Lbl
和 Goto
命令,但在较大的程序中使用它可能会更棘手(也更慢)。
可以使用 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
我正在制作一款 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]]
...和这个 "function" 来显示它:
For(A,1,8)
For(B,1,16)
Output(A,B,sub(" I",[A](C,D)+1,1))
End:End
现在,我有多个映射(矩阵)并且需要 "call" 使用不同的矩阵来发挥作用,而无需每次都重新键入该代码。有办法吗?
很遗憾,TI-84 没有方法。
我认为你最好的选择是创建另一个程序,其中只有 "function",并在你需要的时候在你的主程序中执行那个 "subprogram",这是你可以得到的最接近的东西调用一个方法。您也可以乱用 Lbl
和 Goto
命令,但在较大的程序中使用它可能会更棘手(也更慢)。
可以使用 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