'숫자야구'에 해당되는 글 4건

  1. 2022.10.12 TI-84 plus에서 야구게임
  2. 2022.10.12 algebra fx-2.0에서 야구게임
  3. 2022.05.30 HP-39gs에서 야구게임
  4. 2022.02.21 1280 bytes vs 4096 bytes

TI-84 plus에서 야구게임

계산기 2022. 10. 12. 23:15 posted by tolkien

- hp-39gs에서 야구게임

- sharp el-5230에서 야구게임

- algebra fx-2.0에서 야구게임

 

하는김에 탄력받아서...

가지고 있던 TI-84 plus에도 마찬가지로 porting해봤습니다.

  1. afx-2.0과 마찬가지로 if <condition>에서 OR 및 AND 연산자를 쓸 수 있습니다.
  2. Disp 명령을 쓸 수 있어서 이쁘지 않지만, 출력을 한줄로 처리할 수 있었습니다.
  3. GOTO문도 마찬가지.
  4. hp-39gs나 afx-2.0과 달리 multi statement를 지원하지 않아서 프로그램 line 수가 많습니다만, 편집하는 계산기의 column이 좁아서 큰 단점으로 느껴지지 않았습니다.

TI-84 plus는 casio fx-9860, hp-39gs와 비슷한 위치를 지닌 제품입니다. 단지 미국 수학교육 주교재 취급을 받고 있어서 가격이 비싼 편입니다. cpu는 z-80, 8bit cpu... (심지어, 칼라제품로 cpu는 z-80으로 알고 있습니다.)

 

code는 아래와 같습니다. '->'는 →입니다.

더보기
0->A
While A=0
iPart(rand*10)->A
End
0->B
While B=0 or B=A
iPart(rand*10)->B
End
0->C
While C=0 or C=A or C=B
iPart(rand*10)->C
End

Lbl 0
Input "GUESS: ",G
If G=-1
Then
Disp A*100+B*10+C
End
iPart(G/100)->D
fPart(G/10)*10->F
(G-100*D-F)/10->E
0->R
0->S
If D=B or D=C
Then
R+1->R
Else
If D=A
Then
S+1->S
End
End
If E=A or E=C
Then
R+1->R
Else
If E=B
Then
S+1->S
End
End
If F=A or F=B
Then
R+1->R
Else
If F=C
Then
S+1->S
End
End
If S=3
Then
Disp "GOOD JOB"
Return
End
Disp S,"STRIKE",R,"BALL"
Goto 0

baseball_ti-84.txt
0.00MB

algebra fx-2.0에서 야구게임

계산기 2022. 10. 12. 22:19 posted by tolkien

- hp-39gs에서 야구게임

- sharp el-5230에서 야구게임

 

 이번에 입수한 casio algebra fx-2.0(이하 afx-20)에 야구게임을 porting(?) 해보았습니다.

후속 version인 fx-2.0 plus가 2001년에 나왔으니, 나온지 20년이 넘은 제품입니다.

porting(?)하면서 앞 두 기종과 다른 점은...

  1. GOTO를 제공한다. (EL-5230과 같음) 하지만, goSub를 지원하지 않는다.
  2. 외부 program을 subroutine처럼 쓸 수 있다. RETURN 지원 (hp-39gs와 동일)
  3. 출력은 한번에 한개만 가능 (EL-5230과 비슷)
  4. IF (condition) ... 에서 AND 및 OR 연산자 사용할 수 있다.
    (hp-39gs에서는 쓰지 못하는 것으로 알고 있어서 check routine을 별도 program으로 만들어서 호출했는데, emulator로 확인해니 hp-39gs도 AND 및 OR 연산자를 쓸 수 있는 것 같습니다. 그렇다면 더 간결하게 작성할 수 있을 것같네요.)

afx-2.0는 위치상 fx-9860 series보다 상위 제품입니다. CAS를 지원하고, 후속기종이 Casio ClassPad series입니다. 나온지 오래되어서 기본 프로그램이 조금 낡은 느낌이 나고, 버튼이나 명령어 배치가 조금 불편합니다. CPU는 NEC v30mx로 intel 8086 호환이 됩니다. 그래서, OS로 ROM-DOS가 깔려있다고 합니다.

 

 

 code는 아래와 같습니다. '->'는 →이고, <는 ▲입니다.

더보기
Do:Int (Ran# x10)->A:LpWhile A=0
Do:Int (Ran# x10)->B:LpWhile B=0 Or A=B
Do:Int (Ran# x10)->C:LpWhile C=0 Or A=C Or B=C
Lbl 0
"GUESS"?->G
If G=-1:Then Ax100+Bx10+C<
IfEnd
Int (G/100)->D
Frac (G/10)x10->F
(G-100xD-F)/10->E
0->S:0->R
If D=B Or D=C
Then R+1->R
Else If D=A
Then S+1->S
IfEnd:IfEnd
If E=A Or E=C
Then R+1->R
Else If E=B
Then S+1->S
IfEnd:IfEnd
If F=B Or F=A
Then R+1->R
Else If F=C
Then S+1->S
IfEnd:IfEnd
 
If S=3:Then
"GOOD JOB":Stop
IfEnd
If S=1:Then "1 STR"<
Else If S=2:Then "2 STR"<
Else "NO STR"<
IfEnd:IfEnd
If R=1:Then "1 BALL"<
Else If R=2:Then "2 BALL"<
Else If R=3:Then "3 BALL"<
Else "NO BALL"<
IfEnd:IfEnd:IfEnd
Goto 0

baseball_afx-20.txt
0.00MB

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

1280 bytes vs 4096 bytes

계산기 2022. 2. 21. 15:42 posted by tolkien

Sharp EL-5230을 입수해서

언제나 그렇듯이 설명서보면서 이것저것 해보다가

web에 올라온 숫자야구 프로그램을 발견했습니다.

조금 길긴 했는데, 다 꾸역꾸역 입력하고 실행해보았습니다.

그리고, 혹시나해서 memory check를 해보니 EQN 2개, 프로그램 4개가 들어있다고 하고, 남은 memory가 59bytes...

 

설명서를 보니 EL-5230은 1280 bytes를 제공한다고 합니다.

형제 기종인 EL-5250은 4096 bytes를 제공한다는 설명을 본 순간

와~ 널널하겠다.라는 생각이 불쑥 들었습니다.

 

추신. HP-12C는 400 step 지원(platinum 기준)이라서 더 작긴 한데, 거긴 명령어 세트로 제한되어서 작다는 느낌이 없었슴.

      2. HP-17bII+는 32K bytes... (광할하다.) 게다가 List, Matrix 지원

          EL-5230에서는 STAT mode에서 입력한 값을 PROG mode에서는 못 가져오네요. 아쉽...

 

EL-5230,5250.pdf
6.11MB

꼬랑지. 첨부한 숫자야구 프로그램에 버그가 있었네요.
          0~9에서 서로 다른 세개의 숫자를 맞추는 것으로 변경했습니다.

baseball-el5230.txt
0.00MB