私は、2人のプレーヤーがそれぞれ4枚のカードを手に持っており、合計でできるだけ多くのカードをテーブルに置く必要がある小さなカードゲームを書いています。クラシックなポーカーカードを使用しているので、同じシードと同じ値です。
King can only take another King
Queen can only take another Queen
Jack can only take another Jack
番号付きのカードは合計で取ることができるので、例えば:
10H takes 6C + 4S
5S takes 3C + 2D or 3S + 2D
7S takes 4S + 3S or 5C + 2D
And so on...
シードは関係ありません...値だけが関係します。しかし、問題は、一意の組み合わせを計算する必要があることです。したがって、たとえば、シードと値が同じであるため、これらのコンボの1つだけが必要です。
10H -> 6C + 4S
10H -> 4S + 6C
これを行うための既成の関数はありますか?グーグルとウィキペディアを見て回ってみましたが、おそらく英語でのアルゴリズム/問題の名前がわかりません。ああ...私は忘れていました...解決策はあなたが望むものなら何でもかまいません(プレーン、再帰、linq)。