ページ 11

製作

Posted: 2012年1月05日(木) 16:05
by ヒヤヤッコ
トランプのポーカを作りたいのですが何をすればいいのかと。
一人ポーカで
・山札を作成
・山札の上から5枚カード引く
・引いたカードを並べる
・5枚の中で、捨て札を選んで捨て、その枚数分山札から引く
・カードをに並べる
・役を調べる

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


C言語
DXライブラリ

Re: 製作

Posted: 2012年1月05日(木) 16:11
by softya(ソフト屋)
難しいと感じた場合は、部分的に作成したものを付け足しすことを繰り返して全体を構築する事をして行きましょう。
とりあえずは、カードを5枚表示するから始めてみてはどうでしょうか?

Re: 製作

Posted: 2012年1月05日(木) 17:29
by ヒヤヤッコ
そうですね、一つずつ組み立たらいいですかね。
自分で頑張らないといけないのですが、引き続きアドバイスお願いします。


手札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にまとめました。

Re: 製作

Posted: 2012年1月05日(木) 17:37
by softya(ソフト屋)
プログラムは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);
じゃないでしょうか?

Re: 製作

Posted: 2012年1月07日(土) 18:42
by ヒヤヤッコ

コード:

#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;
}
 


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


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

Re: 製作

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

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

Re: 製作

Posted: 2012年1月07日(土) 19:14
by softya(ソフト屋)
じゃあ、nonさんの方を先にやりましょうか。
なお、インデント(字下げ)がされていないので次回はお願いします。

「mixcpp/投稿前チェックリスト - PukiWiki」 (beatleさん作成)
http://uchan.net/w/index.php?mixcpp%2F% ... 5%B9%A5%C8

Re: 製作

Posted: 2012年1月08日(日) 15:16
by softya(ソフト屋)
同じ方でしょうか?
「miruhuxiさんの質問一覧 - Yahoo!知恵袋」
http://my.chiebukuro.yahoo.co.jp/my/mys ... r=miruhuxi
マルチポストになりますのでフォーラムルールを守っていただけると助かるのですが。

Re: 製作

Posted: 2012年1月08日(日) 23:00
by ヒヤヤッコ
確かに馬鹿なことをしました。
軽率です。
どうしてもわかんなくて少し焦って後先考えずに行動しました。
言われて冷静になりました。
すみませんが、そのURL削除してもらえますか。

Re: 製作

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

nonさんの提案で分からないとがあれば聞いて下さい。

Re: 製作

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

コード:

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

Re: 製作

Posted: 2012年1月09日(月) 18:53
by softya(ソフト屋)
課題の場合は時間制限があったりしますからね。じっくりサポートできないと言うか。

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

コード:

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

それと配列宣言の[]の中は個数を書きます。
int img[13*4];
が正しいです。
添字は0から51までですけどね。

Re: 製作

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

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

Re: 製作

Posted: 2012年1月30日(月) 16:26
by ヒヤヤッコ
今日、課題が出来て提出しましたのでありがとうございました。

Re: 製作

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

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

同じ事で困っている人の為に過去ログに有用な情報を残すようお願いします。