2017-02-09 1 views
1

TI-84 Plus CE 용 Tycoon 스크립트를 만들었는데 정말 좋다고 생각하지 않습니다. 저는 계산기 프로그래밍에 능숙하지 못하며 많은 것을 알지 못합니다. 방금 친구와 몇 개의 YouTube 동영상에서 배웠습니다.TI-84 계산기 Tycoon 스크립트

궁금한 점이 있으시면 누구나이 스크립트를 개선하여 어떻게 개선 할 수 있는지 알고 있습니까?

여기에 내가 가진 무엇 :

는 Btw는 ->는 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->CDelVar B5->C이 (-1)
  • (다음 콜론을 제거 할 수 있습니다) 될 수 있습니다
  • 조건이 한 행인 경우 If 문에 Then 또는 End이 필요하지 않습니다. 그래서, :If A=11:Then:Stop:End은 될 수 :If A=11:Stop (-4)

지금 내가 보는 주요 최적화를 위해 :

, 먼저 그리고 아마도 더 분명, 당신은 많은 :Output(1,6,B를 호출 사실이다. 당신이 당신 If 블록 외부에서이 이동하고 당신에 대해 알고하지 않을 수 있습니다 -4 바이트 각

둘째,ThenEnd을 제거 할 수 있습니다처럼은을 반환 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