【ビスケット(Viscuit)】数字がランダムに並ぶ「ビンゴカード」をプログラミング!

「3×3のビンゴカードを作るプログラム」
ビスケット(Viscuit)で作ってみました。

何度でも使えるので紙の節約にもなりますし、
数字を動物や果物に変えたりして
オリジナルのカードを作ることも可能です。

 

また、この作品を通して
ランダムな動きのメガネの作り方が分かります。

ビスケットが初めての方は、こちらの記事からお読みください。

 

今回作ったプログラム

ビンゴカードを作るプログラム

プログラムは【こちら】

  1. 3×3のマスに1~9の数字をランダムに配置。
  2. グレーのワクをおすと、枠が赤くなる。
  3. 赤いワクがタテ・ヨコ・ナナメいずれか3つ並んだとき、
    ビンゴ成立!「BINGO」の文字が点滅する。

 

必要な部品と配置

ビンゴカードの部品

必要な部品

  • ?マーク
  • 1~9の数字
  • グレーのワク
  • 赤いワク
  • グレーの「BINGO」
  • オレンジの「BINGO」
  • オレンジ(光っている)の「BINGO」

ステージの設定

  • 方眼紙 … 一番大きいサイズ

 

メガネ

ビンゴカードを作る動き

3×3のマスに1~9の数字をランダムに配置します。

カードに数値を配置するメガネ

ステージ上に「1」と「?」があるとき、
 「?」を「1」に変える。
 元の位置にあった「1」を消す。

※1~9までの数字分つくります。

 

数字をチェックする動き

紙のビンゴカードでは、抽選された数字が
カードにあったら穴をあけますね。

タブレットに穴をあけるわけにはいかないので、
穴をあけるかわりにワクの色が変わるようにします。

数字をチェックするメガネ

グレーのワクをおすと、枠が赤くなる。
まちがえた時に、ワクをグレーに戻すメガネも用意しましょう。
赤いワクをおすと、枠がグレーになる。

 

ビンゴが成立したときの動き

ビンゴが成立したとき、「BINGO」の文字が点滅します。

ビンゴ成立を判定するメガネ

赤いワクがヨコに3つ並んだとき、
「BINGO」の色が変わる。
赤いワクがタテに3つ並んだとき、
「BINGO」の色が変わる。
赤いワクがナナメ(右上~左下)に3つ並んだとき、
「BINGO」の色が変わる。
赤いワクがナナメ(左上~右下)に3つ並んだとき、
「BINGO」の色が変わる。

 

点滅する文字のメガネ

オレンジの「BINGO」を
オレンジ(光っている)の「BINGO」に変える。
オレンジ(光っている)の「BINGO」を
オレンジの「BINGO」に変える。

オレンジの「BINGO」と
オレンジ(光っている)の「BINGO」が
交互に表示されて、点滅して見えるようになります。

 

ランダムな動きのメガネを考える

ランダムな動きをつけるメガネ(~たり)

左側の状態が同じメガネを
いくつも作って
命令すると、
「~たり」という意味になり

ランダムな動きをつけることができます。

 

例えばクラゲが「上に動いたり」「下に動いたり」するメガネ。

クラゲが上にいったり下にいったりするメガネ

ビスケットを最初にさわった時に作った人も多いと思います。

 

このメガネを応用して
「?」マークをランダムな数字に変えるメガネを作ります。

ランダムな数字を出すメガネ

  • 「?」が1にかわったり、
  • 「?」が2にかわったり、
  • 「?」が3にかわったりする。

 

動かしてみると、「?」マークが
1~3のランダムな数字に変わりましたが、
数字がダブってしまいました。

サンプルプログラムは【こちら】

 

数字がダブらないように変更

今回のビンゴカードでは数字がダブらないように配置したいですね。
そこでこのようにメガネを変更してみました。

1から9順番に1回だけ実行されるメガネ

プログラムは【こちら】

ステージに「?」マークがあるかつ
1の下に青線があるとき、
 「?」マークを1に変える。
 1を消して青線をひとつ右に動かす。

※1~9までの数字分つくります。

 

メガネの左側に「1の下に青線があるとき」という条件と、
右側に「1を消して青線をひとつ右に動かす」という動きを足して
1から9まで順番に1回だけ実行されるようにしてみました。

 

一回でランダムに並べる

…と、ここまで作ってTwitterに投稿したら
ビスケットの生みの親である原田ハカセから
アドバイスをいただきました。

開発者の方から直接コメントをいただけるなんて、
なんていい時代!

一回でランダムに並べる
プログラムは【こちら】からどうぞ。

「プログラムの命令は1つずつ順番に」という固定観念があって、
「同時に」という発想にいたりませんでした。

ビスケットは発想力も鍛えられる。。。

 

そして修正へ・・・

その後、ふと
「青線なくても大丈夫かな?」と思い
青線を消して試してみた結果、
数字がダブりませんでした。

1から9順番に1回だけ実行されるメガネ・改

青線は「?」から数字に変換した後、
変換後の数字がまた判定されてしまうことを
防ぐ役割がありました。

なのでうまく動かなくなるかなと
思っていたのですが……
うまくいっちゃいました。

なんだか裏ワザを発見した気分。

 

青線も削除して
だいぶスッキリしました!

 

まとめ

結果が同じでも、
そこへたどり着く方法はひとつじゃない。

色々な方法を試してみて、
効率や分かりやすさを比べてみて、
どの方法が一番よいか考えて選んでみましょう。

 

次はビンゴの数字を抽選するプログラムを
作る予定です。

 

\4歳からはじめられるプログラミング!/

 

タイトルとURLをコピーしました