No.1ベストアンサー
- 回答日時:
挑戦するのに早いも遅いもないと思いますよ。
難易度はそれなりに高いですが、目的があるだけにいい題材になるとは思います。
結構メジャーなゲームなので、それなりに本などにサンプルが載っているとは思うので、最終的にはこれらを手本に作るといいでしょう。
まずは簡単な、役のチェックのない単純なポーカーを作ってみてはいかがでしょうか。
質問の文章からでは、どのような方法でプログラムを作成されているかわかりませんので、ポーカーを作るにあたって基本から説明します。
ポーカーというゲームを考えたときに、まずはどういうデータが必要かを考えます。
まずはトランプのカードが52枚あります。
これらの数字やマークはすべて違いますから、52個の配列を作成し、それらに数字とマークのデータを入れることになります。
構造体を使うと後々役のチェックにも便利でしょうから、構造体について少し勉強してみるとよいでしょう。
次に自分の手札についてですが、これは5枚のため、5個の配列を作成してやります。
後の説明のために、Yama(52)とTefuda(5)という配列の変数名にするとします。
データ構造が決まれば、あとはカードを配るという作業があります。
まずは、自分の手札にカードを山から5枚取得します。
そして、次にいらないカードを交換します。
ここで考えてほしいのは、手札を配るのも、カードの交換で新しいカードを取るのも、同じ作業であるということです。
つまり、最初の手札を配るということは、Tefuda(1)~Tefuda(5)に対して、Yama(52)からランダムでデータを取り出すことです。
そして、カードを交換するということは、Tefuda(n)に対して、Yama(52)からランダムでデータを取り出すことです。
これから考えると、手札を配るのも、カードの交換も、同じ関数で処理できることがわかります。
とりあえずは、これを参考にプログラムをもう一度見直し、作成されてはどうでしょうか。
No.2
- 回答日時:
早い事はないと思います。
カードの交換より、対コンピュータでゲームをする場合に
コンピュータのアルゴリズムを考えるほうが大変では?
交換の方は、最初にランダムで52+1枚を配列に格納して
配列から順番に配る方法だと
自分手札1 相手手札1 自分手札2 相手手札2 ・・・
という風になるのですが
仮に自分手札 1~5枚がインデックス 1~5
相手手札 1~5枚がインデックス 6~10
として
カードを一枚配るという関数をインデックスを引数に作ってあげれば
最初に配る時も交換するときも要領は同じはずです。
あとは、役の判断ができればなんとか、できるのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 友達・仲間 高校の入学式の日は入学式以外に何かしますか?また、どうしたら友達を作れるでしょうか? 3 2022/03/30 01:17
- スーパー・コンビニ お店のレジは、キャッシュレスにすると操作が簡単になるのですか? 3 2023/08/03 23:59
- 発達障害・ダウン症・自閉症 WAISⅲについて 全検査 99 言語理解 88 知覚統合 110 作動記憶 92 処理速度 86 1 2022/11/22 10:18
- その他(暮らし・生活・行事) 大阪の高槻市付近でポーカー出来るとこがあれば教えてほしいです 1 2022/04/18 10:37
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- その他(ギャンブル) トータルでプラスになるギャンブルってありますか? あるならやってみたいです! 8 2022/12/13 10:15
- その他(家計・生活費) 障害者割引でETCカードが本人でなく配偶者名でも使用出来ますか? 有料道路の障害者割引についてですが 6 2022/11/16 07:11
- Excel(エクセル) Libreoffice calcで人名を取り消し線を入れたい。 2 2022/09/10 15:27
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
エクセルでXY座標に並べられた...
-
CheckBoxの配列化
-
Excel2010のinputboxで複数デー...
-
定数配列の書き方
-
VBAでMODE関数をつくる
-
Dir関数で読み取り順を操作でき...
-
VBA ReDim と ReDim Preserve ...
-
VB6のメモリ解放に関して
-
excel vbaの配列なんですが・・・
-
C#でbyte配列から画像を表示さ...
-
複数のtextboxの処理を一括で行...
-
配列のペースト出力結果の書式...
-
構造体配列内の文字列検索のよ...
-
.NET 文字コードの変換
-
VB6からの移行したいけど、VB.N...
-
countif/sumifのようなVBA関数
-
EXCEL VBA 配列デー...
-
テキストボックの文字を一行ず...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
Excel2010のinputboxで複数デー...
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
配列のペースト出力結果の書式...
-
Dir関数で読み取り順を操作でき...
-
エクセルでXY座標に並べられた...
-
VBAで配列引数を値渡しできない...
-
C++で作成したDLLにVBAから配列...
-
構造体配列の特定のメンバーをF...
-
OutOfMemoryExceptionの回避策...
-
大量の変数を定義するにはどう...
-
VBAでMODE関数をつくる
-
VBScriptでCSVファイルを読み出...
-
定数配列の書き方
-
Segmentation Fault (メモリ制限?)
-
Excelのメモリ(配列)の上限は2G...
-
Redim とEraseの違いは?
-
CheckBoxの配列化
-
配列の中の最大値とそのインデ...
おすすめ情報