さあ、micro:bitのプログラミングを始めよう!
今日はmicro:bitを使ったおみくじアプリを作ってみよう。おみくじといっても、運勢を占うんじゃなくて、おみくじの結果によって4Rのうちの
●REFUSE(いらないと言う)
●REDUCE(へらす)
●REUSE(使いまわす)
のどれかを表示してそれをみんなの生活で実行するというものだ(4Rについてはここをみてね)。
4RのうちのRECYCLE(リサイクル)については、ごみの分別は当たり前にやらなきゃいけないから、今回はこの3つだけにしたよ。ほんとうは、4Rはいつも守ってほしいけど、いきなり4Rをすべて実行するのは大変だから今回はおみくじを使ってどれを実行するか、どうやって実行するか考えてみよう。
プログラムの目的は
micro:bitのボタンAをおしたとき
REFUSE、 REDUCE、 REUSEのどれかが
LEDに表示されるようにする
だよ。
おみくじの結果で
- REFUSEが表示されたら、その日は必要のないビニール袋(ぶくろ)などの余計なプラスチックをもらわない
- REDUCEが表示されたら、その日は使うプラスチックの量をへらす
- REUSEが表示されたら、その日は使ったプラスチックをすぐにすてないでちがうことに再利用する
という風におみくじを使って、プラスチックごみをどう減らせるかを考えて、実行してみよう!
じゃあ早速、MakeCodeでプログラムを書いていくよ。
まず、MakeCodeを開くと次のようになっているよ。
プロジェクトの名前を「おみくじ」にしよう。今回は「最初だけ」と「ずっと」は使わないのでこの2つはすててしまってもいいよ。
出る順番が決めっているおみくじはつまらないよね。そこで4RのうちのどのRもぐうぜんに(規則性が無く)選ばれる仕組みが必要になるんだ。こういった仕組みは、ランダムと言われているんだけど、MakeCodeでは、ランダムな数を意味する「乱数(らんすう)」を作る仕組みが用意されているので、まずはこれを使ってランダムな数をLEDで表示するというプログラムを作ろう!
ステップ1
ボタンAをおしたとき1~10のランダムな数をLEDに表示する
レッツコード!
- ツールボックスの「入力」からとってきた「ボタンAが押(お)されたとき」ブロックをワークスペースにいれる
- ツールボックスの「基本」から「数を表示」ブロックをとってきて「ボタンAが押(お)されたとき」ブロックのなかにいれる
- ツールボックスの「計算」のなかにある「0から10までの乱数(らんすう)」ブロックを先ほど用意した「数を表示」ブロックのなかにいれる
さあ、プログラムが完成したらダウンロードしてみよう。やりかたがわからなければここでやりかたをみてみよう。
さて、ボタンAをおしてランダムな数を表示させられたかな?よくやったね!これで最初のステップは終わりだ。おみくじを完成させるためには数を表示するのではなく3Rを表示しないといけない。そのためには、数字を3Rのどれかに変身させないとけいないね。そこで、今つくったランダムな数を覚えてくれる変数の登場だ。まずは、変数がきちんとランダムな数を覚えているか確かめるために変数をLEDに表示させよう。それじゃあ、次のステップだ!
ステップ2
ボタンAをおしたときランダムな数を変数に覚えさせ、それをLEDに表示させる
レッツコード!
- ツールボックスの「変数」を開き「変数を追加する」というところをおす
- 「作成する変数の名前:」の下のスペースに「ランダムな数」と打ちOKをおして変数を追加する
- ツールボックス「変数」から「変数ランダムな数を0にする」をとってきて「ボタンAが押(お)されたとき」ブロックのなかの一番上にいれる
- 「変数ランダムな数を0にする」の「0」のところに「0から10までの乱数(らんすう)」をいれる
- 変数「ランダムな数」を「数を表示」ブロックのなかにいれる
実際にダウンロードしてボタンAをおしてみよう!
ちゃんと変数「ランダムな数」がLEDに表示されたよね。みんなもだんだん本物のプログラマーに近づいてきているよ!
さあ、これで変数を使ってランダムな数を覚えることができたね。さあ、これで変数を使ってランダムな数を覚えることができたね。でもこれで満足しちゃいけない。次にその変数と「もし」ブロックを使って数字を3Rに変身させて、おみくじを完成させよう。この最後のステップはやることが多いけどしっかりついてきてね。
ステップ3
ボタンAをおしたときREFUSE、 REDUCE、 REUSEのどれかがLEDに表示されるようにする
最後のステップではプログラムを書く前にどうつくるか考えてみよう。
考え方
- ボタンAがおされたときに1~3までのランダムな数をつくり変数「ランダムな数」に覚えさせる
- 「もし」変数「ランダムな数」が1なら→「REFUSE」
「でなければもし」変数「ランダムな数」が2なら→「REDUCE」
「でなければ(3なら)」→「REUSE」
をそれぞれLEDに表示
では、この考え方をもとにやっていこう!
レッツコード!
- 「ボタンAが押(お)されたとき」ブロックにいれた「数を表示」ブロックをすてる
- ステップ2で使った「0から10までの乱数(らんすう)」の「0から10」を「1から3」にする
- ツールボックスの「論理(ろんり)」から「もし」ブロックをとってきて「ボタンAが押(お)されたとき」ブロックのなかにいれる
- 「もし」ブロックのなかに「でなければもし」を追加するため「+」をおす
- ツールボックス「論理(ろんり)」のなかにある「くらべる」の一番上にあるふたつの数が同じかどうかを考えるブロックをとってきて、「もし」ブロックにいれる
- 「もしランダムな数=1なら」文字列「REFUSE」を表示、「でなければもしランダムな数=2なら」文字列「REDUCE」を表示、「でなければ」文字列「REUSE」を表示となるように「文字列を表示」ブロックをいれる
さあ、おつかれさま!これでプログラムは完成だ!これができたらダウンロードして、ボタンAをおしてみよう。おみくじができたかな?実際におみくじを使ってみんなにできる4R(Recycle:リサイクルも忘れずに)を考えて実行してみよう!
追加課題
おみくじは完成したけど、これだともしおみくじの結果を見落としてしまった時にもう一度結果をみることができないね…
それじゃあ、ボタンAをおして表示された文字列を、ボタンBをおしたらもう一度見られるようにするプログラムを自分で考えてみよう!