LEDで変化する模様をつくるプログラム

ここでは、「ループ」カテゴリーの「もし“真”ならくりかえし」ブロックを使ったプログラムをつくってみよう。このブロックは、くりかえす回数がわからない場合のプログラムで使うよ。
今回は、micro:bitのLEDを点灯させるけど、順番通りではなくて、ランダムに点灯するようにしよう。LEDの点灯が変化していくので、どんどん変わっていく模様のように見えるゾ。

まず、「LED」カテゴリーの「反転 X“0” Y“0”」ブロックを「ずっと」ブロックと組み合わせよう。

LEDで変化する模様をつくるプログラム

MakeCodeのシミュレーターで、左上のLEDが点滅する。この「反転 X“0” Y“0”」ブロックは、LEDが点いていたら消灯、消えていたら点灯といった処理をする。「ずっと」ブロックと組み合わせることで処理を繰り返しているので、LEDが点滅するよ。
次に、LEDの点滅をディスプレイ全体に広げるために、X, Yそれぞれに0~4の乱数を入れてみよう。「反転 X“0” Y“0”」ブロックの“0”の部分に、「計算」カテゴリーの「“0”から“10”までの乱数」ブロックを入れる。ここで、“10”は“4”に変えるよ。

LEDで変化する模様をつくるプログラム

シミュレーターで、LEDディスプレイでどんどん模様が変化していく様子が確認できたかな。このままでは処理を止めることができないので、プログラムの開始を、micro:bitが揺さぶられたとき、終了をボタンAが押されたときに変更しよう。
まずは「ゆさぶられたとき」ブロックに、「反転 X“0”から“4”までの乱数” Y“0”から“4”までの乱数”」ブロックを移動する。

LEDで変化する模様をつくるプログラム

すると、micro:bitをゆさぶるたびにLEDが点灯するけれど、先ほどのように模様が変化し続けるような表示にはならない。模様が変化し続ける表示しにしたいので、「もし“真”ならくりかえし」ブロックを使ってみよう。

LEDで変化する模様をつくるプログラム

これで、模様が変化し続ける表示になった。しかしこのままでは止めることができないので、最後にボタンAが押されたら止めるようにする。
このプログラムの場合は、“真”のところに「論理」カテゴリーの「“ ”ではない」ブロックを組み込む。“ ”には「ボタン“A”が押されている」ブロックを組み込む。この場合は「もしボタンAが押されていなかったらくりかえす」という意味になるので、ボタンAが押されたら、くりかえしの処理が止まる。

LEDで変化する模様をつくるプログラム

これでプログラムは完成だ。シミュレーターで見るのもいいけど、保存してmicro:bitに書き込んでみよう。ゆさぶるとディスプレイの表示が変化しはじめて、ボタンAを押すと止まるよ。止まった時の模様を見るのもおもしろいね。
このプログラムは、LEDディスプレイにおもしろい模様を表示するくらいの機能しかないが、誰かと見せあって模様を比べてみたり、模様が何に見えるかなど連想して遊ぶのも楽しいね。
「もし“真”ならくりかえし」ブロックによるくりかえしは、くりかえしの回数が決まっていなかったり、ボタンを押す、ゆさぶるといった動作が条件になるくりかえしができる。これを使うと、ストップウォッチやタイマーのようなプログラムもできるので、チャレンジしてみよう。