こんにちは、みやびのです。

本講座はPythonistaを活用してポーカーゲームを作成する方法について解説するものです。(全5回を予定)

第1回の前回「Pythonでポーカーゲームを作成する」ではPythonでポーカーの基本となる処理を作成しました。

第2回となる今回は、Pythonでポーカーの基本となる処理を作成します。

本記事の内容は以下の通り。

・Pythonistaでポーカーを画面表示する方法
・Pythonistaでポーカーを画面表示する場合の実装例と実行例

Pythonistaでポーカーを画面表示する方法

画像・背景の追加

まずは画面に画像や背景を追加していきます。

画像の追加方法については「Pythonistaのsceneライブラリ画像の使い方」もあわせてお読みください。

◆背景色の追加
背景色はなんでもOKです。
トランプのカラーに合わせて決めましょう。

今回は青系の「#004f82」を指定します。

◆カードを画面追加する
5枚のカードを画面に追加します。
positionは画面の中心あたりに。

5枚のトランプ画像オブジェクトはitemsという配列に格納して管理します。

Pythonistaでは予めトランプ画像が同梱されているので画像を用意する必要はありません。

Texture()関数に’card’ + ‘symbol’ + ‘number’を渡すことで画面表示できます。
第1回で作成した辞書型カードの’string’を渡せばOKです。

また、そのままの大きさだと5枚並べると画面からはみ出してしまいます。
カードをサイズを調整しましょう。

カードの更新は頻繁に行うのでメソッド化しておきましょう。

◆画面上にポーカーの役を表示する
ただ5枚カードを出すだけだと味気ないのでポーカーの役を上部に表示します。

更新処理の作成

◆カードを引く処理
前回作成したreset_draw_cards()を呼び出せば5枚のカードのリストが作成できます。
あとは5枚の画像に対応したカードを割り当てるだけです。

カードを引く処理はタッチした時に動かします。
タッチした時の処理はtouch_began()メソッドに定義可能です。

touch_began()の下に処理を書くだけだと画面のどこをタッチした場合でも処理が動きますが、ボタンなどを設置することでタッチの範囲を絞ることができます。

オブジェクトの上に文字を挿入することも可能です。

タッチの位置はself.point_from_scene()にtouch.locationを渡すことで取得できます。
画像の範囲はframeに格納されているのでこれと比較します。

◆役の更新
役の更新は前回作成した「check_poker_hand()」を呼び出して役を設定します。

Pythonistaでポーカーを画面表示する場合の実装例と実行例

上記コードをまとめた実装例は以下の通りです。
※TrumpGameクラスの処理は前回から変更ありません。
※長いので非表示にしています。

+マークをクリックするとソースコードを表示できます。

ソースコードの表示・非表示切り替え

◆実行例

画面をタッチするとカードが切り替わります。

以上、Pythonistaでポーカーを画面表示する方法でした。
次回はカードの交換処理を追加する方法を紹介します。

次回>>第3回:Pythonistaのポーカーゲームにカード交換機能を追加する

ポーカー講座TOP>>Pythonista+sceneポーカー作成講座