
@DISPHS(DISPlay Hi-Score)はハイスコアの表示位置を LOCATE 文で指定した後、変数Nに得点を代入して @DISPN(DISPlay Number)へ進みます。
@DISPSC(DISPlay SCore)はスコアの表示位置を LOCATE 文で指定した後、変数Nに得点を代入して @DISPN(DISPlay Number)へ進みます。
@DISPN(DISPlay Number)は変数Nに代入された値を得点として文字列に変換して表示します。
このときの変換とは数値を7桁の数字列に変換しています。
数値は実際には10倍で表示されているので注意が必要です。
一応、今回の得点は最小値が10点にしようと思っています。
それでは、変数Nの値が1の場合の変換をみてみます。
N$=STR$(N)
ここで変数Nの値は1です。
STR$関数は数値を数字列に変換しています。
よって変数N$の値は
"1"
です。
MID$関数の1番目の引数は、
"00000"+N$+"0"
なのでその結果は。。。
"0000010"
となります。
MID$の2番目の引数は、
LEN(N$)-1
です。
これは変数N$の文字列の長さを表しますから、
今回は1となります。
MID$関数の意味は各引数をX,Y,Zと置き換えると、
MID$(X,Y,Z)の意味は、
Xの文字列のY桁目からZ文字分を切り取るという意味なので。。。
"0000010"の0桁目から7文字を切り取るということになります。
先頭が0桁目なのでそこから7文字とすると結果は。。。
"0000010"となります。
なんだ、何も変わってないと思っている方は同じように今度は変数Nの値を123にしてやってみましょう。
N=123 なので
N$=STR$(N)は"123"です。
1番目の引数は。。。
"00000"+"123"+"0" → "000001230"となります。
LEN(N$)-1 は文字列の長さが3なので1引いて2となります。
要するに"000001230"の2桁目から7文字分ということですね。
000001230
↑ここが0桁目ですから。。。
000001230
__↑ここが2桁目ですね。ここから7文字なので。。。
0001230という結果になります。
得点を10倍した値の先頭を0で埋めた7桁の数字列ということです。
これを表示し、もとへ戻ります。