No.98で作ったビンゴカードで、ビンゴの抽選をするプログラムを作ろう。1〜75の数字をランダムな順番で1つずつ選んでいく。選んだ数字がカードにあれば、その数字のマス目を開ける。空いたマス目が縦横斜めのいずれかに5つ並べばビンゴとなり終了する。抽選の経過がわかるように表示を工夫しよう。
実行例
【実行例】 56 33 22 51 62 12 17 66 30 6 53 43 48 71 37 59 34 8 68 25 67 23 16 28 20 1個目: 12 あった! 56 33 22 51 62 0 17 66 30 6 53 43 48 71 37 59 34 8 68 25 67 23 16 28 20 2個目: 45 56 33 22 51 62 0 17 66 30 6 53 43 48 71 37 59 34 8 68 25 67 23 16 28 20 (途中省略) 56個目: 44 0 0 22 0 0 0 0 0 0 6 0 0 0 71 0 0 34 0 68 0 67 0 0 0 0 57個目: 68 あった! 0 0 22 0 0 0 0 0 0 6 0 0 0 71 0 0 34 0 0 0 67 0 0 0 0 ***** BINGO *****
ヒント:NO.98のプログラムに、抽選する数字をシャッフルしなおす処理と、抽選を行う繰り返しを追加する。抽選は例えば次の手順を行う:1.次の数字を取り出す。2:取り出した数字がカードに含まれているかチェックする。3:含まれていたらそのマス目に目印をつける。上の実行例では、そのマス目の数字を0に書き換えている。4:カードを表示する。5:縦横斜めに並んだかチェックする。縦の5列、横の5行、右上がり斜め、右下がり斜めのそれぞれに対して、全てが0かどうかを判定する。並んだらメッセージを表示してプログラムを終了する。
手順はこれに限らない。少々手間のかかるプログラムであるが、行うべき処理を分割して考えよう。