'hp-39gs'에 해당되는 글 1건

  1. 2022.05.30 HP-39gs에서 야구게임

HP-39gs에서 야구게임

계산기 2022. 5. 30. 12:04 posted by tolkien

  Shart EL-5230에서 사용했던  숫자야구 프로그램을 HP-39gs에 porting해보았습니다.


 두 기종에서 제공하는 programming language(Sharp Basic vs HP Basic ?)의 차이를 보면...

  1. EL-5230은 GOTO문을 제공하지만, HP-39gs는 GOTO문이 없습니다.
  2. EL-5230에서 IF문이후 무조건 GOTO문을 써야 합니다. 즉, IF ... GOTO <lable> 형태로 고정되어 있습니다.
  3. HP-39gs의 IF문은 우리가 알고 있는 형태로 사용합니다. IF ... ELSE ... END
  4. EL-5230은 여러프로그램을 작성할 수 있지만, 서로 호출할 수 없슴. but, 내부에 subroutine을 정의하고 호출할 수 있습니다.
  5. HP-39gs는 프로그램을 파일단위로 관리하고, 상호 호출할 수 있지만, 파일내 함수를 정의할 방법이 없습니다.
  6. HP-39gs는 graphing 함수가 있다. (당연한가?) 하지만, 숫자야구에서는 쓸 일이 없슴.
  7. HP-39gs는 parameter구분은 ;를 사용하고, statement 종료는 :를 입력한다.
  8. 출력은 EL-5230보다 HP-39gs가 더 유연한 것같습니다.
    EL-5230은 string 출력과 값출력을 따로 해야 하지만, HP-39gs는 그냥 섞어서 내보낼 수 있습니다.
    그래서, HP-39gs가 출력 부분이 더 간결합니다.

code는 BASEBALL.000과 BG.CHK.000 code 두 파일을 연속해서 나열한 겁니다.
(->는 HP-39gs의 "STO" 기호로 대체해야 합니다.)

더보기
BASEBALL.000
---
INT(RANDOM*10)->A:
DO
  INT(RANDOM*10)->B
UNTIL A != B END:
DO
 DO
  INT(RANDOM*10)->C
 UNTIL B != C END:
UNTIL A != C END:
A*100+B*10+C->H:
0->R:0->S:-1->G:

DO
  INPUT G;
  "BASEBALL GAME";
  "YOUR GUESS";
  G": "S"Strike, "R"Ball";0:

  IF G==0 THEN STOP: END:
  INT(G/100)->D:
  FRAC(G/10)*10->F:
  (G-100*D-F)/10->E:

  0->S:0->R:
  A->I:D->J:RUN BG.CHK:
  B->I:E->J:RUN BG.CHK:
  C->I:F->J:RUN BG.CHK:
UNTIL G == H END:
MSGBOX "GOOD JOB"

BG.CHK.000
---
IF J==A THEN R+1->R: END:
IF J==B THEN R+1->R: END:
IF J==C THEN R+1->R: END:
IF J==I THEN
  R-1->R:
  S+1->S:
END:

첨부파일은 HP-39gs용 binary.

BASEBALL.000
0.00MB
BG.CHK.000
0.00MB