ポーカーゲーム作成講座

Pythonistaのポーカーゲームにベット機能を追加する~ポーカー作成講座5~

こんにちは、みやびのです。
本講座ではPythonistaでポーカーゲームを作る方法を紹介しています。

前回「Pythonistaのポーカーゲームにジョーカーの処理を追加する~Pythonista+sceneポーカー作成講座4~」ではジョーカーを追加する処理を作成しました。

最終回となる今回はベット機能の作成方法について紹介します。

ベットとはコインやチップを賭けて行うギャンブルのルールです。
ベット機能を追加すれば役によって手持ちのコインが増えたり減ったりするのでよりゲームの幅を広げられます。

Pythonistaのポーカーゲームにベット機能を追加する方法

ベット機能について

ベットとはコインやチップを賭けて行うギャンブルのルールです。
ポーカーの場合は役に応じたコインやチップが返却されます。役が成立しなかった場合は賭けたコインは没収です。

本記事では、役に応じたコインを返却する機能を追加します。

ベット機能に必要な処理

◆役ごとの倍率
まずは役ごとの倍率を決めましょう。
ぶた(役なし)は0で、あとは強い役ほど倍率を上げるでOKです。

一例を表にまとめました。
下記を参考にしつつ、倍率を調整してみてください。

倍率
5カード200
ロイヤル100
ストレートフラッシュ50
4カード30
フルハウス10
フラッシュ8
ストレート5
3カード3
2ペア2
ジョーカー2
1ペア1
ぶた0

交換回数にもよりますが、上記は結構ゆるめの倍率です。

◆ベットのUI
ベットを増減させるボタンを設置します。
初期値は1。
ベットの上限は手持ちのコイン、下限は1とします。

◆コインの返却処理
最後の交換が終わったら確定した役に応じてコインを返却します。
ぶたの場合はコインは返却されずに没収です。

コインが没収された結果ベットをコインが下回った場合ベットの額をコインの額に修正しましょう。

◆ゲームの継続
コインの返却処理後に「Continue」ボタンを押すと現在のコインのまま新しいゲームを続けます。

◆ゲームオーバー処理
手持ちのコインが0になった場合、ゲームオーバーとなります。

ゲームオーバー時は「New Game」ボタンを押すことで新しいゲームを始めることができます。

Pythonistaのポーカーゲームにベット機能の実装例と実行例

初期設定

新しい関数「new_game()」を作成します。

各メソッドの役割は以下の通り。
コインをリセットして新しいゲームを開始する場合:「new_game()」
現在のコインを継続したまま続ける場合:「reset_game()」

◆「setup()」の修正
「reset_game()」の代わりに「new_game()」を呼び出すように修正します。

◆setup_object()の修正
各種オブジェクトを追加します。

◆check_poker_hand()の修正
最終手札チェックの処理を修正し、役とともにコインの倍率(mag)も返すようにします。

◆touch_began()の修正
ゲームオーバーになった場合の処理とベットの増減の処理を追加します。

ベットの増減操作を追加します。
増減操作ができるのはゲームが「standby」の時のみです。

コード全文と実行例

コード全文は以下の通り。

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

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

>>ソースコードをGitHubで見る

◆実行例

以上、Pythonistaのポーカーにベット機能を追加する方法でした。
今回で講座は終了です。

今後はわかりにくい点や説明が足りていない点について補足や追記修正していきます。
長いソースコードも読みにくいので対策を検討中です。

最後までお読み頂きありがとうございました。

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

こちらの記事も読まれています

  • この記事を書いた人
miyabikno

みやびの

住んでいるところ:神奈川県。 プログラミング歴は13年ほど。 ※プログラミングに関する無料相談・質問への回答は行っていません。

-ポーカーゲーム作成講座
-

Copyright© みやびのどっとぴーわい , 2020 All Rights Reserved Powered by AFFINGER5.