IchigoJam プログラムの書き方・読み方

Ichigojam_書き方_アイキャッチ IchigoJam

IchigoJam で初めてプログラムを書く時

どうやって書いたらよいのか分からない、なんて事はよくあると思います。

また、ネットで見つけたサンプルコードを書き写す時にも

読み方が分からないと何だかよく分からないままになってしまいかねません。

この記事では、初めてIchigoJamでプログラミングをする人向けに、IchigoJamの基本的な書き方を解説します。

こんな人に
  • 「IchigoJam」をこれから始める人
  • 「IchigoJam」のプログラムの書き方が理解できていない人
この記事を読むと
  • 「IchigoJam」のプログラムの書き方が分かる。
  • 簡単なサンプルコードなら読み解ける力がつく。

IchigoJam」って何?という方は、下記の記事をご覧ください

実行の順番を表す「行番号」

「行番号」とは下図のように、各行の先頭に付ける番号の事です。

「行番号」は、プログラムを実行する順番を表します。

基本的に、行番号の数の小さい行から順番にプログラムが実行されます。

例えば、10番 ⇒ 20番 ⇒ 30番 ⇒ … といった具合です。

先頭に番号を付けるだけでOK

使い方としては

行の先頭(処理コマンドの前)に番号を書いて、Enterキーを押すだけです。

行番号を付けた場合、Enterキーを押した時にIchigoJamがその行を覚えてくれます
Enterキーを押した時に実行されるわけではありません。

行を書く順番は関係ない

IchigoJam はプログラムを処理する順番を、行の番号だけを見て実行しますので

行を書く順番はどの行から書いてもOKです。

例えば、20番の行 → 30番の行 → 10番の行 という順番で書いても、IchigoJamはちゃんと 10番 → 20番 → 30番 の順番で実行してくれます

実際にIchigoJamが憶えてくれている処理の順番を確認したい時は
LISTコマンド を使うと、プログラムが順番通りに表示されます。

訂正する時は、書き直してEnter

間違った時や、処理を変更したい時など、プログラムを訂正したい時は

訂正前と同じ行番号で、訂正後の行を書いてからEnterキーを押すと訂正されます。

一行まるまるを書き直しても良いのですが、面倒なのと間違いの元なので

下図のように、既に表示されている行に対して訂正をする、あるいはLISTコマンドで訂正前の行を表示させてそれに対して訂正をするのがおすすめです。

注意

訂正の時に、Enterキーを押し忘れることがよくあります。
Enterキーを押して初めて訂正されるので注意。

行番号は適度に間隔をあける

行番号の付け方は、処理の順番通りの大小関係にさえなっていれば、特に決まりはありません。

例えば

10 XXXXX
20 XXXXX
30 XXXXX
40 XXXXX

でも

1 XXXXX
2 XXXXX
3 XXXXX
4 XXXXX

でもOKです。

ただ、後者のように行と行の番号の間隔を詰めすぎると、後で行と行の間に新しい行を挿入したくなった時にやりにくくなります。

行番号は適度に間隔をあけて付けましょう。
基本は10間隔で付けるのが良いでしょう。

GOTOコマンドなどを使うと行が飛ぶ

基本的には行番号の小さい行から順番にプログラムが実行されますが

例外的にGOTOコマンドなどを使うと指定行に処理が飛びます。

GOTOコマンドについては下記の記事で詳しく説明しています。

プログラムを繋ぐ「:(コロン)」

:(コロン)は複数のコマンドを1行で書く時に使います。

書き方は、コマンド1 : コマンド2 : コマンド3 : … といった感じになります。

例えば、下図のように複数行を1行にまとめることができます。

その他よく出てくるコマンド

CLS

CLSコマンドは、画面の表示を消してきれいにするコマンドです。

LED

LEDコマンドは、IchigoJam本体のLEDを付けたり消したりするコマンドです。

  • LED 1 : LEDを点灯させる
  • LED 0 : LEDを消灯させる

WAIT

WAITコマンドは、処理を指定時間ストップさせるコマンドです。

WAIT 数

数の分だけ処理をストップします(60で1秒

例)WAIT 120 ・・・ 処理を2秒ストップさせる

PRINT または ?

PRINTコマンドは、数や文字列を表示させるコマンドです。

? も全く同じです(PRINTの省略形が?)

PRINT 数や文字列
? 数や文字列

※ 文字列は ” “(ダブルクォーテーション)で囲みます。

例)PRINT “HELLO” ・・・ HELLO と表示
  ? “ICHIGOJAM” ・・・ ICHIGOJAM と表示

IF

IFコマンドは、条件によって処理を分岐させるコマンドです。

「IF の右側が 0 ではない時だけ、さらに右側のコマンドを実行する」という処理になります

詳細は下記の記事で解説しています。

BTN コマンドとの組み合わせ

IFコマンドはBTNコマンドと組み合わせて使われることがあります

BTNコマンドの働きは以下の通り

BTN(数) :カッコ内の数に該当するボタンが押されている場合は数字の1を返す
      ※カッコの数を省略した場合は0を入れたのと同じ

カッコ内の数が何なのか、ちょっと難しいと思いますので、詳細は上記の参考記事を見ていただきたいのですが

とにかく、カッコに数を入れずに BTN() と書いた場合

IchigoJam本体のボタンが押されている時には、数字の1を返す
IchigoJam本体のボタンが押されていない時には、数字の0を帰す

という処理がされます。

つまり下記のように書いた場合

IF BTN() コマンド

「IchigoJam本体のボタンが押されている時だけ、右側のコマンドを実行する」
という意味になります。

プログラムを読んでみよう

question(pink)

では、ここまでの説明をもとに

下記の簡単なプログラムを読み解いてみましょう。

プログラム読み解き

スタート部分

プログラムは 行番号 の順番に処理が進むのでしたから

まずは 10行 が実行されます

この行は CLSコマンドなので「画面の表示が消されてキレイになります」

つまり、書いたプログラムの表示などが消えて、画面が真っ黒になります。

IFコマンド部分

次の行番号は 20行 です

この行は IFコマンドなので、条件分岐が行われます

そして、その条件は BTN() なので「本体ボタンが押されているかどうか」です

ボタンが押されていない場合

ボタンが押されていない場合、BTN()0 を返します

IF は、その右側が数字の 0 の場合は「何もせずに次の行に進む」となります

LEDの点灯

次の行は 30行 です

この行では、:(コロン)で2つのコマンドが続けて書かれています

1つ目のコマンドは、LED1LEDを点灯させる」

2つ目のコマンドは、WAIT60「処理を1秒間待機

LEDの消灯

次の行は 40行 です

30行とほとんど同じですが、LED0のところだけが違っています

1つ目のコマンドは、LED0LEDを消灯させる」

2つ目のコマンドは、WAIT60「処理を1秒間待機

GOTOで戻る

次の 50行 は GOTO20 なので「20行へ戻る」となります

ボタンが押されている場合

ボタンが押されている場合、BTN()1 を返します

IF は、その右側が数字の 1 の場合は「その右側のコマンドを実行」となります

右側のコマンドは GOTO20 なので、もう一度20行を処理します

つまり、ボタンが押されている間はずっと20行にとどまるということになります。

読み解いたプログラムをまとめると

読み解いた内容をまとめると

  • 最初に画面表示を消す
  • ボタンが押されていなければ、1秒間隔でLEDを点滅
  • ボタンが押されていたら何もしない

ということになります。

一見するとややこしそうなプログラムも

1行ずつ、1コマンドずつ追いながら確認していくと

意外と読み解けることがあります。

まとめ

今回はIchigoJamでのプログラミングの基本的な書き方・読み方を解説しました。

プログラム全体を見ると難しそうに見える場合でも

1行ずつ、1コマンドずつ順を追って確認していき、知らないコマンドが出てきたら調べる

という事をすれば読み解きやすくなりますので

ぜひ簡単なプログラムから読み解く練習をしてみてください!

まとめ
  • 基本的に行番号の順番に処理が進む
  • :(コロン)はコマンドを続けて書くための記号
  • 1行ずつ、1コマンドずつ順を追って見ていくのが、プログラムを読み解くコツ

コメント

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