2016-10-05 3 views
1

私はTI-BASICゲームを作っています。プレイヤーはホーム画面上で2Dマップを移動できます。それを表示するには、マトリックスを「関数」に渡す方法

[[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]] 

...と、この「機能」:私は、各マップの8×16の行列を作る

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 

[[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 

あるいは、もしここでは(自分の与えられた表示機能に基づいてprgmDISPLAY付き)の例であります行列は[A]に格納されます。

+1

これは私が探していたものです。私は 'Ans'をプログラム間で使うことができないことに気づいていなかったし、サブプログラムで使うことは素晴らしい解決策であり、特にLblとGotoが遅くなる可能性があるからです。 –

1

残念ながら、TI-84にはメソッドがありません。

私はあなたの最善の策は、その "機能"だけを持つ別のプログラムを作成し、必要に応じてメインプログラムの中でその "サブプログラム"を実行することです。これはメソッド呼び出しに最も近いことです。また、LblGotoコマンドで混乱させることもできますが、より大きなプログラムで使用するには手間がかかります(遅くなります)。

関連する問題