ポーカーの手札を全部リストする
(2018/10/24)
以下のような簡単なプログラムでポーカーのあらゆる手札をリストできる。 code:poker.rb
numbers = 'A', '2', '3', '4', '5', '6', '7', '8', '9', 'X', 'J', 'Q', 'K' (0..51).to_a.combination(5) { |a|
puts a.collect { |i|
}.join('')
}
poker.rbというファイルをローカルに作成しなくても動くので便利!
実行結果
code:実行
$ ruby poker.rb
SADAHACAS2
SADAHACAD2
SADAHACAH2
SADAHACAC2
SADAHACAS3
...
$ ruby poker.rb | wc
2598960 2598960 28588560
$
これをgrepすればいろんな手役の数を計算できる。
code: test
$ ruby poker.rb | egrep 'A.*A.*A.*A' | head -4 # エースのフォーカード
SADAHACAS2
SADAHACAD2
SADAHACAH2
SADAHACAC2
$ ruby poker.rb | grep H4 | egrep '(A.2.3.4.5|2.3.4.5.6|3.4.5.6.7|4.5.6.7.8)' # ♥4を含むストレート
SAS2S3H4S5
SAS2S3H4D5
SAS2S3H4H5
SAS2S3H4C5
...
$ ruby poker.rb | egrep 'S.S.S.S.S'| wc # ♠のフラッシュ
1287 1287 14157
$
https://gyazo.com/6b2a95692ca0038db6cefa3b6400023e
? ポーカーの手をすべてリストするRubyプログラム
? Scrapboxのコード記法で書いたRubyプログラムを(ターミナル|端末)から動かす