前回作ったプログラムで
"U","D","L","R"が入力された時の処理として
LOCATE PLAYERX,PLAYERY:PRINT " "
FLAG=1
この2行の同じ処理が行われていました。
この処理をGOSUB命令で呼び出して
実行するようにしたのが↓の写真です。
0そうだね プレイ済み
サブルーチンとは、
何度も必要となる処理、一連の作業を
まとめたもので呼び出して使います。
GOSUB @ラベル
@ラベル
処理
RETURN
GOSUB命令で指定したラベルにジャンプし、
RETURN命令で呼び出された直後に戻ります。
0そうだね プレイ済み
左右動けるように出来ましたか?
写真のプログラムで動けるようになります。
コメントで説明もいれたので
理解しやすくなっていると思います。
0そうだね プレイ済み
[プチ知識]
・1行に複数の命令を記述するには
命令と命令の間に:(コロン)を入れます。
・コメント、メモを残したい場合は
'(シングルコーテーション)を使います。
0そうだね プレイ済み
コンニチハの表示ばかりで飽きてきたかな?
今までの復習をかねて
写真のプログラムを作ってみました。
文字入力によってキャラクターが移動します。
上と下にしか移動が出来ません。
左と右に移動させるにはどうすればいいかな?
難しいかもしれませんが考えてみよう!
0そうだね プレイ済み
写真は
REPEAT~UNTIL命令を使って
「コンニチハ」を30回表示する
プログラムです。
条件式の所が変わっていますね。
0そうだね プレイ済み
WHILE~WEND命令と異なるのは
繰り返し処理をするかどうかの判断を
後ろでおこなっているので、
必ず1回は処理が実行されるという点です。
使用時に注意が必要なのは条件式の書き方です。
「成立していない間」繰り返されるので
間違わないようにしてください。
0そうだね プレイ済み
今回紹介するのはREPEAT~UNTIL命令です。
REPEAT
繰り返す処理
UNTIL 条件式
条件式が成立していない間、繰り返されます。
0そうだね プレイ済み
初心者講座[第13回]
・繰り返し処理を行うプログラム(3)
4そうだね プレイ済み
上のプログラムを実行して画面に表示された
コンニチハの数を数えた方はいるでしょうか?
実は数えてみると30ないのです!
それは画面に表示出来る行数には限りがあり
前に表示した文字が見えなくなっているのです。
本当に30回表示したのか?
確認する方法があります。
5行目を
PRINT "コンニチハ";COUNT+1
に変更して実行してみてください。
0そうだね プレイ済み
上のプログラムの解説
1行目:画面に表示されている文字を消去する
2行目:COUNTという名前の数値変数を宣言
3行目:COUNTに初期値として0(ゼロ)を代入
4行目~7行目:
COUNTの値が30より小さいか判断
30より小さいならば
コンニチハと画面に表示して
COUNTの値を1増やします
30以上ならば
繰り返すのをやめます
8行目:プログラムを終了させる
0そうだね プレイ済み
前回はFOR~NEXT命令を使って
「コンニチハ」を30回表示する
プログラムを作りましたね。
これをWHILE~WEND命令を使って
同じ内容のプログラムを記述すると
写真となります。
0そうだね プレイ済み
今回はWHILE~WEND命令を紹介します。
WHILE 条件式
繰り返す処理
WEND
条件式が成立している間、繰り返します。
0そうだね プレイ済み
初心者講座[第12回]
・繰り返し処理を行うプログラム(2)
4そうだね プレイ済み
また疑問に思った事があれば質問してね。
(講座内容に関しての事でお願いします)
0そうだね プレイ済み
STEPとは増加する量を決めていて
初期値に設定した値がどれくらいの間隔で
値を増やしていくのかを指定しています。
例えば
FOR COUNT=1 TO 10 STEP 1
だと10回繰り返し処理されます。
COUNTの値~1,2,3,4,5,6,7,8,9,10
FOR COUNT=1 TO 10 STEP 2
にすると5回繰り返し処理されます。
COUNTの値~1,3,5,7,9
0そうだね プレイ済み