マイクロビットのホームページにあるレッスンを紹介したいと思います。英語版ですので、日本語で纏めてみました。今回は『サイコロを振る』を取り上げます。
当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。
『じゃんけんゲーム』プログラムの改善について
解答例:全LED点灯から順にLEDが消える部分を関数『start』としました。この関数を揺さぶられたときの最初に組み込みます。他にも色々な方法があると思いますので、参考にしてください。
レッスン『サイコロ』
まず、上の手順でブロックエディターを開いてください。もし、前に作成中のプログラムが表示された場合は、保存してから左上にある『プロジェクト』メニューをクリックして『新しいプロジェクト』をクリックしてください。最初は、『最初だけ』ブロックと『ずっと』ブロックだけがプログラミングエリアにあります。
12のレッスンがありますが、そこから『サイコロを振る』をやってみます。
レッスン内容
このレッスンでは、『もし…..なら….でなければ….(IF THEN ELSE)』ブロックの使い方と、個々のLEDの制御の仕方を学びます。
Micro:bitを振ると、乱数を使って1から6のサイコロの目を表示するプログラムを作ります。
子供たちは、次のことができるようになります。
- 『揺さぶられたとき』ブロックを使う
- ランダムな数字(乱数)を作る
- 『もし…..なら….でなければ….(IF THEN ELSE)』ブロックを使う(条件処理)
- 自分で作ったパターンをLEDに表示する
1-1.ブロック種類『入力』から 『ゆさぶられたとき』ブロックを選択します。
2-1.ゆさぶられたときにサイコロの目を保存するための変数を作ります。この変数はLEDに表示するサイコロの目を決めるために使います。変数の名前は『me』とします。ブロック種類の『変数』から『変数を追加』をクリックします。
2-2.変数名を入力するメニューが表示されるので、『me』と入力してOKをクリックします。
2-3.変数『me』にMicro:bitを振った時に乱数(0~5)を入れるためにブロック種類『変数』から『変数meを0にする』ブロックを選択します。注:乱数は0からxの間で作られますので、サイコロの目の数と違い分かりにくいですが、サイコロの目の1は0、サイコロの目の2は1というふうに対応します。
2-4.プログラミングエリアには以下のブロックがありますので、同じように並べてください。
注:プロジェクトを始めた時にある『最初だけ』ブロックと『ずっと』ブロックはドラッグして、ブロック種類メニューの上に持ってい行くとゴミ箱が表示されますので、そこでドロップしてください。
2-5.サイコロの目1(0)、目2(1)、目3(2)、目4(3)、目5(4)、目6(5)に相当する乱数0~5を作るため、ブロック種類『計算』から『0から10までの乱数』ブロックを選択します。
2-6.『0から10までの乱数』ブロックの10を5に変更します。これで0~5の乱数を作ることができます。修正後、このブロックを『変数meを0にする』ブロックの0のところにドロップします。プログラミングエリアは以下のようになっています。
2-7.『変数meを0~5の範囲の乱数にする』ブロックをドラッグして、『ゆさぶられたとき』ブロックにドロップします。プログラミングエリアは以下のようになっています。
変数『me』の値によって、サイコロの目を表示しますので、条件によってサイコロの目を選択するために『もし…..なら….でなければ….(IF THEN ELSE)』ブロックを使います。
3-1.ブロック種類『論理』から『もし…..なら….でなければ….(IF THEN ELSE)』ブロックを選択します。
3-2.プログラミングエリアには以下のブロックがありますので、同じように並べてください。
3-3.6つの条件を比較しますので、『もし…..なら….でなければ….(IF THEN ELSE)』ブロックの左下にある+アイコンをクリックします。
3-4.以下のように『でなければもし』が追加されますので、+アイコンを後3回クリックします。
3-2.プログラミングエリアは以下のようになります。
4-1.ブロック種類『論理』のくらべるから、『等しい』ブロックを選択します。
4-2.ブロック種類『変数』から、変数『me』ブロックを選択します。
4-3.プログラミングエリアには以下のブロックがありますので、同じように並べてください。
4-4.変数『me』ブロックをドラッグして、『等しい』ブロックの左側の0のところにドロップします。次に『等しい』ブロックをドラッグして、『もし…..なら….でなければ….』ブロックの真のところにドロップします。最後に『もし…..なら….でなければ….』ブロックをドラッグして、『揺さぶられたとき』ブロックの内側にドロップします。プログラミングエリアは以下のようになっています。
4-4.『変数meと0が等しい』ブロックを右クリックして、表示されるメニューで複写を選択します。
4-5.『meと0が等しい』ブロックが複写されますので、それをドラッグして、最初の『でなければもし』のところにドロップします。
4-6.4-4と4-5を後3回繰り返すと、プログラミングエリアは以下のようになっています。
4-7.一番上から2番目の『meと0が等しい』ブロックの0を1に変更します。次の『meと0が等しい』ブロックの0は2、次の『meと0が等しい』ブロックの0は3、最後の『meと0が等しい』ブロックの0は4に変更します。プログラミングエリアは以下のようになっています。
ここでは、meが0と等しい場合は、LEDにサイコロの目1を表示します。meが1と等しい場合はサイコロの目2、meが2と等しい場合はサイコロの目3、meが3と等しい場合はサイコロの目4、meが4と等しい場合はサイコロの目5、それ以外はサイコロの目6を表示します。
5-1.ブロック種類『基本』から、『LED画面に表示』ブロックを選択します。
5-2.『LED画面に表示』ブロック内の■をクリックするごとに■→□を繰り返しますので、サイコロの目1の表示用に以下のようにしてください。プログラミングエリアは以下のようになっています。
5-3.サイコロの目1用にした『LED画面に表示』ブロックをドラッグして、『meと0が等しい』ブロックの下の『なら』のところにドロップします。
5-4.サイコロの目1用にした『show leds(LED点灯)』ブロックを右クリックして複写し、サイコロの目2にして『meと1が等しい』ブロックの下の『なら』のところにドロップします。
5-5.5-4をサイコロの目6まで繰り返します。プログラミングエリアは以下のようになっています。
これで『サイコロ』プログラムは完成です。
チャレンジこれでレッスンは終了ですが、チャレンジとして以下が紹介されていますので、挑戦してみてください。
- サイコロの目を表示する前に、サイコロを振ったときのようにサイコロの目が色々変わる様子を追加する
- 6面サイコロではなく8面、12面のサイコロを作る
1については、次の記事で解答例を紹介します。
訳者注:当サイトでは、マイクロビットホームページにあるレッスンを順次紹介しています。私の注意不足で紹介順が適切ではありませんでした。こちらの目次記事を見ていただくか以下のリンクを参考にご覧ください。無線とシリアル通信についてはレッスンがありませんでしたので、作成しました。
micro:bit(マイクロビット)で学ぶ 1→micro:bit(マイクロビット)で学ぶ 2『温度のアクティビティー』→19『アンサリングマシン』→20『数当てゲーム』→当記事→ 6『トゥルース・オア・デア』→8『マジック8ボール』→21『ラブメーター』→3『じゃんけんゲーム1』→4『じゃんけんゲーム2』→7『マジックボタン』→無線の紹介→シリアル通信の紹介
最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。
コメントを書く