Python入門講座

【Python入門講座】class習得➃ビンゴゲームをPythonで実行しよう

おはようございます。こんにちわ。こんばんわ。ノンストップ飯田です。

今日は前回までに作ってきたビンゴゲームの要素(ビンゴカード・ランダムに数を引く等)を組み合わせて、ビンゴゲームを遊べるレベルまで作っていきましょう。

以下の要件でビンゴゲームを作成します。(これまでの要素も踏まえて作成します。)

〇ビンゴカードの作成
・プレイヤー人数に応じて、人数分のカードを作成する
・プレイヤー人数は初めに入力させる
 (プレイヤー人数は1~10人までとし、それ以外の数が入力されたらプログラムを終了させる)
・カードは一番左の列が1~15、二番目の列は16~30、3番目の列は31~45と15ずつの数の範囲から並べる(※)
・カードの各数字は重複させない
・真ん中はFREEとし、XXと記載する。

〇ビンゴゲームをするための機能を実装
・カードが作成されたら、都度ボールを引いていく
・ボールを引く際は、一回一回キー入力をさせる

別途エクセルファイルに作成したビンゴカードの値を張り付けて”Ctrl+f”で引いた数が存在するか確認。
該当したら、XXに書き換えていくことでビンゴが可能です。
ちなみに※部分はTwitter仲間のサンダーさん(@thunder5178)から、ビンゴカードの一般的な配列として教えていただきました。(ありがとうございますm(_ _)m)

Python ビンゴゲームのプログラム

では早速ですが、以下がビンゴゲームをPythonで記載したプログラムです。
何分、私自身が初心者なので余計なコードや、こう書いた方がキレイなのに・・・と突っ込みどころはあると思います。
しかし、自分で作ろうと思ったものを、どう実現したらいいかパーツに分けて考え、書き方を調べたりしながら作り上げる。

これを繰り返して、自分の身になっていくのではないかと感じています。
皆様のプログラミング学習になにかしらの参考となれれば、幸甚です。
(私は次はオセロに手をつけてみようと考え中です。)




ちなみに、このプログラムはbingo_game.pyというファイル名で飯田のPCに保存されていて、これは組み関数などのようにimportで呼び出して実行することが可能です。
以下にその方法を記載します。


これを実行すると・・・

プレイヤー人数を入れろと出るので、試しに12とわざと入れてみます。

プログラムが終了してしまいました。再度実行し、今度は3と入れてみます。
すると・・・

3枚のビンゴカードが作られ、sキーの入力を求められました。
ではsキーを押してみましょう。

22が引かれました。これまでに引いた数字に22が追加され、残っている数から22が消えていますね!

とめ

プログラムを見ていて、不思議に思うところはありませんでしたか?
なぜ、違うクラスで定義した変数が、それ以降に書かれたクラスで使えるのか?
実行時なんてtake_ballメソッドだけで実行できちゃいましたよね?

これは一言でいうと、self.変数というインスタンス変数で各クラス内で定義をしているからです。
selfがない、クラス変数だと自クラス内でしか使えない変数となるのですが、インスタンス変数にすると、
共通で使えてしまうのです。便利ですね~。

ではまた、次回!