こんにちは!や~べ~です。
今回は、Ichigojamのプログラミング初級2「キーコードの取得と表示」、ということで記事を書いていきたいと思います。
キーボードのキー1つ1つに割り当てられている数値=「キーコード」を取得し、その数値をモニターに表示させるプログラムを創ってみましょう!
キーを押すと、こんな風に数字が表示されれば大成功です!↓(写真)
それでは、プログラミング方法を詳しく説明していきたいと思います。
Ichigojamのプログラミング初級2「キーコードの取得と表示」
まず、「キーコードの取得と表示」のコードを書いておきます!
10 CLS 20 I=INKEY() 30 IF I<>0 THEN PRINT I 40 GOTO 20
こんな風に書けましたか?↓
ここまで書いてキーボードの「F5」を押せば、プログラムが実行されます。
画面に何も表示されていないと思いますので、何か好きなキーを押してみて下さい。
なにかしらの数字が表示されると思います。
確認できましたでしょうか?
このなにかしらの数字は「キーコード」と呼ばれるもので、キーによって表示される数字が決まっています。
続いては、その「キーコード」について、説明していきます。
キーコードについて
押したキーに対応して、決まった数字が表示されるので、これから色々なプログミングをしていく中で使えそうですね!
例えば、「A」が押されたらジャンプとか「B」が押されたらダッシュとか、個々のキーを判別して、それそれに違ったプログラムを対応させれば、個々のキーにそれそれの別の役割を与えることができます!
キーの種類に対応するキーコードはコチラ↓を参考にしてください!
キーコード一覧
http://faq.creasus.net/04/0131/CharCode.html
「キーコードの取得と表示」プログラムの解説
※↓こちらの記事もIchigojamのプログラミングについて、入門的な内容で書いてますので、併せて読んでいただければと思います。
Ichigojamのプログラミング初級1「Lチカ」
https://share-lab.net/ichigojam3
では、今回のプログラムを解説していきたいと思います。
プログラムの行番号については、Lチカの記事で触れたので、今回は割愛します。
今回のプログラムには大きな特徴が二つあります。
一つ目は、IF文が使われており、条件によって命令が変化します。
二つ目は、GOTO文で繰り返し動作(無限ループ)します。
※Lチカのプログラムも無限ループしてるのですが、書き忘れてしまいました。。。
それぞれについて、少し解説します。まずは、IF文から。
IF文
もし●●ならば○○する。
という、条件分岐を使ったプログラミングがIchigojamでも可能です。
書き方)
IF ●● THEN ○○
●●の部分には、条件文を書きます!↓
記述例)
I<>0
⇒「I」という入れ物に入ってる数字が0でなければ、
I==0
⇒「I」という入れ物に入ってる数字が0ならば、
I<=0
⇒「I」という入れ物に入ってる数字が0以下ならば、
I<0
⇒「I」という入れ物に入ってる数字が0より小さければ、
I>=0
⇒「I」という入れ物に入ってる数字が0以上ならば、
I>0
⇒「I」という入れ物に入ってる数字が0より大きければ、
○○の部分には、動作を書きます!↓
記述例)
PRINT I
⇒モニターに「I」という入れ物に入っている数字を表示させる。
LED1
⇒LEDを光らせる。
など。
他にも、音を出したり、数字を代入したり、計算したり、色々な動作を設定することができます。
詳しくは、リファレンス↓を参考にして下さい。
IchigoJam BASIC リファレンス ver 1.2
http://ichigojam.net/IchigoJam.html
続いて、無限ループについて。
無限ループ
↓これは、先ほど書いたプログラム全体です。
10 CLS 20 I=INKEY() 30 IF I<>0 THEN PRINT I 40 GOTO 20
プログラムは行番号の小さいものから順に実行されていきます。
10、20、30と順番に実行されます。
40にGOTO文が書かれてなければ、40を実行するとプログラムは終了します。
しかし、このプログラムの場合は、40にGOTO文で「20へ進め」と書かれています。
こうすることで、20に戻って、また、30、40と進んで、また20へ戻るということを無限に繰り返すようにプログラミングされています。
これを「無限ループ」と呼びます。
無限ループはプログラムの特殊な使い方ではなく、ほぼ全てのプログラムで使われている一般的な手法です。
何かしらのキー入力を待つ場合には、必ず使われています。
モニターに変化が無くても、コンピューター内部では同じプログラムを常に繰り返しループさせながら、入力が入ってくるのを待ち構えているのです。^^
それでは、今回のプログラムを1行づつ見ていきましょう!
1行ごとの解説
10 CLS
CLSで画面を全て消してまっさらにします。
20 I=INKEY()
「I」という入れ物に、押されたキーのキーコードを格納する。
30 IF I<>0 THEN PRINT I
もし「I」の中身が0でない場合、モニターに「I」を表示する。
※0でない場合=1以上、又は-1以下の場合
40 GOTO 20
行番号20へ進む。
これで、今回のプログラムの各行で行っていることは理解できたと思います。
続いて、今回使ったコマンドの解説をしていきます。
「キーコードの取得と表示」プログラムのコマンド解説
コマンド「クリア スクリーン」
CLS
画面を全部消す。
記述例)
CLS
コマンド「インキー」
INKEY()
キーボードやUARTから1文字入力する。
(入力がない時は0、UARTから0が入力された時は#100)
記述例)
PRINT INKEY()
コマンド「プリント」
PRINT数か文字列
文字を表示する。(文字列は"で囲む、";" で連結できる)
省略形⇒?
記述例)
PRINT 10
PRINT "HI!"
? 10
? "HI!"
今回紹介したコマンドやその他のコマンドは全て公式ページにまとめられていますので、そちらを参考にして下さい!↓
IchigoJam BASIC リファレンス ver 1.2
http://ichigojam.net/IchigoJam.html
せっかく創ったプログラムが消えてしまわないよう、SAVEコマンドを使ってプログラムを保存しておくと良いと思います!
まとめ
Ichigojamのプログラミング初級2「キーコードの取得と表示」、ということで記事を書かせていただきましたが、いかがでしたでしょうか?
プログラム自体はそんなに難しくなかったと思います!^^
キーコードを取得できると、色んな動きに応用できると思うので、ぜひ面白いプログラム考えてみて下さいね!^^
プログラミングに重要な「IF文」と「無限ループ」の考え方は今後プログラムを書いていく上で、必要不可欠な考え方になると思うので、しっかりと覚えておきたいですね!
IF文を使えると、条件で動作を選ぶことができるので、よりプログラミングっぽくなると思います!^^
的確に条件を設定する為にも、条件文の使い方を色々と試してみて、条件文を間違えることなく書けるようにしておくことも重要だと思います。
じゃあ、今回はここまでっ!!
ではではっ!(´∀`*)ノシ
オススメの書籍
「Amazon」
みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
こどもパソコンIchigoJam はじめてのでんし工作
ランキング
↓ランキング参加してます!よろしければ、クリックで応援して下さいっ!
にほんブログ村
↓こちらもお願いしますっ!
人気ブログランキングへ