Pythonを使って、ビンゴカードを自動生成することができます。この記事では、Pythonでビンゴカードを作成する方法を解説します。
必要なライブラリ
ビンゴカードを自動生成するには、PythonのNumPyライブラリが必要です。NumPyは、配列や行列などの数値計算を高速に行うことができるライブラリで、ビンゴカードの作成に適しています。
NumPyがインストールされていない場合は、以下のコマンドを使用してインストールしてください。
pip install numpy
ビンゴカードの作成方法
以下のコードを使用して、ビンゴカードを自動生成することができます。
import numpy as np
def generate_bingo_card():
card = np.zeros((5, 5), dtype=int)
card[2, 2] = -1
for i in range(5):
card[i, i] = -1
card[i, 4-i] = -1
numbers = np.arange(1, 76)
for i in range(5):
row = np.random.choice(numbers[i*15:i*15+15], size=5, replace=False)
card[i, :] = row
return card
このコードでは、5x5のビンゴカードを生成しています。真ん中のセルには、-1が入ります。また、ビンゴカードの列ごとに、1から15、16から30、31から45、46から60、61から75の数字がランダムに割り当てられます。
ビンゴカードの表示方法
ビンゴカードを作成したら、以下のコードを使用して、ビンゴカードを表示することができます。
def print_bingo_card(card):
print('-----------------------')
for i in range(5):
print('|', end='')
for j in range(5):
if card[i, j] == -1:
print(' ', end='')
else:
print(f'{card[i, j]:2}', end='')
print(' |', end='')
print('')
print('-----------------------')
このコードでは、5x5のビンゴカードをASCIIアートで表示します。
ビンゴゲームの進行方法
ビンゴカードを自動生成して、表示することができました。次に、ビンゴゲームの進行方法について説明します。
以下のコードを使用して、ビンゴゲームを進行することができます。
def play_bingo():
card = generate_bingo_card()
print_bingo_card(card)
while True:
number = int(input('次の数字を入力してください(1から75の整数):'))
if number < 1 or number > 75:
print('1から75の整数を入力してください
if number in card:
card[card == number] = -1
print_bingo_card(card)
if is_bingo(card):
print('ビンゴ!')
break
print('ゲーム終了')
このコードでは、ランダムに生成されたビンゴカードを表示し、ユーザーが1から75までの整数を入力することを要求します。入力された数がビンゴカードにある場合は、そのセルを-1に変更し、更新されたビンゴカードを表示します。ビンゴが達成された場合は、「ビンゴ!」と表示され、ゲームが終了します。
## ビンゴの判定方法
ビンゴが達成されたかどうかを判定するためには、以下の関数を使用します。
```python
def is_bingo(card):
if np.all(card[:, :] == -1):
return True
for i in range(5):
if np.all(card[i, :] == -1) or np.all(card[:, i] == -1):
return True
if np.all(card.diagonal() == -1) or np.all(np.fliplr(card).diagonal() == -1):
return True
return False
この関数では、ビンゴカードの行、列、および対角線が全て-1であるかどうかを確認しています。全て-1であれば、ビンゴが達成されたと判断します。