No. 098 ビンゴその1


No. 098 ビンゴその1

ビンゴゲームのカードを作るプログラムを作ろう。縦5マス、横5マス、計25マスのそれぞれに1〜75までの数字をランダムに配置する。同じ番号は2回以上配置しない。作成したカードは、実行例のようにタブ(\t)を開けて表示すること。
※一般的なビンゴカードは、縦の5列それぞれは1〜15、16〜30、31〜45、46〜60、61〜75のそれぞれの数字のうち5つずつを配置し、中央のマスはフリーとしているが、ここでは簡単のためにこのようにしている。余裕があれば一般的なカードを作ってるとよいだろう。

実行例

26 64 27 23 17
34 54 65 37 25
24 30 8 57 44
35 68 43 3 18
13 42 38 73 10

ヒント:同じ番号を2回配置しないための方法としては、例えば75個の数字を配列に入れてランダムに順番をシャッフルし(No.84参照)、先頭から順番にカードに配置していけばよい。他にも方法は考えられる。カードは、No.98のために2次元配列で表現するのがよい。

この問題では、1~75の異なる数字をランダムに25個選び、5×5のビンゴカードとして表示するプログラムを作成します。

まず、考えるべきポイントは次のとおりです:

  1. 1~75の数字を重複なくランダムに選ぶ方法
    配列をシャッフルして先頭25個を取る 方法が簡単。
  2. 5×5のビンゴカードに配置する方法
    二次元配列(リストのリスト) を使うのが良い。
  3. タブ区切り(\t)で整列して表示する
    print() の中で \t を使う。