0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

レトロPCのためのBASIC講座12 文字列操作

Last updated at Posted at 2025-07-13

前回のおさらい

前回は、ランダムアクセスファイルの操作を行いました。
レトロPCのためのBASIC講座11

乱数値の取得と文字列操作

今回は、決まった文字だけを受け付け入力された文字のN番目もの自が何であったかを入力して記憶力を試すゲームを作ってみます。

プログラムは以下の通りです。

KIOKU.BAS
100 CLS : S$="" : RANDOMIZE
110 IN$="0123456789ABCDEF"
120 LOCATE 30,11:PRINT "-0123456789-"
130 G$ = INKEY$
140 IF G$="" THEN 130
150 LOCATE 30,10:PRINT "[";G$;"]"
160 IF NOT INSTR(IN$,G$)>0 THEN 130
170 S$=S$+G$
180 LOCATE 30,11:PRINT "-0123456789-"
190 LOCATE 30,12:PRINT "=";S$;"="
200 IF LEN(S$)=10 THEN 220
210 GOTO 130
220 CLS
230 R=INT(RND*10+1)
240 PRINT R;"ノ ケタノ スウジ ハ?";
250 INPUT "",A$
260 IF MID$(S$,R,1)=A$ THEN PRINT "セイカイ"
290 END

解説

100行目
CLSで画面を消して、入力される文字変数S$を殻に初期化、RANDOMIZEで乱数の種を入力します。
110行目
入力できる文字を持っている変数に0~9とA~F要するに16進数で使う文字を設定しています。
120行目
何桁入力したかを示す文字列を(X,Y)=(30,11)の位置に表示します。
130~150行目
入力した文字を1文字筒表示していく
160行目
INSTR関数を使って16進数で使う文字かっどうかを判定している。
16進数で使われる文字以外はもう一度入力する。
170行目
入力された文字ほS$に追加していく。
180~210行目
長さが10文字になるまで入力を繰り返す。
LEN関数は文字の長さを示している。
220~230行目
画面を消して、乱数で何文字目を指定するかを発生させる
INT(RND*10+1)は1から10までの乱数を発生させる式
240行目
メッセージを出してN番目の文字が何かの入力を求める
250行目
乱数で発生させた位置の文字をMID$関数で取得し正解を判定する。
MID$(対象文字列,N番目,M文字)で
対象文字列のN番目からM文字とって返す関数

今回の動画

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?