2017-02-09 83 views
1

大亨劇本我爲TI-84 + CE大亨劇本,我不認爲這真的很好。 我不擅長計算器編程,我也不太瞭解。我剛剛從一位朋友和一對YouTube視頻中學到了一些。爲TI-84計算器

我想知道,有沒有人知道我可以改進這個腳本,使之更好?

這是我有:

者均基於->是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)
  • 0->B:5->C可以DelVar B5->C(你可以刪除以下冒號)(-1)
  • 你不需要ThenEnd你如果語句如果條件是一條線。因此,:If A=11:Then:Stop:End可以只是:If A=11:Stop(-4)

現在的主要優化我看到:

首先,也許更明顯,是你叫:Output(1,6,B了很多事實。它看起來像你可以移動這個你If塊外,並刪除ThenEnd爲-4個字節每個

其次,,你可能並不瞭解,是min(max(命令,返回兩個值或列表中的較小或較大值。這裏有一個例子:

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

上面的代碼等同於:

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

看起來你可以使用這種優化的四倍,這是顯著,因爲它使程序更小,更快,更可讀。

總的來說,我希望我能夠幫助你。如果你帶任何疑問,請諮詢:)

+0

雖然這種優化對我有幫助,但問題的關鍵在於是否有辦法讓大亨在大亨的功能方面更好。 –

+1

嗯,我的答案是客觀的 - 你要求更主觀的東西(即什麼更好?)。既然你沒有告訴我什麼是「更好」(除了我提到的更快/更小),我不能再做了,只能猜測。而且,如果你有這些想法,你也可以自己嘗試一下:)我很高興能有所幫助 – Timtech