【micro:bit 乱数】プログラムでサイコロを作ってみよう!

micro:bitでプログラミング
この記事は約11分で読めます。

こんにちは、ナナです。

乱数らんすう」とは規則性きそくせいのない数字すうじ集合しゅうごうのことです。

規則性きそくせいがある数字列すうじれつ』とは、たとえば「1、2、3、4」や「1、4、9、16」といったものになります。「次の数字はこれだね」とわかるのは、規則性きそくせいがあるからです。

規則性のある数字列

『規則性のない数字列』とは、「5、8、1、9」や「7、2、1、6」といった数字になります。次の数字が何になるのかわかりませんよね。

このような数字のことを『乱数らんすう』と呼びます。

この記事きじでは、次のことを学習がくしゅうできます。

この記事で学習できること
  • 乱数らんすう」ってなんなの?
  • 「乱数」はどんなところで使つかわれるの?
  • 乱数ブロックの使い方をまな
  • 乱数ブロックを使ってサイコロプログラムをつくってみよう
  • 「乱数」ブロックと「くらべる」ブロックを合わせて使ってみよう

では、makecodeを使った、「乱数」の使い方をまなんでいきましょう。

スポンサーリンク

「乱数」とは規則性のない数字のこと

よ!今日のテーマは「乱数らんすう」というものですね。規則性きそくせいがない数字とはどんなところでやくつのですか?

ナナ
ナナ

「乱数」はみんなにとっては身近みじかなものなんですよ。「サイコロ」は代表的だいひょうてき乱数らんすうを作るための道具どうぐですね。

「サイコロ」はると、毎回まいかいわりますね。サイコロの数字は「乱数らんすう」なんです。

「乱数」が使われる身近なもの

みんなはサイコロを使つかって「すごろく」や「人生じんせいゲーム」なんてものをしたことがありませんか。

すごろく

このようなゲームの面白おもしろさは、ゲームをするたび結果けっかわることですよね。

なぜ、結果けっかわるかというと「サイコロ」という規則性きそくせいのない乱数らんすうによって、ゲームのすすかたが変わるからですね。

コンピューターゲームのプログラムでも「乱数」は活躍している

みんなが普段遊ふだんあそんでいるコンピューターゲームでも「乱数」はたくさん使われています。

ダンジョンを探索たんさくしていると、毎回違まいかいちがうモンスターがてきとして登場とうじょうしますね。

エンカウントされたモンスター

規則性きそくせいがなく毎回異まいかいことなるてき登場とうじょうするのは、乱数らんすう使つかっててき出現しゅつげんさせているからなのです。

ナナ
ナナ

ゲームの面白おもしろさは「乱数」によって作られているんですね。

「乱数」のことを「ランダム」という言葉で表現することもあります。覚えておきましょう!

スポンサーリンク

「乱数」ブロックの使い方を覚えよう!

そうか!自分じぶんがこれまでにたおしてきたてき毎回違まいかいちがうやつらだったが、やつらは乱数らんすうあらわれていたのだな。まぁ、全員火遁ぜんいんかとんじゅつたおしてやったがな!

ところで、よ!「乱数」をプログラムで使うためにはどのようにすればよいのでしょうか?

ナナ
ナナ

火遁かとん?それはゲームの中の話だよねっ?そうだよねっ?現実げんじつのことじゃないよね…。かなかったことにするよ!

じゃあ、「乱数」のブロックの使い方を覚えようね!

makecodeには「乱数らんすう」を作るためのブロックが用意よういされています。

「乱数」ブロックの使い方

「乱数」ブロックは「計算けいさん」ブロック一覧いちらんの中にあります。

乱数ブロックの選択

では、まずは「乱数」の数をLEDに表示ひょうじしてみましょう。「数字を表示」ブロックとわせて「ずっと」ブロックの中に結合けつごうしてみましょう。

乱数をLEDに表示

画面左上のmicro:bitに「0~10」の数字のどれかが、ランダムに順番じゅんばんに表示されますね。これが「乱数」です。

乱数に指定する数の範囲

「乱数」ブロックには2つの数字を指定していする箇所かしょがあります。

ここには乱数として作りたい数字の範囲はんいを指定します。たとえば、サイコロの場合ばあいは「1」から「6」なので、その数字を指定するとよいですね。

乱数の範囲
ナナ
ナナ

数字の範囲はんいを変えれば「1」~「9」のサイコロも作り出すことも可能かのうですよ。これがプログラミングの便利べんりなところですね!

スポンサーリンク

「乱数」ブロックを使ってプログラミングをしてみよう!

よ!「乱数らんすう」ブロックは数字を表示ひょうじする以外いがいに、どのような使つかかたができるのですか?本格的ほんかくてきにプログラムをつくりたいんですよ!

ナナ
ナナ

よし。それじゃあ、「乱数」ブロックをもっとほかのブロックとわせてみようね。サイコロをLEDで表示するプログラムを作ってみるよ!

「乱数」ブロックで作られた数字をもとに、サイコロのをLEDに表示ひょうじしてみましょう。

乱数で1~6の数字を作ってみよう!

サイコロの目は「1~6」の種類しゅるいがありますね。

それでは「乱数」ブロックを使って、「1~6」の数字を作ってみましょう。

サイコロの乱数

これで「1~6」の数字を乱数で作ることができます。

サイコロの目をLEDで作ってみよう!

数字をそのままLEDに表示するのは味気あじけがないので、サイコロの目としてLEDに表示してみましょう。

サイコロの目は次のようになるように「LED画面に表示」ブロックで作ってください。

サイコロのLED

乱数で作った数字をもとに、このサイコロの目を表示できることを目指めざしますよ。

乱数で作った数字を変数に記憶しておこう!

乱数で作った数字を覚えておくための変数を準備します。「変数」ブロックから変数を作成してみましょう。

変数の名前は「サイコロの目」としておきます。

サイコロの目の変数作成

作成さくせいした変数「サイコロの目」に乱数の数を設定せっていして、数を覚えておきましょう。

乱数を変数に覚える

変数値へんすうちの設定」ブロックに「乱数」ブロックをわせることで実現じつげんします。

変数ブロックに乱数ブロックを組み合わせる

作成したブロックは「ずっと」ブロックの中にいれておきます。

比べるブロックを使って乱数の値を確認しよう!

乱数で作成した数字によって、サイコロのLEDを変化へんかさせる必要ひつようがあります。

そのためには「くらべる」ブロックを使つかいます。論理ろんりブロック一覧いちらんの中にある「比べる」ブロックを選択せんたくしましょう。

比べるブロックを選択

くらべる」ブロックは「2つの数字すうじくらべるとき」に使うブロックです。

比べるブロックの使い方

記号数①と数②の比べ方
①=②①と②がおな
①≠②①と②がちが
①<②①は②よりちいさい
①≦②①は②以下いか
①>②①は②よりおおきい
①≧②①は②以上いじょう

みなさんは、2つの数字をどのようにくらべたいのかを指定していします。これにより、乱数らんすうで作られた数が、どの数字なのかを調しらべることができるのです。

ナナ
ナナ

「数①」の部分ぶぶんには「変数」ブロックを入れることが多いのがプログラミングの特徴とくちょうです。

このあと、使い方を説明せつめいしますよ。

「比べる」ブロックと「もし」ブロックを組み合わせよう!

「比べる」ブロックは、次のように「もし」ブロックとの合わせて使うことが多いブロックです。

もしブロックを使った比較

「もし」ブロックは「もし、△△△なら、〇〇〇しよう」というときに使いますね。

今回は「もし、サイコロ変数の数が1 なら、 LEDにサイコロ1を表示 しよう」とプログラムを作ります。

サイコロプログラム

変数「サイコロの目」が「1」~「6」のときに、LEDのサイコロを表示していますね。

プログラム動作の確認をしよう!

ここまで出来できたらプログラムがただしくうごくことを確認かくにんしましょう。サイコロのLEDがじゅんわりましたね。

サイコロが順にLEDに表示される

サイコロシステムのプログラムの流れ

今回、作成したサイコロプログラムは、次のように作られています。

サイコロシステムの全体像

みなさん、プログラムのながれがわかりましたか?

ナナ
ナナ

ブロックをわせることで、いろいろなプログラムを作ることができます。みんなのアイデア次第しだいで、なんでもできるんですよ!

スポンサーリンク

質問コーナー:乱数について気になること

ナナ
ナナ

「乱数」について質問しつもんあるひとー!

質問:乱数で作ることができる数字はどんなものがあるの?

よ!「乱数」ブロックで作ることのできるものは「1」や「2」といった数字だけなのですか?「A」や「B」といった文字もじや、「1.5」や「3.14」といった小数点しょうすうてんのついた数字は作れないのですか?

ナナ
ナナ

「乱数」ブロックでは「A」などの文字を作ることはできないんだよ。でも「1.5」といった小数点の数字は作り出すことができるよ!

「1」や「2」といった小数点しょうすうてんのついていない数字のことを『整数せいすう』と呼びます。「乱数」ブロックでは、整数以外せいすういがいにも小数点しょうすうてんきの数字を作ることもできます。

小数点の乱数作成

「乱数」ブロックに小数点付きの数字を指定していすることで、小数点の乱数を作ることもできます。

スポンサーリンク

やってみようコーナー:乱数を使ったプログラミングの巻

ナナ
ナナ

それじゃあ「乱数」ブロックを使ったプログラムを作ってみようね!

修行その1:「乱数」ブロックを使ったプログラム

修行内容:乱数を使って修行する忍術を決めよう

みんな!ぼくは「火遁かとん」「水遁すいとん」「土遁どとん」「雷遁らいとん」の4属性ぞくせい忍術にんじゅつ使つかえる忍者にんじゃなんだ。その日の気分きぶん修行しゅぎょうする忍術を変えるんだけど、毎日まいにちどれにしようかめるのになやむんだよ。

みんなのプログラムで、今日きょうぼくがどの忍術にんじゅつ修行しゅぎょうするかを決められないかな? ぼく一緒いっしょかんがえるからおねがいだよ。

それでは、「B」スイッチをたびに「乱数」を使って、4つの忍術のうちの1つをえらび出すプログラムを作ってあげましょう。

乱数によって選ばれた忍術は、LEDに次のように表示してみましょう。

火水土雷の術

それでは、みんなプログラムを考えて作ってみてください!

僕もプログラムの形を考えてみたよ!

プログラミングにこまったら、僕のアイデアを参考さんこうにしてみてくれよ!

  • 忍術にんじゅつ」変数を作成する。
  • 「B」スイッチがされたときに、「忍術」変数に乱数「1~4」を設定せっていする。
  • 乱数は「1:火遁 2:水遁 3:土遁 4:雷遁」という意味いみあつかう。
  • 「ずっと」ブロックで「忍術」変数の中を見て、LEDを表示ひょうじする。

こんな感じでどうかなー? みんな作ってみてよっ!

プログラム内容

忍術の選択プログラム

プログラムの流れ

スイッチBを押すと忍術が選択されるイメージ図

これで、毎日の修行に集中できるよ!みんな、ありがとう!

修行その2:プログラム

修行内容:忍術決定の演出を付けてあげよう!

なんだか、このプログラムは味気あじけがないな。なにかがりないんだ…。何だろう? そうだ、演出えんしゅつだ!演出が足りないんだよ!

忍術にんじゅつ」をめるまでの『ドコドコドコ・・・、ジャーン!』みたいな、「どれになるんだろう?ドキドキ・ワクワク」みたいな演出えんしゅつしいんだよ!

みなさん、ごめんなさいっ!

作ってもらったプログラムですが、もう少し彼の気に入る形に直してあげてほしいのです。

ドキドキ・ワクワクの演出を、次のように追加ついかしてあげてもらえませんか?

演出付きの忍術を決めるプログラム
  • 「A」スイッチを押すと「」「みず」「つち」「かみなり」のLEDがクルクルとランダムで表示される演出えんしゅつはじまる。
  • 「B」スイッチを押すと、クルクルの演出が止まって、1つの忍術にんじゅつ決定けっていする。
  • 再度さいど「A」スイッチを押すと、またクルクルと回る演出が始まる。

みんな、わがまま言ってごめんよ!

ぼく修行しゅぎょう全力ぜんりょくを出せるように、演出えんしゅつ気持きもちをふるい立たせてほしいんだよ!たのんだよっ!

「クルクル演出えんしゅつモード」と「忍術確定にんじゅつかくていモード」の2つの状態じょうたい存在そんざいするよ。

この2つのモードを、「クルクル演出えんしゅつ」変数を使って切り分けてみよう!

  • 「クルクル演出」変数を作成する。
  • 「クルクル演出」変数は「0:忍術確定モード 1:クルクル演出モード」の意味とする。
  • 「A」スイッチが押されたら「1:クルクル演出モード」に設定する。
  • 「B」スイッチが押されたら「0:忍術確定モード」に設定する。
  • 「ずっと」ブロックでは「クルクル演出モード」の時は「忍術」変数に乱数を設定する。

クルクル演出付きのプログラム

クルクル演出付きプログラム

『ドコドコドコドコ・・・ジャーン!火遁かとん』よーーーーし、えてきたぜー!今日は全てをやしくすぜーっ!