2024.11.08(更新日: 2024.11.08)
BINGOが表示されるまでを解説
はじめに
以前書いた記事で、ビンゴゲームについて解説した。
この記事では、最初にビンゴカードがなぜ表示されるのかについて、詳しくみていこう。
と思ったが、このカードの表示だけでも解説すべき量が多かった。
そのため、この記事では、BINGOが表示されるまでに絞って解説していく。
まずは関数が呼ばれる
まずは、以下の部分で、play_bingo関数が呼ばれる。
# ゲームを開始
play_bingo()
play_bingo関数
play_bingo関数は、以下のような関数。
def play_bingo():
card = BingoCard()
card.display_card()
drawn_numbers = set()
while True:
input("Enterで次の番号を引きます...")
number = random.randint(1, 75)
while number in drawn_numbers: # 重複しないようにする
number = random.randint(1, 75)
drawn_numbers.add(number)
print(f"引かれた番号: {number}")
card.mark_number(number)
card.display_card()
if card.check_bingo():
print("ビンゴ!おめでとうございます!")
break
BingoCardクラスのインスタンスを生成する
play_bingo関数の以下の部分で、BingoCardクラスのオブジェクトをcardに代入している。
card = BingoCard()
VSCodeで、cardにカーソルを当てると、cardオブジェクトの情報が出てくる。
__main__.BingoCard objectと書かれているのは、main.pyのファイル内のBingoCardから生成されたオブジェクトという意味合いだろう。
cardインスタンスからdisplay_cardメソッドを呼び出す
cardインスタンスは、先ほど確認した通り、display_cardメソッドをメンバーに持っている。そのため、ドット表記で呼び出すことができる。
card.display_card()
display_cardメソッド
display_cardメソッドは、以下の太字部分。
class BingoCard:
def display_card(self):
print("\nB I N G O")
for i in range(5):
for j in range(5):
value = self.card[j][i] # 列ごとに表示
if isinstance(value, int):
print(f"{value:2d}", end=" ")
else:
print(f"{value:>2}", end=" ")
print()
処理が全て行われると、以下のビンゴカードが表示される。
\nは改行
以下は、単純にBINGOの文字列を表示している。先頭の\nは改行を行う。
print("\nB I N G O")
これがある場合と、ない場合では、見やすさが違ってくる。
投稿ID : 25703
コメントを残す