課題の「ポーカーゲーム」で困っています。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
rin

課題の「ポーカーゲーム」で困っています。

#1

投稿記事 by rin » 14年前

Cプログラムです。
急ぎで申し訳ありませんが、明日までの課題なので
コードがどうなるか教えていただけませんか?

絵柄は、クローバー、スペード、ダイヤ、ハートの4種。
手は、ワンペア、ツーペア、スリーカード、フルハウス、フォーカード、フラッシュ、ストレート、ストレートフラッシュ、ロイヤルストレートフラッシュです。
何の手にもなっていないものは「ブタ」とします。

<手順>
①最初にユーザー、ディーラー(コンピュータ)が5枚カードを引く。表示はユーザのみ。
②カードは各自2回まで引ける。(2回とも最大5枚変更可能)。
③ディーラーは手が「ブタ」の場合にランダムに枚数を決定しカードを交換する。
④ユーザーがカードを引く場合、何枚交換するのかを聞く。
 入力された値が0の場合、交換しない。1~5の場合、その数分カードを交換する。
⑤同じカードは2度と出ない。1ゲームに使用するカードは4セット(13*4=52で1セット。ジョーカーはなし)とする。
⑥勝負は1回きり。
⑦ユーザーはカードを交換するたびに手が表示される。
⑧ディーラーの手は最後に表示されるのみ。ただし、交換した枚数は表示される。
⑨手はブタ、1→9の順で強いものとする。
⑩両方がブタの場合は引き分け。ブタ以外の手で同じ手の場合はディーラーの勝ちとする。

<指定事項>
・インクルードするファイル<stdio.h><time.h><stdlib.h>
・引くカードが毎回ランダムになるようにsrand(time(NULL));を使う。
・どのカードを引くかはランダム関数(rand())を用いる。

<出力イメージ>
 【ポーカー】
ユーザーの手:  スペードの10 ダイヤの9 クラブの2 クラブの12 スペードの11

ディーラーのカー交換枚数:3
カードを何枚交換しますか?:1

ユーザーの手:  クラブの6 ダイヤの9 クラブの2 クラブの12 スペードの11

ディーラーのカード交換枚数:0
カードを何枚交換しますか?:2

ユーザーの手:  ハートの3 ダイヤの9 ダイヤの7 クラブの12 スペードの11
ディーラーの手: クラブの4 ハートの13 ハートの9 スペードの4 スペードの5

ユーザー: ブタ
ディーラー:ワンペア

ディーラーの勝ち!!



です。よろしくお願いいたします。

box
記事: 2002
登録日時: 14年前

Re: 課題の「ポーカーゲーム」で困っています。

#2

投稿記事 by box » 14年前

思い切ってあきらめるのが吉。それとも奇跡を待つか…。
今まで、ご自分は何をされていたんですか?とストレートに聞いてみたりする。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: 課題の「ポーカーゲーム」で困っています。

#3

投稿記事 by Dixq (管理人) » 14年前

これを明日までには厳しくないでしょうか・・。

上に書かれた手順のうち、自分で分かるのはどこまでですか?
分かるところまでのコードを提示して頂かないとどこから答えていいのかよくわからないです。

例えば

①最初にユーザー、ディーラー(コンピュータ)が5枚カードを引く。表示はユーザのみ。

をもっと簡単にして、
0~3の数と0~12の乱数をそれぞれセットで2回作る事は出来ますか?
出来るのであれば、例えば
char str[4][32]={"ハート","ダイヤ","クローバ","スペード"};
を使って
「ハートの4を引きました」
「ダイヤの10を引きました」
のような表示をランダムで表示できますか?

大きなプログラムでどこから手を付けていいかわからない時は、わかりそうな部分を分解してできそうなところから手を付けていくといいと思いますよ。

rin

管理人様

#4

投稿記事 by rin » 14年前

ご丁寧にありがとうございます。
文系の大学を卒業しまして、入社してから1ヶ月、情報処理とC言語の研修を受けてきましたが、基本の基本しか教わってなく、
急にこのような課題が出されて困っていました。
みなさんにも時間がかかるプログラムなら、私にはできるはずがありません。
他のサイトでも探しているのですが、条件があわず参考になりません。
アドバイス少しでもいただけてうれしかったです。
ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: 管理人様

#5

投稿記事 by softya(ソフト屋) » 14年前

rin さんが書きました:ご丁寧にありがとうございます。
文系の大学を卒業しまして、入社してから1ヶ月、情報処理とC言語の研修を受けてきましたが、基本の基本しか教わってなく、
急にこのような課題が出されて困っていました。
みなさんにも時間がかかるプログラムなら、私にはできるはずがありません。
他のサイトでも探しているのですが、条件があわず参考になりません。
アドバイス少しでもいただけてうれしかったです。
ありがとうございました。
会社の課題であれば、ヒントぐらいしか出せません。
会社が知りたいのは、rinさんの現在の実力であって学校の宿題のように人の答えを写して実力を偽っても困るのはrinさんですよ。
自分の力で出来る限りのことを行って下さい。それが一番です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: 課題の「ポーカーゲーム」で困っています。

#6

投稿記事 by Dixq (管理人) » 14年前

あら、これ会社の宿題だったのですか。

> アドバイス少しでもいただけてうれしかったです。

課題やらないのですか?
もしやる気があれば、一つずつ解いてみましょう。
まず私の質問に答えて頂ければと思います。
今の状態ではどのように回答すればいいのかわからないので・・。

> みなさんにも時間がかかるプログラムなら、私にはできるはずがありません。

プログラムの組み方が分かっていれば時間はかからないですが、
全くの未経験では辛いかもしれないと言っただけですので、消極的にならないで下さい。
是非やってみましょう。

大学の宿題ならまだしも、会社からの宿題ということは、今後これが出来ないと仕事をしていく中で困るんではないでしょうか?
今私たちが答えを書いてしまったのでは今後rinさんが困るのではないかと思います。

会社からの宿題とはいえ、今日出されて明日提出ではないですよね?
余計なお世話かもしれませんが、納期を守るということは社会人としての最重要項目だと思います。
出来ないならどう事前に対策するか(リスク管理も含めて)、そういうことも会社側は見ているのではないでしょうか。

ちなみに文系出身のプログラマーはすごく沢山います。
「文系の方がプログラマーにふさわしい」なんてこともよく聞きます。

また、恐らくやる気さえあれば、上の手順の10項目を一日1つずつ、質問しながらでもやっていけば10日で完成したと思います。
今現在何か強い先入観で余計に難しく感じてしまっている気がします。
rinさんが現在どこまで理解されているかまだわかりませんが、
一つ一つ噛み砕いて理解すれば必ず解けると思いますよ。
まずはどこまで分かるかを明確にするところから始めてみませんか?

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: 課題の「ポーカーゲーム」で困っています。

#7

投稿記事 by Dixq (管理人) » 14年前

私がお聞きした質問に対する答えとして、突然答えるのが難しければ以下のプログラムを参考にして下さい。

コード:

#include <stdio.h>

int main(){
	int Class=1, Number=10;
	char str[2][32]={"A組","B組"};
	printf("%sの%d番です", str[Class], Number );
	return 0;
}
● 質問 ●
0~3の数と0~12の乱数をそれぞれセットで2回作る事は出来ますか?
出来るのであれば、例えば
char str[4][32]={"ハート","ダイヤ","クローバ","スペード"};
を使って
「ハートの4を引きました」
「ダイヤの10を引きました」
のような表示をランダムで表示できますか?

たいちう
記事: 418
登録日時: 14年前

Re: 課題の「ポーカーゲーム」で困っています。

#8

投稿記事 by たいちう » 14年前

諦めて寝ちゃったのかな?
それともサンタクロースや小人に期待しているのかな?

この先あなたが仕事でプログラムを作るとしたら、
それはこの課題よりもずっと難易度は高いはずです。
あなたと会社のどちらに問題があるのか判りませんが、
課題を出した人と良く話し合う必要があるのではないでしょうか。

明日(もう今日だ)の締め切りに限るならば、
掲示板で答えをもらったり、ごまかしたり、仮病を使ったり、
親戚を殺したりと色々と対処の方法はあるでしょうが、
それは問題の先送りですよね。

そろそろ問題(この課題に限った事ではない)に、
真剣に取り組むべき時期なのかもしれません。
現実的かつ前向きな方針を立てられるといいですね。

# 例えば締め切りが連休明けだとしたら、(かつ、1週間前後の休みがあるとしたら)
# やる気さえあれば基礎から勉強をやり直して課題ができるでしょう。
# 場合によっては泣きついてみてもいいかもしれません。
# やる気があって1週間で課題が出来ないのならば、
# 残念ながら素質が無いと思って別の道を探した方が良い位です。
# 能動的に勉強できない人は、今後ますます仕事が限られますよ。

rin

Re:

#9

投稿記事 by rin » 14年前

予習をしようと考えての書き込みでした。
とくに、丸写ししようとしたのではありません。
不快に思った方がいたなら申し訳ありません。
自分で少しずつ挑戦します。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: 課題の「ポーカーゲーム」で困っています。

#10

投稿記事 by Dixq (管理人) » 14年前

あら、予習だったのですか?

> 明日までの課題なので
> コードがどうなるか教えていただけませんか?

という記載だと、課題が出来ていないからソースコードを教えてほしいと言っているように解釈してしまいます。。

> 不快に思った方がいたなら申し訳ありません。

不快に思っているわけではなく、なんとか1問でも解いてほしいと思って回答したつもりです。
もし分からないことがあればまた気軽に聞いて下さい。

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: 課題の「ポーカーゲーム」で困っています。

#11

投稿記事 by ISLe » 14年前

カードを4セット使うとファイブカードができてしまいますよね。
他にも仕様の曖昧なところがありますが。

フリオ

Re: 課題の「ポーカーゲーム」で困っています。

#12

投稿記事 by フリオ » 14年前

>②カードは各自2回まで引ける。(2回とも最大5枚変更可能)。
なら、カードは1セットで十分だし、
そもそも、
>⑤同じカードは2度と出ない。1ゲームに使用するカードは4セット(13*4=52で1セット。ジョーカーはなし)とする。
同じカードが2度出ないなら、カードを4セット使う意味がないのでは?

閉鎖

“C言語何でも質問掲示板” へ戻る