Menu

第6回 文字や記号を動かしてみよう


文字や記号を動かしてみよう。
好きな位置に文字や記号を表示する命令に LOCATE があるよ。
今日は、この命令を使って、文字や記号を動かしてみよう。

まずは、 X を横方向に描いて並べてみよう。
以前、使った WAIT の命令も使ってゆっくりと横に描いていくプログラムを考えよう。
例えば、こんなふうに入力してみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE I, 2
40 PRINT "X"
50 WAIT 60
60 NEXT

RUNを押して実行してみよう。
 X が、ゆっくりと横に20個表示されたかな。
横に表示していくスピードは、 WAIT の数値を変更すると、変わるよ。

さて、次は、 X を描いては、 WAIT で数秒待ったあとに CLS で画面を消して、その後、横に移動して表示してみよう。
例えば、こんなふうに CLS を55行目に追加してみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE I, 2
40 PRINT "X"
50 WAIT 60
55 CLS
60 NEXT

RUNを押して実行してみよう。
 X が、ゆっくりと横に移動していったかな。
横に移動していくスピードは、 WAIT の数値を変更すると、変わるよ。

それでは、今度は X を縦方向に描いて並べてみよう。
どうすればいいかな。考えてみよう。

例えば、こんなふうに入力してみよう。さっきの最初のプログラムのLOCATEIを入れ替えてみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE 2, I
40 PRINT "X"
50 WAIT 60
60 NEXT

RUNを押して実行してみよう。
 X が、今度は、ゆっくりと縦に20個表示されたかな。

それでは、さっきと同じように X を描いては、 WAIT で数秒待ったあとに CLS で画面を消して、その後、縦に移動して表示してみよう。
例えば、こんなふうに CLS を55行目に追加してみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE 2, I
40 PRINT "X"
50 WAIT 60
55 CLS
60 NEXT

RUNを押して実行してみよう。
 X が、ゆっくりと縦に移動していったかな。
縦に移動していくスピードは、 WAIT の数値を変更すると、変わるよ。

それでは、今度は X を斜め方向に左上から右下に描いて並べてみよう。
どうすればいいかな。考えてみよう。

例えば、こんなふうに入力してみよう。さっきの最初のプログラムのLOCATEを2つともIにしてみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE I, I
40 PRINT "X"
50 WAIT 60
60 NEXT

RUNを押して実行してみよう。
 X が、今度は、ゆっくりと斜め方向に左上から右下に20個表示されたかな。

それでは、さっきと同じように X を描いては、 WAIT で数秒待ったあとに CLS で画面を消して、その後、斜め方向に移動して表示してみよう。
例えば、こんなふうに CLS を55行目に追加してみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE I, I
40 PRINT "X"
50 WAIT 60
55 CLS
60 NEXT

RUNを押して実行してみよう。
 X が、ゆっくりと斜め方向に移動していったかな。
斜めに移動していくスピードは、 WAIT の数値を変更すると、変わるよ。

さて、ここで課題にチャレンジしてみよう。
右上から左下に向って20個表示するにはどうすればいいかな。
いろいろと考えてみてね。

例えば、こんなふうに入力してみよう。さっきの最初のプログラムのLOCATEの左側のI20-Iにしてみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE 20-I, I
40 PRINT "X"
50 WAIT 60
60 NEXT

RUNを押して実行してみよう。
 X が、今度は、ゆっくりと斜め方向に右上から左下に20個表示されたかな。

それでは、さっきと同じように X を描いては、 WAIT で数秒待ったあとに CLS で画面を消して、その後、斜め方向に移動して表示してみよう。
もう、わかるね。例えば、こんなふうに CLS を55行目に追加してみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE 20-I, I
40 PRINT "X"
50 WAIT 60
55 CLS
60 NEXT

RUNを押して実行してみよう。
 X が、ゆっくりと斜め方向に移動していったかな。
斜めに移動していくスピードは、 WAIT の数値を変更すると、変わるよ。

では、次の課題にチャレンジしてみよう。
今度は、 X を左上から右下に、同時に Y を右上から左下に20個表示してみよう。
どうすればいいかな。いろいろと考えてみよう。

例えば、こんなふうに入力してみよう。さっきのプログラムで
43 LOCATE 20-I, I
45 PRINT "Y"

と入力してみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE I, I
40 PRINT "X"
43 LOCATE 20-I, I
45 PRINT "Y"
50 WAIT 60
60 NEXT

RUNを押して実行してみよう。
 X が、ゆっくりと斜め方向に左上から右下に、 Y が右上から左下に20個表示されたかな。

それでは、さっきと同じように X  Y を描いては、 WAIT で数秒待ったあとに CLS で画面を消して、その後、斜め方向に移動して表示してみよう。
もう、わかるね。例えば、こんなふうに CLS を55行目に追加してみよう。

10 CLS
20 FOR I=1 TO 20
30 LOCATE I, I
40 PRINT "X"
43 LOCATE 20-I, I
45 PRINT "Y"
50 WAIT 60
55 CLS
60 NEXT

いままでは、規則正しく、並べてみたけど、これを不規則に並べてみよう.
不規則に並べるには乱数 RND(20)+1 を使ってみよう。
ここで、RND(20)は、1~20の数字を不規則に選び出してくれる命令だよ。
それでは、プログラムを次のように直してみよう。
10 CLS
20 FOR I=1 TO 20
25 N=RND(20)+1
30 LOCATE N, I
40 PRINT "X"
50 WAIT 60
60 NEXT

RUNを押して実行してみよう。
 X が、ゆっくりと不規則に右に左に20個表示されたかな。