MSX BASIC에서 유파를 구현해보십시오.

소개



@Nemesis씨의 쓰여진 기사 『Java로 유파를 구현해 봅니다.』에 감명을 받아, 평상시 사용하고 있는 MSX BASIC에도 유파파를 실장해 보려고 했습니다.

실행 화면




이런 느낌입니다.

코드



YUBABA.BAS
10 PRINTCHR$(153)CHR$(146)CHR$(244)CHR$(152)CHR$(156)CHR$(142)CHR$(224)"゙"CHR$(246)"。"CHR$(159)CHR$(154)CHR$(230)CHR$(229)CHR$(239)CHR$(148)CHR$(134)CHR$(150)CHR$(151)CHR$(229)"。"
20 OPEN"CON"FORINPUTAS#1:INPUT#1,N$:CLOSE#1
30 PRINT"フーン。「"N$"」"CHR$(228)CHR$(146)CHR$(147)CHR$(233)CHR$(150)CHR$(146)"。"CHR$(158)"゙"CHR$(146)CHR$(224)CHR$(152)CHR$(229)CHR$(229)CHR$(224)"゙"CHR$(232)"。"
40 A=RND(-TIME):NN$=MID$(N$,LEN(N$)-INT(LEN(N$)*RND(1)),1)
50 PRINTCHR$(146)CHR$(239)CHR$(150)CHR$(247)CHR$(149)CHR$(239)CHR$(148)CHR$(233)CHR$(229)CHR$(234)"「"NN$"」"CHR$(224)"゙。"CHR$(146)CHR$(146)CHR$(150)CHR$(146)"、「"NN$"」"CHR$(224)"゙"CHR$(246)"。"
60 PRINTCHR$(252)CHR$(150)CHR$(143)CHR$(224)CHR$(247)CHR$(237)CHR$(253)CHR$(156)"゙"CHR$(134)CHR$(157)CHR$(249)CHR$(253)CHR$(224)"゙、「"NN$"」!!"
70 END

MSX의 히라가나는 BASIC 프로그램중의 문자열에 직접 쓸 수 있습니다만, 문자 코드가 특수로 그대로 Qiita의 기사에 리스트를 게재하는 것은 곤란하기 때문에, 굳이 조금 번거로운 기술을 실시하고 있습니다.

궁리한 곳



이름 입력에서 INPUT 명령을
INPUT "けいやくしょた゛よ。そこになまえをかきな。";N$

같이 사용하면 런타임에
けいやくしょた゛よ。そこになまえをかきな。? ■

처럼 마누케인 퀘스천 마크가 표시되어 버립니다. 이번에는 명령문 파일로 "CON"을 열고 거기에서 INPUT하여 그것을 피하고 있습니다. 또한 MSX BASIC에서 문자열 N\$에서 임의로 한 문자를 선택한다고 가정하면
NN$=MID$(N$,INT(LEN(N$)*RND(1))+1,1)

라든가 쓰는 것 같은 생각이 듭니다만, 이것으로는 N\$ 에 하늘의 이름을 입력했을 경우에 NN\$ 에는 빈 캐릭터 라인이 대입되는 것만으로 할머니가 크래시 해 주지 않습니다 . 따라서 일 비틀고 있습니다. 덕분에



유파의 충돌도 재현할 수 있었습니다.

결론



끝입니다.

그러고 보니 MSX2+ 이후에는 한자 BASIC이라는 것을 사용할 수 있다는 것을 상기했기 때문에 추기



K-YUBABA.BAS
10 PRINT"契約書だよ。そこに名前を書きな。"
20 OPEN"CON"FORINPUTAS#1:INPUT#1,N$:CLOSE#1
30 PRINT"フーン。"N$"というのかい。贅沢な名だね。"
40 A=RND(-TIME):CALLKLEN(NL,N$):CALLKMID(NN$,N$,NL-INT(NL*RND(1)),1)
50 PRINT"今からお前の名は"NN$"だ。いいかい、"NN$"だよ。分かったら返事をするんだ、"NN$"!!"
60 END

좋은 웹페이지 즐겨찾기