製作

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

製作

#1

投稿記事 by ヒヤヤッコ » 14年前

トランプのポーカを作りたいのですが何をすればいいのかと。
一人ポーカで
・山札を作成
・山札の上から5枚カード引く
・引いたカードを並べる
・5枚の中で、捨て札を選んで捨て、その枚数分山札から引く
・カードをに並べる
・役を調べる

一連の流れはこんな感じで書いたのですがどう取り掛かっていいのかわからないので、
アドバイスお願いします。


C言語
DXライブラリ

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

Re: 製作

#2

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

難しいと感じた場合は、部分的に作成したものを付け足しすことを繰り返して全体を構築する事をして行きましょう。
とりあえずは、カードを5枚表示するから始めてみてはどうでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒヤヤッコ

Re: 製作

#3

投稿記事 by ヒヤヤッコ » 14年前

そうですね、一つずつ組み立たらいいですかね。
自分で頑張らないといけないのですが、引き続きアドバイスお願いします。


手札5枚の座標指定と表示を書いたのですが


int cardImg[52]; //画像枚数

int aX=120,aY=300; //手札の座標指定
int bX=190,bY=300;
int cX=260,cY=300;
int dX=330,dY=300;
int eX=400,eY=300;


LoadDivGraph("Img/zen.bmp",52,4,19,60,80,cardImg);

DrawGraph(aX,aY,cardImg[GetTickCount()/100%6],true);
DrawGraph(bX,bY,cardImg[GetTickCount()/100%6],true);
DrawGraph(cX,cY,cardImg[GetTickCount()/100%6],true);
DrawGraph(dX,dY,cardImg[GetTickCount()/100%6],true);
DrawGraph(eX,eY,cardImg[GetTickCount()/100%6],true);


表示からどうしたらいいのでしょうか。画像は横に4、縦に13で合計52にまとめました。

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

Re: 製作

#4

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

プログラムはcodeタグで囲って下さいね。
codeタグ他利用規約 → http://dixq.net/board/board.html
投稿前にプレビューでの確認もお願いします。
あとプログラム全体を掲載してくださいね。


aX、aY、GetTickCount()で表示するのではなく、後々のことを考えて座標と表示するす番号を構造体にまとめて配列で処理しましょう。
出来ればですが、表示の別関数化と表示するトランプをランダムに決める処理も作ってみてください。

[補足]
LoadDivGraph("Img/zen.bmp",52,4,19,60,80,cardImg);
 ↓
LoadDivGraph("Img/zen.bmp",52,4,13,60,80,cardImg);
じゃないでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒヤヤッコ

Re: 製作

#5

投稿記事 by ヒヤヤッコ » 14年前

コード:

#include<DxLib.h>
#include<stdlib.h>


int main(void){
	
	int cardImg[52];
	int aX=120,aY=300;
	int bX=190,bY=300;
	int cX=260,cY=300;
	int dX=330,dY=300;
	int eX=400,eY=300;

ChangeWindowMode(TRUE); // ウインドウモードで起動
SetDrawScreen(DX_SCREEN_BACK); // 表示画面と描画画面を分ける
DxLib_Init(); // DxLibの初期化本体
	
	
LoadDivGraph("Img/zen.bmp",52,4,13,60,80,cardImg);
while(ProcessMessage() != -1 && !CheckHitKey(KEY_INPUT_ESCAPE)){
ClearDrawScreen();
	
	
	
	DrawGraph(aX,aY,cardImg[GetTickCount()/100%52],true);	
	DrawGraph(bX,bY,cardImg[GetTickCount()/100%52],true);
	DrawGraph(cX,cY,cardImg[GetTickCount()/100%52],true);
	DrawGraph(dX,dY,cardImg[GetTickCount()/100%52],true);
	DrawGraph(eX,eY,cardImg[GetTickCount()/100%52],true);

	ScreenFlip();
}
	DxLib_End();
return 0;
}
 


前の記事でちゃんとタグで囲ってなかったので一様全体を書きました。


考えたのですが構造体を使って画像の指定と表示がどうすれば出来るかわかりませんでした。
参考程度にでもいいので、どう活用して表示まで持っていけるかお願いします。

non
記事: 1097
登録日時: 15年前

Re: 製作

#6

投稿記事 by non » 14年前

画像での表示は後回しにして、ただ単にトランプのマークと数で、52枚のカードから乱数で5枚を
表示するプログラムを作ってみてください。
このとき、トランプの構造体をどう持たせれば便利なのかも考えてください。

なお、これは学校の課題ではないですよね。
non

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

Re: 製作

#7

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

じゃあ、nonさんの方を先にやりましょうか。
なお、インデント(字下げ)がされていないので次回はお願いします。

「mixcpp/投稿前チェックリスト - PukiWiki」 (beatleさん作成)
http://uchan.net/w/index.php?mixcpp%2F% ... 5%B9%A5%C8
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

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

Re: 製作

#8

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

同じ方でしょうか?
「miruhuxiさんの質問一覧 - Yahoo!知恵袋」
http://my.chiebukuro.yahoo.co.jp/my/mys ... r=miruhuxi
マルチポストになりますのでフォーラムルールを守っていただけると助かるのですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒヤヤッコ

Re: 製作

#9

投稿記事 by ヒヤヤッコ » 14年前

確かに馬鹿なことをしました。
軽率です。
どうしてもわかんなくて少し焦って後先考えずに行動しました。
言われて冷静になりました。
すみませんが、そのURL削除してもらえますか。

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

Re: 製作

#10

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

申し訳ないですが基本ルールとして削除しないことになっています。
それに相互リンクのルールさえ守ってもらえば、同じ質問は可能ですよ。
※ 相互リンク:質問時に別の掲示板で質問していること明示的に書くこと。知恵袋の人が何でも質問掲示板で質問していることが分かり、逆に何でも質問掲示板で知恵袋でも質問していることが明確に成っていること。これを守って頂ければOKです。

nonさんの提案で分からないとがあれば聞いて下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヒヤヤッコ

Re: 製作

#11

投稿記事 by ヒヤヤッコ » 14年前

softya(ソフト屋) さんが書きました:申し訳ないですが基本ルールとして削除しないことになっています。
自分の自業自得なので仕方がないです。すみません。
non さんが書きました:ただ単にトランプのマークと数で、52枚のカードから乱数で5枚を
表示するプログラムを作ってみてください
nonさんの書かれたのはC言語からやると言う意味なのでしょうか?
softya(ソフト屋) さんが書きました:aX、aY、GetTickCount()で表示するのではなく、後々のことを考えて座標と表示するす番号を構造体にまとめて配列で処理しましょう。
こんな感じで構造体を書きました。

コード:

typedef struct{
		int x;	//表示座標
		int y;
		int img[51]; //画像
	}CARD;
non さんが書きました:これは学校の課題ではないですよね
課題ではあります。質問の内容が足りなかったのでしょうか?それとも質問してはダメでしたでしょうか?
すみません。

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

Re: 製作

#12

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

課題の場合は時間制限があったりしますからね。じっくりサポートできないと言うか。

non さんのはC言語のコンソールですね。
グラフィックの前に基本的なことからやりましょうって事です。

コード:

typedef struct{
        int x;  //表示座標
        int y;
        int img[51]; //画像
    }CARD;
この構造体だと1つの座標に51枚のカードがあることになります。
構造体自体を配列にするのと、imgは別の配列にして構造体はカードの番号を保持するだけで良いと思います。

それと配列宣言の[]の中は個数を書きます。
int img[13*4];
が正しいです。
添字は0から51までですけどね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

non
記事: 1097
登録日時: 15年前

Re: 製作

#13

投稿記事 by non » 14年前

ヒヤヤッコ さんが書きました:
non さんが書きました:これは学校の課題ではないですよね
課題ではあります。質問の内容が足りなかったのでしょうか?それとも質問してはダメでしたでしょうか?
学校の課題でもかまいません。興味があっただけです。
DXLibを使い、画像まで必要なアプリを課題にだすということは、大学などの教養としてのプログラム授業では
ないだろうと思ったからです。情報系の専門学校なのでしょうか?
プログラムが将来のあなたの仕事に関わるものならば、しっかり学びなおして欲しいです。

課題なら、期限と課題の全容が知りたいですね。それに、どこまで習っており、どのような制限があるかです。
ヒヤヤッコ さんが書きました: nonさんの書かれたのはC言語からやると言う意味なのでしょうか?
C言語からって?この課題はC言語で作るのでしょ?
私が提案したのは、画像を使わずに課題の骨組みを、作ってみてくださいということです。
それを見れば、あなたの実力が見えてきますので、どのレベルでアドバイスをすればよいかわかります。
non

ヒヤヤッコ

Re: 製作

#14

投稿記事 by ヒヤヤッコ » 14年前

今日、課題が出来て提出しましたのでありがとうございました。

アバター
asd
記事: 319
登録日時: 15年前

Re: 製作

#15

投稿記事 by asd » 14年前

ヒヤヤッコ さんが書きました:今日、課題が出来て提出しましたのでありがとうございました。
最終的にどのような形で課題が出来上がったのかを明記してもバチは当たらないと思いますが。

フォーラムルールより引用
また、解決した時は、「解決しました」とだけ言って去らず、ソースコードや解決した方法を明記して下さい。

同じ事で困っている人の為に過去ログに有用な情報を残すようお願いします。
Advanced Supporting Developer
無理やりこじつけ(ぉ

閉鎖

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