2017-02-09 13 views
1

私はTI-84 Plus CE用のTycoonスクリプトを作成しましたが、それは本当に良いとは思いません。 私は計算機プログラミングでそれほど良くはありません。私はちょうど友人といくつかのYouTubeのビデオからいくつかを学んだ。Tycoonスクリプトfor TI-84 Calculator

私はこのスクリプトをより良くするためにこのスクリプトを改善する方法を知っていますか?

は、ここで私が持っているものです。

ところで->はSTOキーです。

:ClrHome 
:13->S 
:5->T 
:13->X 
:5->Y 
:0->B 
:5->C 
:1->D 
:Output(T,S,"CASH:" 
:Output(Y,X,"M" 
:getkey->A 
:X->S 
:Y->T 
:If A=26 
:Then 
:X+1->X 
:If X=27 
:26->x 
:End 
:If A=34 
:Then 
:Y+1->Y 
:If Y=11 
:10->Y 
:End 
:If A=25 
:Then 
:Y-1->Y 
:If Y=1 
:2->Y 
:End 
:If A=11 
:Then 
:Stop 
:End 
:If X=D and Y=C 
:Then 
:B+1->B 
:Output(1,6,B 
:End 
:If B≥200 
:Then 
:6->E 
:1->F 
:Output(E,F,"5" 
:End 
:If X=F and Y=E and B≥200 
:Then 
:B+5->B 
:Output(1,6,B 
:End 
:If B≥1500 
:Then 
:7->G 
:1->H 
:Output(G,H,"10" 
:End 
:If X=H and Y=G and B≥1500 
:Then 
:B+10->B 
:Output(1,6,B 
:End 
:End 
+2

codereview.stackexchange.com(正しく動作していることを前提としています)に属している可能性がありますので、この問題を解決するために投票しています。何が改善される必要があるのか​​、問題は何かを述べるべきです。 –

答えて

2

この性質の今後の質問はcodereview.SEで尋ねる必要がありますが、とにかく最適化をいくつか見ていきます。

私はスピードではなくサイズの最適化を探しています(しかし、プログラムが高速になるかもしれません)。 はここにいくつかです:

  • まず第一に、これらの行の4は、その終了引用符を削除することができ(-4)
  • 0->B:5->CDelVar B5->Cは(-1)
  • (次のコロンを削除することができます)することができ
  • 条件が1行の場合、IfステートメントにThenまたはEndは必要ありません。だから、:If A=11:Then:Stop:Endはちょうど私が見る主要な最適化のための今すぐ:If A=11:Stop(-4)

ことができます。

まず、そしておそらくより明らかに、あなたはたくさん:Output(1,6,Bを呼び出しているという事実です。あなたは自分のIfブロックの外側にこれを移動し、あなたがについて知られていない可能性があり-4バイト各

第二に、ためThenEndを削除することができますようにそれは返すmin(max(コマンドです、見えます2つの値の小さい方または大きい方、またはリストのそれぞれの方が大きい。ここでは例です:上記のコードは同等です

:If A=26 
:Then 
:X+1->X 
:If X=27 
:26->X 
:End 

:If A=26 
:min(26,X+1->X 

あなたはこの最適化を4回使用することができますようにそれは、見えます、それはプログラムが小さくなるため重要である、より速く、そしてより読める。

全体的に、私はあなたを助けてくれることを願っています。何か質問があればお尋ねください:)

+0

その最適化が私を助けてくれたのですが、問題のポイントは、大物の機能で実際の大物をより良くする方法があればでした。 –

+1

さて、私は私の答えに客観的になっています。あなたはより主観的なものを要求しています。あなたが "より良い"(私が対処したより速い/小さい以外の)ものを教えてくれていないので、私はこれ以上考えることはできません。そして、もしあなたがそれらのアイデアを持っているなら、あなたはいつも自分自身で試すこともできます:)私は幾分助けてくれるとうれしいです – Timtech