スクリプト奮闘記~ポーカーの役の判別~
投稿者: naoki4019 投稿日:2017/03/05 04:39
≪生存報告
|
配列奮闘記~second~≫
※個人で頑張って奮闘してるだけの日記なので生暖かい目で見てあげてください
※この日記は前回の続きです
※今回はスクリプトは出ません
※最近マウスの調子が悪い、これだから無線は(´・ω・`)
課題:手札のカードを判断してポーカーの役の判別をする
目次----------------------------------------------
1.ポーカーのルール
いやそこからかよと突っ込みたい方もいると思いますが基本から見ていきます、一応ね(´・ω・`)
というか若干ルールが違ったりもするのでしっかり決めるという意味も込めて(´・ω・`)
このルールでいきます(´・ω・`)
結構ルールって地域でも違ったりしますしね(UNOのドボンルール知ってる方コメントお願いします)
▲ページの先頭へ▲
2.役の種類
ここでは役の種類、条件、例を表にして乗せます(´・ω・`)
ここまではただのルール確認ですね(´・ω・`)
役の種類は
↓その詳細がこちら↓
上が弱く、下が強い順です
こんな感じですかね(´・ω・`)
あーこれしんどいなぁ・・・(´・ω・`)
▲ページの先頭へ▲
3.具体的に判別するドン!
さて、このペア達を判別していきます(´・ω・`)
判別するために、配列を追加する必要があります(´・ω・`)
具体的には
となっていましたが、判別のために[2]以降も設置する必要があります、それを考えていくのが本題です(`・ω・´)
▲ページの先頭へ▲
・その1:ノーペア
Q.ノーペアってどういう状況?
A,ノーペアとは
これに必要な情報はそのカードの「数字」と「マーク」でしょう
数字は0=ジョーカー、1=A、2=2...というように当てはめ、
マークは0=ジョーカー、1=スペード、2=ハート、3=ダイヤ、4=クローバーというように当てはめます
と代入(´・ω・`)
「5枚全ての数字が違う」に関しては、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)<(2枚目)&&(2枚目)<(3枚目)&&(3枚目)<(4枚目)&&(4枚目)<(5枚目)を満たせばいいのです
「5枚全てのマークが同じではない(=フラッシュ、ロイヤルストレートフラッシュではない)」は[3](マーク)が
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たさなければいいのです
「5枚の数字が続いていない(=ストレートではない)」は手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)+1==(2枚目)&&(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たさなければいいのです
「ジョーカーが存在しない」は手札の数字をID順に並び替えたあとに、[2]数字が
(1枚目)==0を満たさなければいいのです
▲ページの先頭へ▲
・その2:ワンペア
Q.ワンペアってどういう状況?
A,ワンペアとは
まずジョーカーの有無が関係してきますので先に調べます、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「残り4枚全ての数字が違い、続いていなく、マークが同じではない」を同時に満たす必要がある
※「残り4枚全ての数字が違い」が満たされなければスリーカード、フルハウスなど
※「残り4枚の数字が続いていない」が満たされなければストレート
※「残り4枚のマークが同じではない」が満たされなければフラッシュ
[2](数字)の(2枚目)<(3枚目)&&(3枚目)<(4枚目)&&(4枚目)<(5枚目)を満たし、
[2](数字)の(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たさず、
[3](マーク)の(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たさなければいいのです
(1枚目)==0を満たさない(ジョーカーがない)場合
「同じ2つの数字が1組のみある」を満たす必要がある、[2](数字)の
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)が一度だけ満たすといい
※二度満たすとツーペア
※三度満たすとスリーカード
※四度満たすとフルハウス
※六度満たすとフォーカード
▲ページの先頭へ▲
・その3:ツーペア
Q.ツーペアってどういう状況?
A,ツーペアとは
※「同じ2つの数字が1組のみあり、ジョーカーがある」場合も想定できます(例:{ジョーカー、♠A,♢A,♡5,♣9})が、この場合役の強いスリーカードになるため考慮しなくていいのです
ジョーカーの有無が関係ないので楽です(´・ω・`)
「同じ2つの数字が2組のみある」を満たす必要がある、[2](数字)の
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)を二度だけ満たすといい
▲ページの先頭へ▲
・その4:スリーカード
Q.スリーカードってどういう状況?
A,スリーカードとは
やっぱりジョーカーの有無が関係してきますので先に調べます、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「残り4枚のうち同じ2つの数字が1組ある」を満たす必要がある、[2](数字)の
(2枚目)==(3枚目)、(2枚目)==(4枚目)、(2枚目)==(5枚目)
(3枚目)==(4枚目)、(3枚目)==(5枚目)、(4枚目)==(5枚目)
を一度だけ満たすといい
※二度満たすとフルハウス
※三度満たすとフォーカード
※六度満たすとファイブカード
(1枚目)==0を満たさない(ジョーカーがない)場合
「同じ3つの数字がある」を満たす必要がある、[2](数字)の
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)が三度だけ満たすといい
▲ページの先頭へ▲
・その5:ストレート
Q.ストレートってどういう状況?
A,ストレートとは
相変わらずジョーカーの有無が関係してきますので先に調べます、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「4枚の全てのマークが同じではない」を満たす必要がある、[3](マーク)が
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たさなければいいのです
ここから「4つの数字が続いている」「ジョーカー含めると5つの数字が続く」の分岐があります
「4つの数字が続いている」を満たす場合は
(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たす
「ジョーカー含めると5つの数字が続く」を満たす場合は
(2枚目)+1==(3枚目)、(3枚目)+1==(4枚目)
(4枚目)+1==(5枚目)を二度だけ満たすかつ
(5枚目)-(2枚目)==4を満たすといい
つまり、結論として
(2枚目)+1==(3枚目)、(3枚目)+1==(4枚目)
(4枚目)+1==(5枚目)を三度(全部)満たす、もしくは
二度だけ満たしつつ(5枚目)-(2枚目)==4を満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「5つの数字が続いている」「5枚の全てのマークが同じではない」を満たす必要がある、[2](数字)が
(1枚目)+1==(2枚目)&&(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たし、[3](マーク)が
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たさなければいいのです
▲ページの先頭へ▲
・その6:フラッシュ
Q.フラッシュってどういう状況?
A.海底遺跡の2Fで使うと先に進めるわざです
A,フラッシュとは
またお前か、ジョーカーよ、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「4枚の全てのマークが同じ」「4つの数字が続いていない」を満たす必要がある、[3](マーク)が
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たし、[2](数字)が
(2枚目)+1==(3枚目)、(3枚目)+1==(4枚目)
(4枚目)+1==(5枚目)を三度満たさないもしくは
(5枚目)-(2枚目)==4を満たさなければいいのです
(1枚目)==0を満たさない(ジョーカーがない)場合
「5枚の全てのマークが同じ」「5つの数字が続いていない」を満たす必要がある、[3](マーク)が
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たし、[2](数字)が
(1枚目)+1==(2枚目)&&(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たさなければいいのです
▲ページの先頭へ▲
・その7:フルハウス
Q.フルハウスってどういう状況?
A.完全にフルハウス
A,フルハウスとは
※「同じ3つの数字があり、ジョーカーがある」場合も想定できます(例:{ジョーカー、♠A,♢A,♣A,♣9})が、この場合役の強いフォーカードになるため考慮しなくていいのです
いい加減自重しなさいジョーカー君、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「残り4枚のうち同じ2つの数字が2組のみある」を満たす必要がある、[2](数字)が
(2枚目)==(3枚目)、(2枚目)==(4枚目)、(2枚目)==(5枚目)
(3枚目)==(4枚目)、(3枚目)==(5枚目)、(4枚目)==(5枚目)
を二度だけ満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「同じ3つの数字と同じ2つの数字がある」を満たす必要がある、[2](数字)が
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)が四度だけ満たすといい
▲ページの先頭へ▲
・その8:フォーカード
Q.フォーカードってどういう状況?
A,フォーカードとは
ジョーカー君あとで職員室来なさい、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「同じ3つの数字がある」を満たす必要がある、[2](数字)が
(2枚目)==(3枚目)、(2枚目)==(4枚目)、(2枚目)==(5枚目)
(3枚目)==(4枚目)、(3枚目)==(5枚目)、(4枚目)==(5枚目)
を三度だけ満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「同じ4つの数字がある」を満たす必要がある、[2](数字)が
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)が六度だけ満たすといい
▲ページの先頭へ▲
・その9:ストレートフラッシュ
Q.ストレートフラッシュってどういう状況?
A.ストレートでありフラッシュである...あとは察しな
A,ストレートフラッシュとは
スッ...(包丁を出す音) 手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「4つの数字が続いている」「4枚の全てのマークが同じ」を満たす必要がある、[2](数字)が
(2枚目)+1==(3枚目)、(3枚目)+1==(4枚目)
(4枚目)+1==(5枚目)を二度だけ満たすか
(5枚目)-(2枚目)==4を満たし、[3](マーク)が
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「5つの数字が続いている」「5枚の全てのマークが同じ」を満たす必要がある、[2](数字)が
(1枚目)+1==(2枚目)&&(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たし、[3](マーク)が
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たすといい
▲ページの先頭へ▲
・その10:ロイヤルストレートフラッシュ
Q.ロイヤルストレートフラッシュってどういう状況?
A.ロイヤルでありストレートでありフラッシュである...どういうことなの
A,ロイヤルストレートフラッシュとは
「A,10,J,Q,Kのうち4つがあり、ジョーカーがある」が非常にめんどくさいのです、なのでここで新配列追加!
ロイヤルストレートフラッシュの素材となれるカードを区別する場所を用意します
[4]にジョーカーは10、ロイヤルストレートフラッシュの素材のカードに1、そうでないのは0を代入します
そして手札の5枚の[4]の数を合計すると・・・?(前提として手札のマークは全て同じです)
あとは「5枚(4枚)の全てのマークが同じ」と組み合わせればいけますね
つまりロイヤルストレートフラッシュの状況は
シャーコシャーコ...(包丁を研ぐ音) 手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「4枚の全てのマークが同じ」「[4]内の数値を合計すると14」を満たす必要がある、[3](マーク)が
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たし、[4]内の
合計が14を満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「5枚の全てのマークが同じ」「[4]内の数値を合計すると5」を満たす必要がある、[3](マークが)
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たし、[4]内の
合計が5を満たすといい
▲ページの先頭へ▲
・その11:ファイブカード
Q.ファイブカードってどういう状況?
A,ファイブカードとは
ジョーカーの有無に左右されないのでここは見逃してあげましょう(´・ω・`)
手札の数字をID順に並び替えたあとに、[2](数字)が(1枚目)==0を満たし、
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たすといい
▲ページの先頭へ▲
まとめ
最終的な表を、省略なしで書いて終わりにしましょう(´・ω・`)
しかしまだ課題が残ってないわけではないです、相手と役が被った際に比べるための数字を割り出す方法が
まだ出てないのでそこでワンチャン新しい配列を追加するかもしれないです(´・ω・`)
長かった・・・このブログ書き終えるのに5時間か・・・途中でデータとか飛ばなくてよかった(´・ω・`)
ジョーカーがなければ絶対もっと簡単だったよね グサッ(包丁でジョーカーを刺す音)
▲ページの先頭へ▲
それでは、ここまで閲覧ありがとうございました三 ヾ(⌒(厂 ˙ω˙ )厂 ウェーイ
ツイート
※この日記は前回の続きです
※今回はスクリプトは出ません
※最近マウスの調子が悪い、これだから無線は(´・ω・`)
課題:手札のカードを判断してポーカーの役の判別をする
目次----------------------------------------------
- 1.ポーカーのルール
- 2.役の種類
- 3.具体的に判別するドン!
- ┗ノーペア
- ┗ワンペア
- ┗ツーペア
- ┗スリーカード
- ┗ストレート
- ┗フラッシュ
- ┗フルハウス
- ┗フォーカード
- ┗ストレートフラッシュ
- ┗ロイヤルストレートフラッシュ
- ┗ファイブカード
- まとめ
- コメント欄
1.ポーカーのルール
いやそこからかよと突っ込みたい方もいると思いますが基本から見ていきます、一応ね(´・ω・`)
というか若干ルールが違ったりもするのでしっかり決めるという意味も込めて(´・ω・`)
- ジョーカーを1枚含んだ計53枚(13×4+1)のトランプを使用
- カードの数字の強さはK>Q>J>10>9>...>2>A
- カードのマークの強さは♠(スペード)>♡(ハート)>♢(ダイヤ)>♣(クローバー)
- チェンジは互いに1回のみ
- ジョーカーはどんな数字、マークにもなれる
- 後述するストレートの際、{10,J,Q,K,A}や{J,Q,K,A,2}は成り立たないものとする
- 役がかぶった際、基本的に数字を優先して比較し、数字が同じならマークを比較して勝敗をつける
- 役がかぶった際にジョーカーを持っているプレイヤーがいた場合強制的にそのプレイヤーの敗北となる
- 役で数字を比較するときにはA=1,J=11,Q=12,K=13として扱う
このルールでいきます(´・ω・`)
結構ルールって地域でも違ったりしますしね(UNOのドボンルール知ってる方コメントお願いします)
▲ページの先頭へ▲
2.役の種類
ここでは役の種類、条件、例を表にして乗せます(´・ω・`)
ここまではただのルール確認ですね(´・ω・`)
役の種類は
- ノーペア
- ワンペア
- ツーペア
- スリーカード
- ストレート
- フラッシュ
- フルハウス
- フォーカード
- ストレートフラッシュ
- ロイヤルストレートフラッシュ
- ファイブカード
↓その詳細がこちら↓
上が弱く、下が強い順です
役名 | 条件 | 例 | 被った場合 |
---|---|---|---|
ノーペア | 何も役がない | ♠2,♡4,♠5,♣9,♡J | 手札の一番強い数字で比較、同じならマークで比較 |
ワンペア | 同じ数字のカード2枚が1組 | ♠4,♡4,♢5,♣9,♣K | ペアの数字で比較、同じなら強い方のマークで比較 |
ツーペア | 同じ数字のカード2枚が2組 | ♡5,♢5,♠7,♡J,♣J | 強い方のペアの数字で比較、同じなら強い方のマークで比較 |
スリーカード | 同じ数字のカードが3枚 | ♠A,♠3,♢3,♣3,♡5 | 3枚の方の数字で比較、同じなら一番強いマークで比較 |
ストレート | カード5枚の数字が続いている | ♠4,♢5,♠6,♡7,♡8 | 一番強い数字で比較、同じならマークで比較 |
フラッシュ | カード5枚のマークが全て同じ | ♢A,♢5,♢7,♢J,♢,Q | マークで比較、同じなら一番強い数字で比較 |
フルハウス | 同じ数字のカード3枚+同じ数字のカード2枚 | ♠2,♢2,♣2,♡10,♣10 | 3枚の方の数字で比較、同じなら一番強いマークで比較 |
フォーカード | 同じ数字のカードが4枚 | ♠4,♡4,♢4,♣4,♢K | 4枚の方の数字で比較 |
ストレートフラッシュ | カード5枚のマークが全て同じ&数字が続いている | ♢7,♢8,♢9,♢10,♢J | マークで比較、同じなら一番強い数字で比較 |
ロイヤルストレートフラッシュ | カード5枚のマークが全て同じ&A,10,J,Q,Kがある | ♣A,♣10,♣J,♣Q,♣K | マークで比較 |
ファイブカード | 同じ数字のカードが5枚 | ♠J,♡J,♢J,♣J,ジョーカー | 仕様上被らないので絶対勝利 |
あーこれしんどいなぁ・・・(´・ω・`)
▲ページの先頭へ▲
3.具体的に判別するドン!
さて、このペア達を判別していきます(´・ω・`)
判別するために、配列を追加する必要があります(´・ω・`)
具体的には
変数名 | [0](ID) | [1](名前) |
---|---|---|
[0] | 0 | ジョーカー |
[1] | 1 | スペードのA |
: | : | : |
[52] | 52 | クローバーのK |
▲ページの先頭へ▲
・その1:ノーペア
Q.ノーペアってどういう状況?
A,ノーペアとは
- 「5枚全ての数字が違う」
- 「5枚全てのマークが同じではない(=フラッシュ、ロイヤルストレートフラッシュではない)」
- 「5枚の数字が続いていない(=ストレートではない)」
- 「ジョーカーが存在しない」
これに必要な情報はそのカードの「数字」と「マーク」でしょう
数字は0=ジョーカー、1=A、2=2...というように当てはめ、
マークは0=ジョーカー、1=スペード、2=ハート、3=ダイヤ、4=クローバーというように当てはめます
変数名 | [0](ID) | [1](名前) | [2](数字) | [3](マーク) |
---|---|---|---|---|
[0] | 0 | ジョーカー | 0 | 0 |
[1] | 1 | スペードのA | 1 | 1 |
: | : | : | : | : |
[52] | 52 | クローバーのK | 13 | 4 |
「5枚全ての数字が違う」に関しては、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)<(2枚目)&&(2枚目)<(3枚目)&&(3枚目)<(4枚目)&&(4枚目)<(5枚目)を満たせばいいのです
「5枚全てのマークが同じではない(=フラッシュ、ロイヤルストレートフラッシュではない)」は[3](マーク)が
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たさなければいいのです
「5枚の数字が続いていない(=ストレートではない)」は手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)+1==(2枚目)&&(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たさなければいいのです
「ジョーカーが存在しない」は手札の数字をID順に並び替えたあとに、[2]数字が
(1枚目)==0を満たさなければいいのです
▲ページの先頭へ▲
・その2:ワンペア
Q.ワンペアってどういう状況?
A,ワンペアとは
- 「同じ2つの数字が1組のみあり、ジョーカーがない」もしくは「4枚全ての数字が違い、続いていなく、マークも同じでなく、ジョーカーがある」
まずジョーカーの有無が関係してきますので先に調べます、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「残り4枚全ての数字が違い、続いていなく、マークが同じではない」を同時に満たす必要がある
※「残り4枚全ての数字が違い」が満たされなければスリーカード、フルハウスなど
※「残り4枚の数字が続いていない」が満たされなければストレート
※「残り4枚のマークが同じではない」が満たされなければフラッシュ
[2](数字)の(2枚目)<(3枚目)&&(3枚目)<(4枚目)&&(4枚目)<(5枚目)を満たし、
[2](数字)の(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たさず、
[3](マーク)の(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たさなければいいのです
(1枚目)==0を満たさない(ジョーカーがない)場合
「同じ2つの数字が1組のみある」を満たす必要がある、[2](数字)の
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)が一度だけ満たすといい
※二度満たすとツーペア
※三度満たすとスリーカード
※四度満たすとフルハウス
※六度満たすとフォーカード
▲ページの先頭へ▲
・その3:ツーペア
Q.ツーペアってどういう状況?
A,ツーペアとは
- 「同じ2つの数字が2組のみあり、ジョーカーがない」
※「同じ2つの数字が1組のみあり、ジョーカーがある」場合も想定できます(例:{ジョーカー、♠A,♢A,♡5,♣9})が、この場合役の強いスリーカードになるため考慮しなくていいのです
ジョーカーの有無が関係ないので楽です(´・ω・`)
「同じ2つの数字が2組のみある」を満たす必要がある、[2](数字)の
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)を二度だけ満たすといい
▲ページの先頭へ▲
・その4:スリーカード
Q.スリーカードってどういう状況?
A,スリーカードとは
- 「同じ3つの数字があり、ジョーカーがない」もしくは「同じ2つの数字が1組のみあり、ジョーカーがある」
やっぱりジョーカーの有無が関係してきますので先に調べます、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「残り4枚のうち同じ2つの数字が1組ある」を満たす必要がある、[2](数字)の
(2枚目)==(3枚目)、(2枚目)==(4枚目)、(2枚目)==(5枚目)
(3枚目)==(4枚目)、(3枚目)==(5枚目)、(4枚目)==(5枚目)
を一度だけ満たすといい
※二度満たすとフルハウス
※三度満たすとフォーカード
※六度満たすとファイブカード
(1枚目)==0を満たさない(ジョーカーがない)場合
「同じ3つの数字がある」を満たす必要がある、[2](数字)の
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)が三度だけ満たすといい
▲ページの先頭へ▲
・その5:ストレート
Q.ストレートってどういう状況?
A,ストレートとは
- 「5つの数字が続いている」もしくは「4つの数字が続いていて、ジョーカーがある」もしくは「ジョーカーがあり、ジョーカーを含めると5つの数字が続く」
- 「5枚(4枚)の全てのマークが同じではない」
相変わらずジョーカーの有無が関係してきますので先に調べます、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「4枚の全てのマークが同じではない」を満たす必要がある、[3](マーク)が
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たさなければいいのです
ここから「4つの数字が続いている」「ジョーカー含めると5つの数字が続く」の分岐があります
「4つの数字が続いている」を満たす場合は
(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たす
「ジョーカー含めると5つの数字が続く」を満たす場合は
(2枚目)+1==(3枚目)、(3枚目)+1==(4枚目)
(4枚目)+1==(5枚目)を二度だけ満たすかつ
(5枚目)-(2枚目)==4を満たすといい
つまり、結論として
(2枚目)+1==(3枚目)、(3枚目)+1==(4枚目)
(4枚目)+1==(5枚目)を三度(全部)満たす、もしくは
二度だけ満たしつつ(5枚目)-(2枚目)==4を満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「5つの数字が続いている」「5枚の全てのマークが同じではない」を満たす必要がある、[2](数字)が
(1枚目)+1==(2枚目)&&(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たし、[3](マーク)が
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たさなければいいのです
▲ページの先頭へ▲
・その6:フラッシュ
Q.フラッシュってどういう状況?
A.海底遺跡の2Fで使うと先に進めるわざです
A,フラッシュとは
- 「5枚の全てのマークが同じ」もしくは「4枚の全てのマークが同じで、ジョーカーがある」
- 「5(4)つの数字が続いていない」
またお前か、ジョーカーよ、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「4枚の全てのマークが同じ」「4つの数字が続いていない」を満たす必要がある、[3](マーク)が
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たし、[2](数字)が
(2枚目)+1==(3枚目)、(3枚目)+1==(4枚目)
(4枚目)+1==(5枚目)を三度満たさないもしくは
(5枚目)-(2枚目)==4を満たさなければいいのです
(1枚目)==0を満たさない(ジョーカーがない)場合
「5枚の全てのマークが同じ」「5つの数字が続いていない」を満たす必要がある、[3](マーク)が
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たし、[2](数字)が
(1枚目)+1==(2枚目)&&(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たさなければいいのです
▲ページの先頭へ▲
・その7:フルハウス
Q.フルハウスってどういう状況?
A.完全にフルハウス
A,フルハウスとは
- 「同じ3つの数字と同じ2つの数字がある」もしくは「同じ2つの数字が2組のみあり、ジョーカーがある」
※「同じ3つの数字があり、ジョーカーがある」場合も想定できます(例:{ジョーカー、♠A,♢A,♣A,♣9})が、この場合役の強いフォーカードになるため考慮しなくていいのです
いい加減自重しなさいジョーカー君、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「残り4枚のうち同じ2つの数字が2組のみある」を満たす必要がある、[2](数字)が
(2枚目)==(3枚目)、(2枚目)==(4枚目)、(2枚目)==(5枚目)
(3枚目)==(4枚目)、(3枚目)==(5枚目)、(4枚目)==(5枚目)
を二度だけ満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「同じ3つの数字と同じ2つの数字がある」を満たす必要がある、[2](数字)が
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)が四度だけ満たすといい
▲ページの先頭へ▲
・その8:フォーカード
Q.フォーカードってどういう状況?
A,フォーカードとは
- 「同じ4つの数字があり、ジョーカーがない」もしくは「同じ3つの数字があり、ジョーカーがある」
ジョーカー君あとで職員室来なさい、手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「同じ3つの数字がある」を満たす必要がある、[2](数字)が
(2枚目)==(3枚目)、(2枚目)==(4枚目)、(2枚目)==(5枚目)
(3枚目)==(4枚目)、(3枚目)==(5枚目)、(4枚目)==(5枚目)
を三度だけ満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「同じ4つの数字がある」を満たす必要がある、[2](数字)が
(1枚目)==(2枚目)、(1枚目)==(3枚目)、(1枚目)==(4枚目)
(1枚目)==(5枚目)、(2枚目)==(3枚目)、(2枚目)==(4枚目)
(2枚目)==(5枚目)、(3枚目)==(4枚目)、(3枚目)==(5枚目)
(4枚目)==(5枚目)が六度だけ満たすといい
▲ページの先頭へ▲
・その9:ストレートフラッシュ
Q.ストレートフラッシュってどういう状況?
A.ストレートでありフラッシュである...あとは察しな
A,ストレートフラッシュとは
- 「5つの数字が続いている」もしくは「4つの数字が続いていて、ジョーカーがある」
- 「5枚(4枚)の全てのマークが同じ」
スッ...(包丁を出す音) 手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「4つの数字が続いている」「4枚の全てのマークが同じ」を満たす必要がある、[2](数字)が
(2枚目)+1==(3枚目)、(3枚目)+1==(4枚目)
(4枚目)+1==(5枚目)を二度だけ満たすか
(5枚目)-(2枚目)==4を満たし、[3](マーク)が
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「5つの数字が続いている」「5枚の全てのマークが同じ」を満たす必要がある、[2](数字)が
(1枚目)+1==(2枚目)&&(2枚目)+1==(3枚目)&&(3枚目)+1==(4枚目)&&(4枚目)+1==(5枚目)を満たし、[3](マーク)が
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たすといい
▲ページの先頭へ▲
・その10:ロイヤルストレートフラッシュ
Q.ロイヤルストレートフラッシュってどういう状況?
A.ロイヤルでありストレートでありフラッシュである...どういうことなの
A,ロイヤルストレートフラッシュとは
- 「5つの数字がA,10,J,Q,Kである」もしくは「A,10,J,Q,Kのうち4つがあり、ジョーカーがある」
- 「5枚(4枚)の全てのマークが同じ」
「A,10,J,Q,Kのうち4つがあり、ジョーカーがある」が非常にめんどくさいのです、なのでここで新配列追加!
ロイヤルストレートフラッシュの素材となれるカードを区別する場所を用意します
[4]にジョーカーは10、ロイヤルストレートフラッシュの素材のカードに1、そうでないのは0を代入します
変数名 | [0](ID) | [1](名前) | [2](数字) | [3](マーク) | [4](ロイヤル区別) |
---|---|---|---|---|---|
[0] | 0 | ジョーカー | 0 | 0 | 10 |
[1] | 1 | スペードのA | 1 | 1 | 1 |
[2] | 2 | ハートのA | 1 | 2 | 1 |
[3] | 3 | ダイヤのA | 1 | 3 | 1 |
[4] | 4 | クローバーのA | 1 | 4 | 1 |
[5] | 5 | スペードの2 | 2 | 1 | 0 |
: | : | : | : | : | : |
[52] | 52 | クローバーのK | 13 | 4 | 1 |
合計結果 | 判定 |
---|---|
0~4 | 無理です |
5 | 普通にロイヤルストレートフラッシュ! |
6~9 | 無理です |
10~13 | ジョーカーが入った!だが無理だ! |
14 | ジョーカーが入った上に素材4つ!いける! |
つまりロイヤルストレートフラッシュの状況は
- 「[4]内の数値を合計すると5か14」
- 「5枚(4枚)の全てのマークが同じ」
シャーコシャーコ...(包丁を研ぐ音) 手札の数字をID順に並び替えたあとに、[2](数字)が
(1枚目)==0を満たす(ジョーカーがある)場合
「4枚の全てのマークが同じ」「[4]内の数値を合計すると14」を満たす必要がある、[3](マーク)が
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たし、[4]内の
合計が14を満たすといい
(1枚目)==0を満たさない(ジョーカーがない)場合
「5枚の全てのマークが同じ」「[4]内の数値を合計すると5」を満たす必要がある、[3](マークが)
(1枚目)==(2枚目)&&(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たし、[4]内の
合計が5を満たすといい
▲ページの先頭へ▲
・その11:ファイブカード
Q.ファイブカードってどういう状況?
A,ファイブカードとは
- 「同じ4つの数字があり、ジョーカーがある」
ジョーカーの有無に左右されないのでここは見逃してあげましょう(´・ω・`)
手札の数字をID順に並び替えたあとに、[2](数字)が(1枚目)==0を満たし、
(2枚目)==(3枚目)&&(3枚目)==(4枚目)&&(4枚目)==(5枚目)を満たすといい
▲ページの先頭へ▲
まとめ
最終的な表を、省略なしで書いて終わりにしましょう(´・ω・`)
変数名 | [0](ID) | [1](名前) | [2](数字) | [3](マーク) | [4](ロイヤル区別) |
---|---|---|---|---|---|
[0] | 0 | ジョーカー | 0 | 0 | 10 |
[1] | 1 | スペードのA | 1 | 1 | 1 |
[2] | 2 | ハートのA | 1 | 2 | 1 |
[3] | 3 | ダイヤのA | 1 | 3 | 1 |
[4] | 4 | クローバーのA | 1 | 4 | 1 |
[5] | 5 | スペードの2 | 2 | 1 | 0 |
[6] | 6 | ハートの2 | 2 | 2 | 0 |
[7] | 7 | ダイヤの2 | 2 | 3 | 0 |
[8] | 8 | クローバーの2 | 2 | 4 | 0 |
[9] | 9 | スペードの3 | 3 | 1 | 0 |
[10] | 10 | ハートの3 | 3 | 2 | 0 |
[11] | 11 | ダイヤの3 | 3 | 3 | 0 |
[12] | 12 | クローバーの3 | 3 | 4 | 0 |
[13] | 13 | スペードの4 | 4 | 1 | 0 |
[14] | 14 | ハートの4 | 4 | 2 | 0 |
[15] | 15 | ダイヤの4 | 4 | 3 | 0 |
[16] | 16 | クローバーの4 | 4 | 4 | 0 |
[17] | 17 | スペードの5 | 5 | 1 | 0 |
[18] | 18 | ハートの5 | 5 | 2 | 0 |
[19] | 19 | ダイヤの5 | 5 | 3 | 0 |
[20] | 20 | クローバーの5 | 5 | 4 | 0 |
[21] | 21 | スペードの6 | 6 | 1 | 0 |
[22] | 22 | ハートの6 | 6 | 2 | 0 |
[23] | 23 | ダイヤの6 | 6 | 3 | 0 |
[24] | 24 | クローバーの6 | 6 | 4 | 0 |
[25] | 25 | スペードの7 | 7 | 1 | 0 |
[26] | 26 | ハートの7 | 7 | 2 | 0 |
[27] | 27 | ダイヤの7 | 7 | 3 | 0 |
[28] | 28 | クローバーの7 | 7 | 4 | 0 |
[29] | 29 | スペードの8 | 8 | 1 | 0 |
[30] | 30 | ハートの8 | 8 | 2 | 0 |
[31] | 31 | ダイヤの8 | 8 | 3 | 0 |
[32] | 32 | クローバーの8 | 8 | 4 | 0 |
[33] | 33 | スペードの9 | 9 | 1 | 0 |
[34] | 34 | ハートの9 | 9 | 2 | 0 |
[35] | 35 | ダイヤの9 | 9 | 3 | 0 |
[36] | 36 | クローバーの9 | 9 | 4 | 0 |
[37] | 37 | スペードの10 | 10 | 1 | 1 |
[38] | 38 | ハートの10 | 10 | 2 | 1 |
[39] | 39 | ダイヤの10 | 10 | 3 | 1 |
[40] | 40 | クローバーの10 | 10 | 4 | 1 |
[41] | 41 | スペードのJ | 11 | 1 | 1 |
[42] | 42 | ハートのJ | 11 | 2 | 1 |
[43] | 43 | ダイヤのJ | 11 | 3 | 1 |
[44] | 44 | クローバーのJ | 11 | 4 | 1 |
[45] | 45 | スペードのQ | 12 | 1 | 1 |
[46] | 46 | ハートのQ | 12 | 2 | 1 |
[47] | 47 | ダイヤのQ | 12 | 3 | 1 |
[48] | 48 | クローバーのQ | 12 | 4 | 1 |
[49] | 49 | スペードのK | 13 | 1 | 1 |
[50] | 50 | ハートのK | 13 | 2 | 1 |
[51] | 51 | ダイヤのK | 13 | 3 | 1 |
[52] | 52 | クローバーのK | 13 | 4 | 1 |
まだ出てないのでそこでワンチャン新しい配列を追加するかもしれないです(´・ω・`)
長かった・・・このブログ書き終えるのに5時間か・・・途中でデータとか飛ばなくてよかった(´・ω・`)
ジョーカーがなければ絶対もっと簡単だったよね グサッ(包丁でジョーカーを刺す音)
▲ページの先頭へ▲
それでは、ここまで閲覧ありがとうございました三 ヾ(⌒(厂 ˙ω˙ )厂 ウェーイ
コメントする
コメントするには、ログインする必要があります。
コメント一覧
役のチェックを行うときは
強い役から順に判定していき、
ならなかった場合、次の役の判定とすると
判定に必要となる条件式が徐々に減っていきます
また、数字、マークで新規に判別配列を作っているようですが、
0を除いた、4で割った数(切捨て)、
0を除いた、4で割った余り、の数値で
判定可能になると思います
あとは、X<5 X>36で
ロイヤルの判定も可能ですね
強い役から順に判定していき、
ならなかった場合、次の役の判定とすると
判定に必要となる条件式が徐々に減っていきます
また、数字、マークで新規に判別配列を作っているようですが、
0を除いた、4で割った数(切捨て)、
0を除いた、4で割った余り、の数値で
判定可能になると思います
あとは、X<5 X>36で
ロイヤルの判定も可能ですね
おお・・・なるほど、そうなるとノーペアの判定があんなめんどくさいことしなくてすむのか・・・(´・ω・`)
切捨てとかどうやるんやろなとずっと思ってるんですけど一体どこに
あ っ た
なるほど・・・確かにこれで楽にはなりますね(´・ω・`)
ただ、この方法を利用してやっぱり新規に配列は作りますかね、わかりやすいように(´・ω・`)
あぁ・・・同じマークを持っていると仮定するならそれでも問題ないですね、流石です(´;ω;`)
やはりまだ"ぷろぐらみんぐてきしこうりょく"が足りない・・・(´・_・`)
いろいろ助言ありがとうございます!(*´ω`*)
切捨てとかどうやるんやろなとずっと思ってるんですけど一体どこに
あ っ た
なるほど・・・確かにこれで楽にはなりますね(´・ω・`)
ただ、この方法を利用してやっぱり新規に配列は作りますかね、わかりやすいように(´・ω・`)
あぁ・・・同じマークを持っていると仮定するならそれでも問題ないですね、流石です(´;ω;`)
やはりまだ"ぷろぐらみんぐてきしこうりょく"が足りない・・・(´・_・`)
いろいろ助言ありがとうございます!(*´ω`*)
ストレートでのAの扱いがうまくいけば
ロイストは最小値、最大値判定だけでなんとかなるような気も
Aの判定はめんどくさいのでなかったことにしました、というか
ロイストが10~Aの階段になっているって今日初めて知りましたし(´・ω・`)
とはいえ別に[5](ストレート区別)を作ってAを14判定にすることも十分できるなと今考えたり・・・
A最強ルールならAを13番目に並び替えた方が、強さ判定時の面倒さはなくなるかと
ナンバーの強さ判定→同じ時→マークの強さ判定とカードIDで比べられますから
ストレートは手札の最大値最小値(ジョーカーがある時下から2番目)の差が5ないし4で、(追記:差は4か3ですね)
ノーペアでやった手札の全ての数字が違うをやればいいのでは
というかA最強ルールなんて今まで知らなかったのです←
お疲れ様です(^ω^っ)3
次回も楽しみにしています