2016-10-05 3 views
1

Я делаю игру TI-BASIC, где игрок может перемещаться по 2-D картам на главном экране. Я делаю матрицу 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 

Теперь у меня есть несколько карт (матрицы) и должны «позвонить» эта функция с другой матрицей без повторного ввода этого кода каждый раз. Есть ли способ сделать это?

ответ

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 
+1

Это именно то, что я искал. Я не знал, что «Ans» можно использовать во всех программах, и использование его в подпрограмме - отличное решение, особенно потому, что 'Lbl' и' Goto' могут быть медленными. –

1

К сожалению, у TI-84 нет методов.

Я думаю, что ваш лучший выбор - это создать еще одну программу с этой «функцией» и выполнить эту «подпрограмму» внутри вашей основной программы всякий раз, когда вам это нужно, что ближе всего к вызову метода. Вы также можете объединиться с командами Lbl и Goto, но это может быть более сложным (и более медленным) для использования с более крупными программами.

Смежные вопросы