サイコロプログラムのつくり方

みんな、1月号の付録の「KoKaサイエンスすごろく」はもう遊んでみたかな?

え? なんだって? 家にサイコロがなくて遊べない??

そういうときは、鉛筆の後ろ側を削って1~6までの数字を書けば…ってプログラミングと関係ない話をしてしまうところだった。

実は、探検ウォッチにサイコロ機能を持たせることができるんだ。とても簡単なプログラムなので、さっそくつくってみよう!

では、はいつものようにMakeCodeを開こう。サイコロの目は1~6だから、何か操作をしたら、ランダムに1~6までの数字を表示するようなプログラムをつくればいい。まず「基本」カテゴリーの「数を表示」ブロックに、「計算」カテゴリーの「“0”から“10”までの乱数」ブロックを組み合わせる。そのとき“0”を“1”、“10”を“6”に変更してね。

つくったブロックを「入力」カテゴリーの「”ゆさぶられたとき”」ブロックに組み合わせる。完成したプログラムは下のようになるよ。

サイコロプログラムのつくり方

さてこれで完成だ。

…ずいぶんあっさりだなというみなさんの心の声が聞こえてきたので、いくつか応用をしてみよう。

このプログラムでは“ゆさぶられたとき”が、探検ウォッチをどう動かした場合なのかがわかりにくい。特に同じ数字が連続して表示された場合、本当にプログラムが動作したのかがわからないよね。なので”ゆさぶられたとき”に音が鳴るようにしよう。「音楽」カテゴリーから「メロディを開始する“ダダダム”くり返し“一度だけ”」ブロックを追加しよう。このとき“ダダダム”を“パワーアップ”に変更する。プログラムは下の図のようになるよ。

サイコロプログラムのつくり方

これで“ゆさぶられたとき”に音楽が鳴るので、サイコロプログラムが動作したタイミングがわかる。このようにちょっとした工夫で、プログラムが使いやすくなることはよくあるぞ。思いついたらいろいろ試してほしい。

さて、もう一つ、探検ウォッチをよりサイコロらしくする工夫をしてみよう。LEDディスプレイを使って、サイコロの目を表現するよ。「基本」カテゴリーの「LED画面に表示」ブロックで、1〜6までの目を作ろう。下の画像を参考にしてもいいし、オリジナルで考えてもいいぞ。

サイコロプログラムのつくり方

このブロックを探検ウォッチで表示するには、プログラムにちょっとした工夫が必要だ。「変数」カテゴリーで変数「サイコロの数」を新しくつくる。「変数“サイコロの数”を“0”にする」ブロックに「“1”から“6”までの変数」ブロックを組み合わせて、「数を表示」ブロックと入れ替える。表示するサイコロの目は条件分岐(2019年1月号の連載第4回を参考)で振り分けたら完成だ。ただ、プログラムが長くなるので、関数を使った。「関数」カテゴリーで関数「サイコロの目を表示」をつくる。関数「サイコロの目を表示」のプログラムで、条件分岐を使うんだ。

まず、「論理」カテゴリーの「もし“真”なら~でなければ~」ブロックと「“0”=“0”」ブロックを組み合わせる。「“0”=“0”」ブロックには変数「サイコロの数」とサイコロの目の数が入る。それに、さっきつくった「LED画面に表示」ブロックを組み合わせるんだ。

完成したプログラムは下のようになるよ。

サイコロプログラムのつくり方

ほかにも思いついたアイディアがあれば、どんどんプログラムに追加してみよう。スポンジなどをうまく使って、micro:bit部分を保護すれば、本物のサイコロみたいに投げることで目が表示されるものがつくれるかもしれないぞ。