No. 099 ビンゴその2

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かどうかを判定する。並んだらメッセージを表示してプログラムを終了する。
手順はこれに限らない。少々手間のかかるプログラムであるが、行うべき処理を分割して考えよう。