まる、さんかく、しかく

BASIC入門編

ひろじいべーしっくch(旧:ひろじいチャンネル)  第三回の動画の解説・補足。(0-003)

結論

GCIRCLE、GLINE、GBOX、GOSUBなどの命令を紹介するよ。

GCIRCLE 円を描きます。

GLINE 直線を描きます。

GBOX 四角形を描きます。

GOSUB~RETURN ラベル(@)のサブルーチンに移動します。

プログラム

今回のプログラムはこちら。(公開キー44425K433、LOAD”N03_MARU_HOKA”)

命令の説明

このブログにおいてはなるべく専門用語を使用せずに非常に短く簡潔に説明しています。

詳細を知りたい方は公式リファレンス等も参照してください。

(注)座標について

コンピュータ言語のグラフはY軸が逆になっています。

学校等で習う普通のグラフ

ふつうのグラフ↑

コンピュータ言語で用いるグラフ↓

コンピュータ言語で用いるグラフ

利用する場所は、通常は図のようにタテもヨコも0以上の正の整数です。

利用する場所は、通常は図のようにタテもヨコも0以上の正の整数です。

通常はタテ0ヨコ0の位置は画面の左上端になります。

座標にマイナスを設定すると画面外で表示しようとします。

ここでは詳しく説明しませんが、ある設定によってタテ0ヨコ0の位置も変更ができます。

GCIRLE

GCIRLE 中心点X, 中心点Y,半径の長さ

読み方は「ジーサークル」。座標の横をX、座標の縦をYとする中心点と半径の長さから円を描きます。

今回のプログラムの3行目ではGCIRCLE 150,150,80なので次の図の様な円になります。(数字や補助線は表示されません。以下同様。)

GLINE

GLINE 始点X,始点Y,終点X,終点Y

読み方は「ジーライン」。始点から終点に直線を描きます。

今回のプログラムの9行目ではGLINE 50,200,250,200なので次の図の様な線になります。

GBOX

GBOX 始点X,始点Y,終点X,終点Y

読み方は「ジーボックス」。始点から終点を対角線とする四角形を描きます。

今回のプログラムの11行目ではGBOX 50,60,200,200なので次の図の様な四角形になります。

GOSUB~RETURN

GOSUB~RETURN

読み方は「ゴーサブ、リターン」。@(このアットマークを「ラベル」といいます。)で表すラベルの場所に実行が飛んでいきます(実行を移します)。RETURN文のある場所まで実行すると飛んできたGOSUB文の次の場所に戻り、そこから実行を続けます。

今回のプログラムの5行目ではこの5行目に到着した段階で13行目@KURIKAESIのある場所に実行を移します。19行目のRETURNに到着した段階で6行目に戻ります。その後、10行目に到着した段階で13行目@KURIKAESIのある場所に再び実行を移します。この場合は19行目のRETURNに到着した段階で11行目に戻ります。

WAIT

WAIT [フレームカウント]

フレームカウント(1フレームは1/60秒)の時間、停止します。フレームカウントを省略した場合はWAIT1と同じです。

今回のプログラムの18行目で設定している理由は、ここで少し停止しておかないと三角形が見ずに(実際は高速で描いてすぐ17行目のACLSで消されてしまい)次の四角形まで描いて終了してしまうので、これを防止するためです。

プチコン4の処理があまりにも高速なので、人間であるプレイヤーの時間感覚と大幅にズレがあることを憶えておいて下さい。

動作の説明

今回のテーマは図形を描くことですが、プログラムの実行画面を見ていただくと理解はしやすいと思います。そちらとは別に特筆すべきはサブルーチンの役目のことであります。

前回のGOTO文もラベル(@)にむけて実行を移動しますが、行きっぱなしのイメージです。

今回のGOSUB文は、ラベル(@)にむけて実行を移動しますが、RETURN文で戻るという説明をしました。これはどの様な意味があるのか考えてみましょう。

GOSUB文を利用しないと、次のプログラムになります。(公開キー44425K433、LOAD”N03_MARU_HOKA_1″)

5~9行目と15~18行目はラベル名の違い以外は全く同じです。

今回はたった2回なのであまり無駄には見えないかもしれませんが、この部分の回数を頻繁に多く使う場合には、その分だけコピーしていかなければならなくなります。そこでこの部分をサブルーチンとしてまとめることで無駄な入力やプログラム解析をしやすくするために登場したのがGOSUB文です。

N03_MARU_HOKA_1

上記のダブっていた部分が

N03_MARU_HOKA

GOSUB~RETURNによって一つにまとまりました。

まとめ

GCIRCLE 円を描きます。

GLINE 直線を描きます。

GBOX 四角形を描きます。

GOSUB~RETURN ラベル(@)のサブルーチンに移動します。

WAIT 指定した時間を停止します。

コメント

タイトルとURLをコピーしました