- ベストアンサー
ポーカーを作りたいのですが・・・
ポーカーを作りたいのですが、カードを配る所まではなんとか自力で出来たのですが・・・。 肝心のカードの交換が分かりません(T_T) 一応、チェックボックスとイメージを配列で処理しているのですが・・・。 簡単な配列しか分からない私が挑戦するにはまだポーカーは早かったのでしょうか??
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
挑戦するのに早いも遅いもないと思いますよ。 難易度はそれなりに高いですが、目的があるだけにいい題材になるとは思います。 結構メジャーなゲームなので、それなりに本などにサンプルが載っているとは思うので、最終的にはこれらを手本に作るといいでしょう。 まずは簡単な、役のチェックのない単純なポーカーを作ってみてはいかがでしょうか。 質問の文章からでは、どのような方法でプログラムを作成されているかわかりませんので、ポーカーを作るにあたって基本から説明します。 ポーカーというゲームを考えたときに、まずはどういうデータが必要かを考えます。 まずはトランプのカードが52枚あります。 これらの数字やマークはすべて違いますから、52個の配列を作成し、それらに数字とマークのデータを入れることになります。 構造体を使うと後々役のチェックにも便利でしょうから、構造体について少し勉強してみるとよいでしょう。 次に自分の手札についてですが、これは5枚のため、5個の配列を作成してやります。 後の説明のために、Yama(52)とTefuda(5)という配列の変数名にするとします。 データ構造が決まれば、あとはカードを配るという作業があります。 まずは、自分の手札にカードを山から5枚取得します。 そして、次にいらないカードを交換します。 ここで考えてほしいのは、手札を配るのも、カードの交換で新しいカードを取るのも、同じ作業であるということです。 つまり、最初の手札を配るということは、Tefuda(1)~Tefuda(5)に対して、Yama(52)からランダムでデータを取り出すことです。 そして、カードを交換するということは、Tefuda(n)に対して、Yama(52)からランダムでデータを取り出すことです。 これから考えると、手札を配るのも、カードの交換も、同じ関数で処理できることがわかります。 とりあえずは、これを参考にプログラムをもう一度見直し、作成されてはどうでしょうか。
その他の回答 (1)
- Hk2001
- ベストアンサー率48% (24/49)
早い事はないと思います。 カードの交換より、対コンピュータでゲームをする場合に コンピュータのアルゴリズムを考えるほうが大変では? 交換の方は、最初にランダムで52+1枚を配列に格納して 配列から順番に配る方法だと 自分手札1 相手手札1 自分手札2 相手手札2 ・・・ という風になるのですが 仮に自分手札 1~5枚がインデックス 1~5 相手手札 1~5枚がインデックス 6~10 として カードを一枚配るという関数をインデックスを引数に作ってあげれば 最初に配る時も交換するときも要領は同じはずです。 あとは、役の判断ができればなんとか、できるのでは?