「3×3のビンゴカードを作るプログラム」を
ビスケット(Viscuit)で作ってみました。
何度でも使えるので紙の節約にもなりますし、
数字を動物や果物に変えたりして
オリジナルのカードを作ることも可能です。
また、この作品を通して
ランダムな動きのメガネの作り方が分かります。
ビスケットが初めての方は、こちらの記事からお読みください。
今回作ったプログラム
プログラムは【こちら】
- 3×3のマスに1~9の数字をランダムに配置。
- グレーのワクをおすと、枠が赤くなる。
- 赤いワクがタテ・ヨコ・ナナメいずれか3つ並んだとき、
ビンゴ成立!「BINGO」の文字が点滅する。
必要な部品と配置
必要な部品
- ?マーク
- 1~9の数字
- グレーのワク
- 赤いワク
- グレーの「BINGO」
- オレンジの「BINGO」
- オレンジ(光っている)の「BINGO」
ステージの設定
- 方眼紙 … 一番大きいサイズ
メガネ
ビンゴカードを作る動き
3×3のマスに1~9の数字をランダムに配置します。
「?」を「1」に変える。
元の位置にあった「1」を消す。
※1~9までの数字分つくります。
数字をチェックする動き
紙のビンゴカードでは、抽選された数字が
カードにあったら穴をあけますね。
タブレットに穴をあけるわけにはいかないので、
穴をあけるかわりにワクの色が変わるようにします。
ビンゴが成立したときの動き
ビンゴが成立したとき、「BINGO」の文字が点滅します。
「BINGO」の色が変わる。
「BINGO」の色が変わる。
「BINGO」の色が変わる。
「BINGO」の色が変わる。
オレンジ(光っている)の「BINGO」に変える。
オレンジの「BINGO」に変える。
オレンジの「BINGO」と
オレンジ(光っている)の「BINGO」が
交互に表示されて、点滅して見えるようになります。
ランダムな動きのメガネを考える
ランダムな動きをつけるメガネ(~たり)
左側の状態が同じメガネを
いくつも作って命令すると、
「~たり」という意味になり
ランダムな動きをつけることができます。
例えばクラゲが「上に動いたり」「下に動いたり」するメガネ。
ビスケットを最初にさわった時に作った人も多いと思います。
このメガネを応用して
「?」マークをランダムな数字に変えるメガネを作ります。
- 「?」が1にかわったり、
- 「?」が2にかわったり、
- 「?」が3にかわったりする。
動かしてみると、「?」マークが
1~3のランダムな数字に変わりましたが、
数字がダブってしまいました。
サンプルプログラムは【こちら】
数字がダブらないように変更
今回のビンゴカードでは数字がダブらないように配置したいですね。
そこでこのようにメガネを変更してみました。
プログラムは【こちら】
1の下に青線があるとき、
「?」マークを1に変える。
1を消して青線をひとつ右に動かす。
※1~9までの数字分つくります。
メガネの左側に「1の下に青線があるとき」という条件と、
右側に「1を消して青線をひとつ右に動かす」という動きを足して
1から9まで順番に1回だけ実行されるようにしてみました。
一回でランダムに並べる
…と、ここまで作ってTwitterに投稿したら
ビスケットの生みの親である原田ハカセから
アドバイスをいただきました。
判定までついていて素晴らしいですね.実は最初に数を並べる部分ですが.青い線を全ての数字の下においておいて,メガネでは消えるようにすれば,一回でランダムに並びます.この並列度がビスケットの特徴なんですよね. pic.twitter.com/HrmOScv5Ez
— 原田 康徳(ビスケットスクール開講!) (@viscuit) June 30, 2020
開発者の方から直接コメントをいただけるなんて、
なんていい時代!
一回でランダムに並べる
プログラムは【こちら】からどうぞ。
「プログラムの命令は1つずつ順番に」という固定観念があって、
「同時に」という発想にいたりませんでした。
ビスケットは発想力も鍛えられる。。。
そして修正へ・・・
その後、ふと
「青線なくても大丈夫かな?」と思い
青線を消して試してみた結果、
数字がダブりませんでした。
青線は「?」から数字に変換した後、
変換後の数字がまた判定されてしまうことを
防ぐ役割がありました。
なのでうまく動かなくなるかなと
思っていたのですが……
うまくいっちゃいました。
なんだか裏ワザを発見した気分。
青線も削除して
だいぶスッキリしました!
まとめ
結果が同じでも、
そこへたどり着く方法はひとつじゃない。
色々な方法を試してみて、
効率や分かりやすさを比べてみて、
どの方法が一番よいか考えて選んでみましょう。
次はビンゴの数字を抽選するプログラムを
作る予定です。