ゲームを作ろう! ポーカーその4 プログラム全体を作る


さて、前回まででポーカーのプログラムの各部分はできました。
これをひとつなぎにして、ようやく完成です。

全体の流れとしては、

(ボタンを表示し、スタート時点で必要のないものを隠す)

Controls.ButtonClicked = trumpnarabe

Sub trumpnarabe
  If Controls.LastClickedButton = (ゲーム開始ボタン) Then
    (トランプ10枚分ランダム作成)
    (トランプを5枚配置)
  EndIf
  
  If Controls.LastClickedButton = (カード交換ボタン) Then
    (「交換」「残す」ボタンの切り替え)
    nokosu1 = 1or0 *隠しパラメータ切り替え
  EndIf
  (以上、ボタンの数ぶん記述)
  
  If Controls.LastClickedButton = (配るボタン) Then
    (トランプ残り5枚を配置して、隠す)
    (隠しパラメータnokosu1〜5に従い、残り5枚を隠したままにするか、表に出す)
    (「交換」「残す」ボタンを全て隠す)
    (今出ているカードをnumber[1]〜number[5]とする)
    (getnumberなどの計算)
    (ロイヤルストレートフラッシュの判定をして、当たりなら終了、ハズレならサブルーチン「strfl」に移動)
  EndIf
EndSub

Sub strfl
  (ストレートフラッシュの判定をして、当たりなら終了、ハズレならサブルーチン「fourcard」に移動)
EndSub

Sub fourcard
  (フォーカードの判定をして、当たりなら終了、ハズレならサブルーチン「fullhouse」に移動)
EndSub

Sub fullhouse
  (フルハウスの判定をして、当たりなら終了、ハズレならサブルーチン「flush」に移動)
EndSub

Sub flush
  (フラッシュの判定をして、当たりなら終了、ハズレならサブルーチン「Strt」に移動)
EndSub

Sub Strt
  (ストレートの判定をして、当たりなら終了、ハズレならサブルーチン「threecard」に移動)
EndSub

Sub threecard
  (スリーカードの判定をして、当たりなら終了、ハズレならサブルーチン「twopair」に移動)
EndSub

Sub twopair
  (ツーペアの判定をして、当たりなら終了、ハズレならサブルーチン「onepair」に移動)
EndSub

Sub onepair
  (ワンペアの判定をして、当たりなら終了、ハズレなら「負け……。」と表示して終了)
EndSub

サブルーチンを役ごとに分けましたが、もちろん、サブルーチン「trumpnarabe」の中に判定を全部記述することも可能です。
ただ、プログラム全体がわかりにくくなるから分けたという、私の事情です。w
見易さと、後で手直しする時にしやすいように、ということでこんな風にしました。

完成したプログラムは以下の通り。長いのでリンク先をどうぞ。

Microsoft Small Basic Program Listing : KJQ009

ただこのプログラム、実際にプレイすると、ロイヤルストレートフラッシュのような確率の低い役が全然出ないので、プログラムが正しく動いているかわかりません。w
自分で作る時は、プログラムの判定部分だけを取り出して、number[1]〜number[5]を適当に決めて実行させ、ちゃんと動くか確認すると良いでしょう。

テストプレイ中、一番良い役はフルハウスでした……w

ポーカー

ポーカー

ポーカー

今回作ったのは、ポーカー部分のみで、コインをベットする機能は着いていません。
それらおまけや演出を含めて更に色々と出来ると思います。
絵に自信がある方は、トランプの絵を用意してみるのも良いと思います。


▲TOPへ戻る