【Viscuitプログラミング作品】数字がランダムにならぶ「ビンゴカード」

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

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

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

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

スポンサーリンク

今回作ったプログラム「ビンゴカード」

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

  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回だけ実行されるメガネ・改

青線は「?」から数字に変換へんかんした後、変換へんかん後の数字がまた判定はんていされてしまうことをふせ役割やくわりがありました。

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

なんだかうらワザわざを発見した気分。

青線も消えてだいぶスッキリしました!

 

まとめ

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

色々な方法ほうほうためしてみて、効率こうりつや分かりやすさをくらべてみて、どの方法ほうほうが一番よいか考えてえらんでみましょう。

ビンゴの数字をちゅうせんするプログラムも作りました!

 

\【PR】4歳からはじめられるプログラミング!/
タイトルとURLをコピーしました