検索結果 175 件

by sadora3
3年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの分割方法が分かりません
返信数: 4
閲覧数: 559

Re: ファイルの分割方法が分かりません

C言語でのファイルの分割はずっと前ですが、出来ていました。なのでそう意味では初めてではないのですが、C++では初めてです。
ですので、usaoさんが提示してくれたソースコードはすぐ分かりました。
Main.cppで宣言したPLAYERクラスのインスタンスと、ENEMYクラスのインスタンスをBullet.cppで使う方法が分かりません。
Main.cppで宣言したのですから、ENEMY_BULLET::Set(int i)をMain.cppにもっていけば上手くいくと思うのですが、そんなことできませんよね・・・。
by sadora3
3年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの分割方法が分かりません
返信数: 4
閲覧数: 559

ファイルの分割方法が分かりません

今までMain.cppに全部書いてきたコードをファイル分割してみたのですが、Bullet.cppでプレイヤーと敵の座標取得が出来ません。 どうすればいいのでしょうか。 言語:C++ OS:Windows10 コンパイラ:VisualStudio2010 //Main.cpp #include"Main.h" #include"Player.h" #include"Enemy.h" PLAYER Player; ENEMY Enemy[ENEMY_NUM]; int ProcessLoop(){ if(ProcessMessage() != 0){ return 0; } if(ClearDra...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 通信で複数のデータを一気におくりたい
返信数: 2
閲覧数: 395

Re: 通信で複数のデータを一気におくりたい

以下のようなプログラムになりました。 サイズは直接指定してよかったのですね。 ありがとうございました。 #include"DxLib.h" struct PLAYER{ int X; int Y; }; int ProcessLoop(){ if(ProcessMessage() != 0){ return 0; } if(ClearDrawScreen() != 0){ return 0; } return 1; } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){ SetOutApplicationLogValidFlag(FALS...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 通信で複数のデータを一気におくりたい
返信数: 2
閲覧数: 395

通信で複数のデータを一気におくりたい

複数のデータを一気に送信して、それを受信するプログラムを書きたいです。 以下のようなプログラムを組んでみたのですが、turnの値だけ変わりません。 原因はなんでしょうか? それに受信側のプログラムを閉じたときによくわからないエラーが出てきます。 Run-Time-Check Failuer#2 これは一体なんでしょうか? OS:Windows7 ライブラリ:DXLIB 言語:C コンパイラ:VisualStudio2010 ・送信側 #include"DxLib.h" struct PLAYER{ int X; int Y; }; PLAYER P[2]; int ProcessLoop(){...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリで通信で座標のやりとり
返信数: 2
閲覧数: 770

Re: DXライブラリで通信で座標のやりとり

ああ・・・分かりました。
PLAYER P;
NetWorkRecv( NetHandle , &P , DataLength );
こうかくべきだったのですね。
ポインタ変数にはアドレスを格納するべきなのに、実体を格納してしまってたんですかね。

サンプルそのままのはちゃんと動かしてました。

UDPは高速の通信に使うのですね。
リアルタイムで進行するゲームとかですよね。私の対戦ゲームはターン制なので大丈夫そうです。
ネットワークの勉強はちょっとモチベと時間がないので難しそうです・・・。

回答ありがとうございました!
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリで通信で座標のやりとり
返信数: 2
閲覧数: 770

DXライブラリで通信で座標のやりとり

PC同士をLANケーブルでつないで、対戦ゲームを作りたいです。 それでDXライブラリの通信の関数を使ってまず座標のやり取りをしてみようと試みましたが、出来ませんでした。 何が原因なのでしょうか。 ちなみに対戦ゲーム自体は出来ています。 エラー内容は受信側の、 NetWorkRecv( NetHandle , P , DataLength ); ここでアクセス違反らしいです。 それともう一つ質問がありまして、LANでの通信には「UDPを使用して~」の関数は使いませんよね? この関数は世界で通信したいときに使うという認識で正しいでしょうか? OS:Windows7 コンパイラ:VisualStud...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: KeyInputNumber関数の入力の位置を示す棒の点滅がしたい
返信数: 2
閲覧数: 619

Re: KeyInputNumber関数の入力の位置を示す棒の点滅がしたい

おおおおおおお!出来ました! 点滅も、色を変えるのもバッチリです。 以下のようになりました。本当にどうもありがとうございました! DxLibの中身は、いま見に行ってみましたが、ごちゃごちゃしててよく分かりませんでした・・・。 #include"DxLib.h" int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){ int C = GetColor(255,255,255); int TEST; ChangeWindowMode(TRUE); DxLib_Init(); DrawBox(270, 190, 370, 290, GetColor...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: KeyInputNumber関数の入力の位置を示す棒の点滅がしたい
返信数: 2
閲覧数: 619

KeyInputNumber関数の入力の位置を示す棒の点滅がしたい

タイトルにある通り、DXライブラリの関数の一つであるKeyInputNumber関数の入力の位置を示す棒の点滅がしたいのですが、可能でしょうか? 「入力の位置を示す棒」というのは、 | ← こんな感じの奴です。 それと、なぜSetKeyInputStringColor関数はこんなにも引数が多いのでしょうか? 最初みたときはビックリしました。 それに記述も下のプログラムのようにCがめちゃくちゃ並んで、少し違和感が出てしまいます。 KeyInputNumber関数の入力文字の色を黒くしたいだけなのですが、SetKeyInputStringColor関数を使うのしか方法はないのでしょうか・・・。 O...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: マウスの1フレームクリックについて
返信数: 2
閲覧数: 535

Re: マウスの1フレームクリックについて

おお、こんな簡単に出来るとは。 ソフト屋さんにはいつもお世話になっております。大変感謝です。 以下のようになりました。ありがとうございました。 #include"DxLib.h" int MouseInput = 0; void MouseFrameInput(){ if((GetMouseInput() & MOUSE_INPUT_LEFT)){ MouseInput++; }else{ MouseInput = 0; } } int ProcessLoop(){ if(ProcessMessage() != 0){ return 0; } if(ClearDrawScreen() != 0...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: マウスの1フレームクリックについて
返信数: 2
閲覧数: 535

マウスの1フレームクリックについて

DXライブラリのマウスのクリックについての質問なのですが、以下のようなプログラムで1フレームだけクリックを反応させることは出来るのですが、マウスのクリックの処理が必要になるたびに、 if(GetMouseInput() & MOUSE_INPUT_LEFT){ if(!ClickFlag){ ClickFlag = true; //やりたい処理 } }else{ ClickFlag = false; } のように長いコードを書かなくてはいけないのが非常に面倒です。 このクリック処理は関数化などで綺麗にしたいのですが、どうすればいいのでしょうか? 説明が下手ですみません。 つまり上の長いコードを...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリが正常に終了してくれない
返信数: 7
閲覧数: 835

Re: DXライブラリが正常に終了してくれない

おおー。治りました。
みなさん本当にありがとうございました。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリが正常に終了してくれない
返信数: 7
閲覧数: 835

DXライブラリが正常に終了してくれない

コンパイラ:Visual Studio 2010 OS:Win7 32bit 言語:C 以下のコードを実行してからウィンドウのXボタンを押すと、ウィンドウは閉じてくれるのですが、プログラムは実行されたままです。ですが、なぜかプログラム実行後ESCキーを押して終了すると、正常に終了してくれます。 どうすればXボタンでも正常終了してくれるようになるのでしょうか? 以前はちゃんと終了してくれたのに・・・。 DXライブラリは新しいのダウンロードしてきて、新しくプロジェクト作り直してみたのですが、状況は改善されませんでした。 ビルドはDebugもReleaseもやってみましたが、両方Xボタンでの終了では...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: このマクロ関数がなぜ狂うのかわかりません
返信数: 4
閲覧数: 718

Re: このマクロ関数がなぜ狂うのかわかりません

ああ!なるほどです!
普通にaに代入すれば分かったことなのに、無駄な質問をしてしまいました・・・。皆さんの貴重な時間を奪ってしまい申し訳ありません。
回答してくれた皆さんありがとうございました。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: このマクロ関数がなぜ狂うのかわかりません
返信数: 4
閲覧数: 718

このマクロ関数がなぜ狂うのかわかりません

#include<stdio.h> #include<math.h> #define rad(a) (a * 3.141592653589 / 180.0) void main(){ printf("%f %f\n", cos(rad(0)), cos(rad(10))); printf("%f %f\n", cos(rad(10)), cos(rad(20))); printf("%f %f\n\n", cos(rad(20)), cos(rad(30))); for(int i = 0; i < 30; i += 10){ printf("%f %f\n", cos(rad(i)), c...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: fwrite関数について簡単な質問があります
返信数: 5
閲覧数: 1150

Re: fwrite関数について簡単な質問があります

fputs関数を使えばいいのですね。
rewind(stdin);はやらない方がよかったですか。
参考になりました。どうもありがとうございました。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: fwrite関数について簡単な質問があります
返信数: 5
閲覧数: 1150

fwrite関数について簡単な質問があります

このプログラムで名前を入力した後に、fwrite関数でtxtファイルに出力すると、「名前ヘヘヘヘヘヘヘヘヘヘヘ」のように配列の空いてる部分まで出力されてしまいます。配列の\0で出力を止めたいのですが、どうすればいいのでしょう? あと、もう一つ質問がありまして、 scanf("%s", test->Name); の部分で、文字列を入力した際に、エンターを押した後、\0は代入されますよね。 あと\0の名前は文字列終端子であってますか? #include<stdio.h> #include<stdlib.h> int main(){ typedef struct{ char Name[100]; i...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: このプログラムのポインタ演算について質問があります
返信数: 19
閲覧数: 6429

Re: このプログラムのポインタ演算について質問があります

>>YuOさん
貴重な情報をありがとうございます。とても参考になりました。

回答してくれた皆さん本当にありがとうございました。
また何かあれば、そのときもどうぞよろしくお願いします。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: このプログラムのポインタ演算について質問があります
返信数: 19
閲覧数: 6429

Re: このプログラムのポインタ演算について質問があります

>>へにっくすさん へにっくすさんの方法を試したら出来ました。ありがとうございます。 このような感じのプログラムになりました。 rewind(stdin)を突っ込んだら無限ループにならなくなったのですが、正直rewind(stdin)の意味がよく分かりません。 調べたところ、「キーボード バッファをクリアする」と出てきたのですが、どういう意味なのでしょうか? #include<stdio.h> #include<stdlib.h> #include<crtdbg.h> int nNum = 1; struct CharactorData{ int Hp; int Mp; struct Char...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: このプログラムのポインタ演算について質問があります
返信数: 19
閲覧数: 6429

Re: このプログラムのポインタ演算について質問があります

>>たいちうさん 申し訳ありません。出力ウィンドウのデバッグのところにちゃんとメモリリークと出ていたのに見逃していました。 ありがとうございます。 >>みけCATさん scanfでaと入力したところ、確かに無限ループになりました。これどのように対策すればよいのでしょうか? あと、「mallocの戻り値がNULLでないことを確認しないと」とありますが、これはどのようにやればいいのでしょうか? あ、pPlayerがNULLかどうか調べればいいんですね。 現在このようなプログラムになりました。もうメモリリークも起きません。 #include<stdio.h> #include<stdlib.h> #...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: このプログラムのポインタ演算について質問があります
返信数: 19
閲覧数: 6429

Re: このプログラムのポインタ演算について質問があります

>>Pocoさん 私のPCでslnファイルでプロジェクト開いてそこで実行したら正常に動きました。生成された(Debugフォルダの中)実行ファイルで実行したらエラーになりました。どうやら私のプロジェクトでしか正常に動かなかったようです・・・。 おそらく正常に動くようになりました。このプログラムは危険も不具合もありませんよね? #include<stdio.h> #include<stdlib.h> #include<crtdbg.h> int nNum = 1; struct CharactorData{ int Hp; int Mp; struct CharactorData *next; }...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: このプログラムのポインタ演算について質問があります
返信数: 19
閲覧数: 6429

Re: このプログラムのポインタ演算について質問があります

>>h2so5さん
6という数字は、たまたま6にしたら思ったとおりにプログラムが動いてくれたのです。

>>みけCATさん
このプログラムは自分で書きました。危険なコードでしたか・・・。

>>へにっくすさん
やはりこれではダメですか・・・。mallocのメモリ確保は連続しないのですね。しかし、このプログラムは正常に動いてくれたのですが・・・。
ちょっと他のやり方考えてきます。警告ありがとうございました。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: このプログラムのポインタ演算について質問があります
返信数: 19
閲覧数: 6429

このプログラムのポインタ演算について質問があります

このプログラムの31行目と50行目のことなのですが、なぜポインタ変数(ポインタ変数というかポインタ構造体?)に+6すると次のポインタ変数を表し、-6すると前のポインタ変数を表しているのでしょう?なぜ+1じゃだめなのでしょうか? 言語:C OS:Windows7 コンパイラ:VisualStudio2010 #include<stdio.h> #include<stdlib.h> #include<crtdbg.h> int nNum = 1; struct CharactorData{ int Hp; int Mp; struct CharactorData *next; }; void In...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibの3Dのコリジョン判定関数についての質問です
返信数: 16
閲覧数: 4210

Re: DxLibの3Dのコリジョン判定関数についての質問です

>>ISLeさん RollAlongWall.cppの中だけ見ればいいのですね。ありがとうございます。 あと色々おかしなこと言っててすみませんでした。 >>たいちうさん 全部やる必要はないですか。数Bの空間図形ですね。分かりました。 >>usaoさん うーん、すみません。よく理解出来ていなくておかしなこと言っていた気がします。でももう大丈夫です。 単語の意味をしっかり理解しないと会話のドッチボールが成立しなくなるんですよね・・・。 >>ソフト屋さん 助言ありがとうございます。ベクトルには座標があるものだと思ってました・・・。点P1から点P2みたいな。 これからプログラミングと数学の勉強頑張ろう...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibの3Dのコリジョン判定関数についての質問です
返信数: 16
閲覧数: 4210

Re: DxLibの3Dのコリジョン判定関数についての質問です

>>ISLeさん ああ!なるほど!単位ベクトルですか!だから私が書いたプログラムでは全て原点(0,0,0)にあったように見えたのですね。 分かってしまえば簡単ですね。 ところで「以降フレームごとに、RollAlongWall::frameUpdate関数(内部更新用)とRollAlongWall::frameRender関数(描画用)が呼び出されます」とありますが、では canvas->frameRender(); の下にある処理は気にしなくていいということですか?というかframeUpdate関数とframeRender関数の内容だけ理解出来ればいいですか? あとfor(;;)というのはwh...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibの3Dのコリジョン判定関数についての質問です
返信数: 16
閲覧数: 4210

Re: DxLibの3Dのコリジョン判定関数についての質問です

>>ISLeさん まだ法線についてよくわかりません。 というか「垂直に交わるベクトル」というのは分かるのですが、Dim .Normalの値がどうなるのか全く分かりません。 Dim .Normal.yが0なら壁なのですよね。そしてサンプルプログラムでは if( HitDim.Dim[ i ].Normal.y < 0.000001f && HitDim.Dim[ i ].Normal.y > -0.000001f ) とやっていたことから、とんでもない精度の変数だということが分かりました。 今の自分が思っているDim .Normalの値を絵に書いてみましたが、あってますか?坂は45度だとします。...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibの3Dのコリジョン判定関数についての質問です
返信数: 16
閲覧数: 4210

Re: DxLibの3Dのコリジョン判定関数についての質問です

>>ISLe()さん
なるほどです。ところでHitPolyDim.Dim.Normalは何に対して垂直なのでしょうか?また座標はどこになるんでしょうか?私の書いたプログラムだとHitPolyDim.Dim.Normalの座標は全て(x,y,z)=(0,0,0)になってしまうのですが。
あと「法線の垂直成分を摩擦に変換」というのを詳しく教えてくれませんか!とても興味を持ちました!
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibの3Dのコリジョン判定関数についての質問です
返信数: 16
閲覧数: 4210

Re: DxLibの3Dのコリジョン判定関数についての質問です

>>h2so5さん
hideさんの仰るとおりのサンプルプログラムのコメントに、書いてありました。
抜粋すると、
「XZ平面に垂直かどうかはポリゴンの法線のY成分が0に限りなく近いかどうかで判断する」
と書いてありました。

>>hideさん
知りたいのは、法線がどんな線なのかの表示です。
私がどこまでわかっているのかは、3Dは始めたばかりでわからないことだらけです。カメラの旋回やモデルのアニメーションなど簡単なことしか出来ません。
何がしたくてこの状態のプログラムになっているかは、法線の表示をしたかったのですが、なんかおかしな挙動になってしまいました・・・。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibの3Dのコリジョン判定関数についての質問です
返信数: 16
閲覧数: 4210

DxLibの3Dのコリジョン判定関数についての質問です

3Dゲームの当たり判定の話なのですが、「ステージモデルの壁」は「ポリゴンの法線のY成分が0に限りなく近いかどうか」で判断するのですよね。そこで法線ってどんな線なんだろうと思って、以下のようなプログラムを組んでみたのですが、真ん中の球としか法線が引かれないのですが、なぜでしょう?立方体のほうは反応無しです。 説明が下手ですみません。このままだと球としか壁判定が取れないような気がして・・・。 OS:Window7 コンパイラ:Microsoft Visual Studio 2010 ライブラリ:Dxライブラリ 言語:C #include "DxLib.h" #define rad(angle) (...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでvpdファイルは使えますか?
返信数: 6
閲覧数: 1255

Re: DxLibでvpdファイルは使えますか?

出来ました!
詳しく教えて下さってありがとうございました!
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでvpdファイルは使えますか?
返信数: 6
閲覧数: 1255

Re: DxLibでvpdファイルは使えますか?

>>同じポーズのままアニメーションフレームを持てばよいです
これはどういう意味なのでしょうか?
アニメーションフレームとはなんでしょうか?
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでvpdファイルは使えますか?
返信数: 6
閲覧数: 1255

Re: DxLibでvpdファイルは使えますか?

ファイル変換ですか。
URL先のページに目を通してみましたが、よく分かりませんでした。
それと、出来ればMMDでやりたいので、ファイル変換は最終兵器にしたいと思います。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibでvpdファイルは使えますか?
返信数: 6
閲覧数: 1255

DxLibでvpdファイルは使えますか?

vpdファイルとはVocaloidPoseDataでMMDで作成したファイルです。
また、vpdファイルが使えなかったら、キャラクターモデルの立つときのポーズを変えたいのですが、どうすればいいでしょう?
キャラクターモデルの拡張子はpmxです。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: アクションサンプルプログラムのことで2つ質問があるのですが
返信数: 4
閲覧数: 789

Re: アクションサンプルプログラムのことで2つ質問があるのですが

あーなるほど!
勘違いしていました・・・すみません。
回答ありがとうございまいた。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: アクションサンプルプログラムのことで2つ質問があるのですが
返信数: 4
閲覧数: 789

Re: アクションサンプルプログラムのことで2つ質問があるのですが

GetNowCount・・・Windowsが起動してからの時間(単位:ミリ秒) FrameStartTime・・・一番最初に入る値がプログラム開始時のGetNowCountの値で、以降がよく分かりません。 引くことにより求まるのは、以前のFrameStartTimeへの代入から、何ミリ秒経過したかでしょうか。 GetNowCount関数のサンプル見て分かったのですが、「while( GetNowCount() - FrameStartTime < 1000 / 60 ){}」はコメント通り、1/60秒立つまで待つ処理なのですね。つまりゲームスピードを抑えているのでしょうか。でもこの部分をコメン...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: アクションサンプルプログラムのことで2つ質問があるのですが
返信数: 4
閲覧数: 789

アクションサンプルプログラムのことで2つ質問があるのですが

http://homepage2.nifty.com/natupaji/DxLib/program/ActionSample.cpp ここのサンプルプログラムについて質問があります。 一つ目はActMain関数の中の // 1/60秒立つまで待つ while( GetNowCount() - FrameStartTime < 1000 / 60 ){} // 現在のカウント値を保存 FrameStartTime = GetNowCount() ; これについてなのですが、なにをやっているのかサッパリわかりません。 これの意味を教えて欲しいです。 二つ目はCharMove関数の中の // 先ず上...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の問題で分からないのがある
返信数: 3
閲覧数: 1186

Re: C言語の問題で分からないのがある

ああ!なるほど!理解出来ました。
ありがとうございました。
あと、返信遅れて申し訳ありませんでした・・・。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の問題で分からないのがある
返信数: 3
閲覧数: 1186

Re: C言語の問題で分からないのがある

あ、圧縮して添付すればいいのか。
失礼しました・・・。
この問題の【a】、【b】、【c】に正しい解を入れるのですが、それ以前にstructの中に自分の構造体名でポインタで宣言してあるのが全く理解出来ないのですが・・・。
あとこれにもし、テストデータを与えるとして、どんな形で与えればいいのでしょうか・・・。
問題.zip
C言語の問題
(3.18 MiB) ダウンロード数: 61 回
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: C言語の問題で分からないのがある
返信数: 3
閲覧数: 1186

C言語の問題で分からないのがある

C言語の問題で分からない問題があるのですが、画像を張りたいのですが、どうすればいいのでしょうか?
画像はデスクトップにあります。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dでのカメラ操作について
返信数: 5
閲覧数: 1332

Re: 3Dでのカメラ操作について

出来ました!ありがとうございます。 返信に時間がかかって申し訳ありませんでした。色々忙しかったもので・・・。 ソフト屋さんにはいつもお世話になっています。本当に感謝しています。 また何かあれば、よろしくお願いします。 #include "DxLib.h" #define PLAYER_MOVE_SPEED 15.0f //プレイヤーの移動速度 #define RELATIVE_POSITION 800.0f //プレイヤーからのカメラの位置 #define ROTATE_SPEED (2.0f * DX_PI_F / 180.0f) //カメラの旋回速度 typedef struct{ VEC...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 何から勉強すればいいのでしょうか
返信数: 8
閲覧数: 1739

Re: 何から勉強すればいいのでしょうか

大変失礼ではありますが、横からすみません。少し気になったことがあるので質問させてください。
ソフト屋さんは「とんでもなくC++を学習するというのは難易度が高い行為なので、相当プログラミングが好きじゃないと出来ませんよ。たぶん、数あるプログラミング言語の中で最上位に属すると思います。」と仰っていますが、それほど難しいのでしょうか?どこが難しいのでしょうか?

PPJさんは、もうサイトのほうで勉強を始めてしまっていると思いますが、私はニコニコ動画にある、「ミクと学ぶC言語」という動画をおすすめしますよ。C言語になってしまいますが。私は書籍やサイトを眺めるよりこちらの方が楽しく勉強できました。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dでのカメラ操作について
返信数: 5
閲覧数: 1332

Re: 3Dでのカメラ操作について

>>h2so5さん
ありがとうございます。
早速いってきました。

>>ソフト屋さん
「カメラ位置をプレーヤーからの距離とベクトルで管理して、」とありますが、距離とベクトルって同じものかと思っていたのですが、違うのでしょうか?
また、ベクトルはVECTORで定義された変数(変数というか構造体?)ですよね。じゃあ距離は一体なんでしょうか。

あと、「毎回カメラ位置を計算する様にしないと」とありますが、一体計算はどのようにすればいいのでしょうか・・・。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dでのカメラ操作について
返信数: 5
閲覧数: 1332

3Dでのカメラ操作について

プレイヤーが前に進むとカメラも前に進み、カメラは常にプレイヤーを注視する感じのカメラ操作がしたいです。 言語:C ライブラリ:DXライブラリ コンパイラ:Microsoft Visual Studio 2010 OS:Windows7 ←(書くの忘れてました。すみません。追記しました) 現状無理やりそれっぽくしてみたのですが、正しいやり方はどうやるのでしょうか? #include "DxLib.h" #include <math.h> #define CAMERA_SPEED 10.0f VECTOR PlayerPos = VGet(1000.0f, 0.0f, 1000.0f); type...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dの用語が難しすぎて分かりません
返信数: 2
閲覧数: 850

Re: 3Dの用語が難しすぎて分かりません

回答ありがとうございます。
3Dの勉強がんばろうと思います。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dの用語が難しすぎて分かりません
返信数: 2
閲覧数: 850

3Dの用語が難しすぎて分かりません

ここで質問するのは少し場違いだと思いますが、お許し下さい。 今私は、DXライブラリを用いて3Dゲームを作るために、DXライブラリの3D関数を勉強しているところです。 ですが、ライティング計算、ディフューズカラー、Zバッファ、ライトハンドル、フレーム、メッシュ、シェイプなど意味が分からない単語ばかりです。 なので、こういう3Dに関する用語が説明されているサイトなどを教えて欲しいのですが、ありませんか? 「一つ一つ分からない単語を検索しろよ」みたいに突っ込まれそうですが、検索の仕方が下手なのか見つかりません。 例えば、フレームの意味は「動画を構成する静止画1枚分」のことだと思っていたのですが、どう...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dでカメラが向いている方向に移動したい
返信数: 8
閲覧数: 2106

Re: 3Dでカメラが向いている方向に移動したい

>>Yunixさん
なるほどです。
ここまでしてくださって大変感謝しています。
これから行列の勉強頑張ろうと思います。
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dでカメラが向いている方向に移動したい
返信数: 8
閲覧数: 2106

Re: 3Dでカメラが向いている方向に移動したい

皆さん回答ありがとうございます。 忙しくて中々プライベートの時間が作れずに困っています。 Yunixさんのプログラムを動かしたらまさに私がしたかったことが出来ました。 今このソースコードを理解しているところです。 そこで、すこし疑問があるのですが、 float VRotate;//カメラアングルX float HRotate;//カメラアングルY float TRotate;//カメラアングルZ と、あるのですが、VはVertical、HはHorizonですよね? ではTはなんでしょうか? あと、このソースコードを理解するには行列を勉強する必要がありますよね・・・。 行列が分かりやすくまとめら...
by sadora3
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dでカメラが向いている方向に移動したい
返信数: 8
閲覧数: 2106

3Dでカメラが向いている方向に移動したい

カメラの向いている方向に移動したいのですが、出来ません。というか、一応出来るのですがY軸の移動がおかしいです。上を向くほど早くなっていきます。 原因はtanを使っていることにあるのは分かっているのですが、他にやり方がわかりません。 言語:C ライブラリ:DXライブラリ コンパイラ:VisualStudio2010 カメラの旋回はマウス、カメラの移動はキーボードのWASDキーです。 Wキーを押せばカメラの向いている方向に前進。 Sキーを押せばカメラの向いている方向から後進。 Aキーを押せばカメラの向いている方向から左に移動。 Dキーを押せばカメラの向いている方向から右に移動です。 どうすればいい...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: エンターを押すたびに次のメッセージを表示する処理
返信数: 6
閲覧数: 1301

Re: エンターを押すたびに次のメッセージを表示する処理

#include"DxLib.h" int Cnt = 0; int PutFlag = 1; void F(); int ProcessLoop(){ if(ProcessMessage() != 0){ return -1; } if(ClearDrawScreen() != 0){ return -1; } return 0; } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){ ChangeWindowMode(TRUE); SetGraphMode(640, 480, 32); if(DxLib_Init() == -1 |...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: エンターを押すたびに次のメッセージを表示する処理
返信数: 6
閲覧数: 1301

Re: エンターを押すたびに次のメッセージを表示する処理

Tatuさんのヒントを頼りにCntの値が4以降の処理は出来ました! #include"DxLib.h" int Cnt = 0; int PutFlag = 1; void F(); int ProcessLoop(){ if(ProcessMessage() != 0){ return -1; } if(ClearDrawScreen() != 0){ return -1; } return 0; } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){ ChangeWindowMode(TRUE); SetGraphMode(640, ...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: エンターを押すたびに次のメッセージを表示する処理
返信数: 6
閲覧数: 1301

エンターを押すたびに次のメッセージを表示する処理

エンターを押すたびに次のメッセージを表示する処理がどうしても出来ません。 最初は0が表示されていて、エンターが押されたら次はその下に1を表示したいです。 ですが、このソースコードでは0が消えて1が表示されてしまいます。 あと、 0 1 2 3 と表示された後に、エンターを押したら 1 2 3 4 という風に表示もさせたいです。以後エンターが押されたらカウントが増えていきます。 どうすればいいのでしょうか? OS:Windows7 コンパイラ:Microsoft Visual Studio 2010 ライブラリ:DXライブラリ 言語:C Cの知識はポインタ以外ならしっかり勉強してあります。 #i...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: ターン制ストラテジーゲームを作っているのですが・・・
返信数: 13
閲覧数: 2679

Re: ターン制ストラテジーゲームを作っているのですが・・・

>>ソフト屋さん
なるほどです。
コードの量が凄いことになりそうですが、頑張ろうと思います。

私を助けて下さった回答者の皆さん本当にありがとうございました。
問題は無事解決しました。
また何か問題が出てきたときは、また回答よろしくお願いします。
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: ターン制ストラテジーゲームを作っているのですが・・・
返信数: 13
閲覧数: 2679

Re: ターン制ストラテジーゲームを作っているのですが・・・

ソフト屋さんの「4射程の範囲の攻撃範囲から3射程の攻撃範囲を取り除けば」というので出来ました! #include"DxLib.h" #define STAGE_SIZE 13 #define SIZE 32 #define SPACE 0 #define PLAYER 1 #define ATK 2 int MasuX, MasuY; int cnt = 0; int STAGE[STAGE_SIZE + 2][STAGE_SIZE + 2] = { {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}, {-1,0,0,0,0,0,0,0,0,0,0,...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: ターン制ストラテジーゲームを作っているのですが・・・
返信数: 13
閲覧数: 2679

Re: ターン制ストラテジーゲームを作っているのですが・・・

>>Tatuさん まさか移動力が6の場合に不具合が出るとは思ってもいませんでした。ご指摘ありがとうございます。 それと途中に障害物があったら正しく探索できませんでした。 以上の2つの理由から、No.3のコードに戻しました。 移動量を変数に代入する方法は途中に障害物があったら無理そうです・・・。 >>YuOさん 申し訳ありませんが、言っていることがよく分かりません・・・。移動コストとはなんでしょう? ですが、途中に障害物があれば正しく探索出来ないのはなんとか分かりました。 >>「地形の移動コストが常に1でPlayer.Moveが3の時に,「上左下」と動いて左隣のマスに移動は許可するのでしょうか。...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: ターン制ストラテジーゲームを作っているのですが・・・
返信数: 13
閲覧数: 2679

Re: ターン制ストラテジーゲームを作っているのですが・・・

呼び出し回数を減らす処理はこのように対処しました。 #include"DxLib.h" #define STAGE_SIZE 13 #define SIZE 32 #define SPACE 0 #define PLAYER 1 #define MOVE 2 int MasuX, MasuY; int cnt = 0; int STAGE[STAGE_SIZE + 2][STAGE_SIZE + 2] = { {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}, {-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1}, {-1,0,0,0,...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: ターン制ストラテジーゲームを作っているのですが・・・
返信数: 13
閲覧数: 2679

Re: ターン制ストラテジーゲームを作っているのですが・・・

出来ました! #include"DxLib.h" #define STAGE_SIZE 13 #define SIZE 32 #define SPACE 0 #define PLAYER 1 #define MOVE 2 int MasuX, MasuY; int cnt = 0; int STAGE[STAGE_SIZE + 2][STAGE_SIZE + 2] = { {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}, {-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1}, {-1,0,0,0,0,0,0,0,0,0,0,0,0,0...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: ターン制ストラテジーゲームを作っているのですが・・・
返信数: 13
閲覧数: 2679

ターン制ストラテジーゲームを作っているのですが・・・

ターン制ストラテジーゲームを作っているのですが、行き詰まってしまいました。 プレイヤーをクリックしたら移動可能範囲を表示させたいのですが、どうしても出来ません。 どうすれば上手く出来るのでしょうか? OS:Window7 コンパイラ:Microsoft Visual Studio 2010 ライブラリ:Dxライブラリ 言語:C C言語はポインタは出来ませんが、ポインタ以外はしっかり勉強してあります。 #include"DxLib.h" #define STAGE_SIZE 13 #define SIZE 32 #define SPACE 0 #define PLAYER 1 #define M...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画面のチカチカをどうにかしたい
返信数: 5
閲覧数: 1156

Re: 画面のチカチカをどうにかしたい

Win32 APIですか・・・。
私の知識では、まだその領域へ足を運ぶのは困難ですね・・・。
質問に回答していたただき、ありがとうございました。
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画面のチカチカをどうにかしたい
返信数: 5
閲覧数: 1156

Re: 画面のチカチカをどうにかしたい

なるほどです。そんなことが可能なのですか。ということは画面の文字を全部消すという処理は不要になるのですね。
しかし、コンソールAPIで検索したところ、コンソールアプリケーションについてしか出てこなかったのですが、コンソールAPIとは一体なんでしょうか?
ライブラリですか?
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画面のチカチカをどうにかしたい
返信数: 5
閲覧数: 1156

画面のチカチカをどうにかしたい

画面がチカチカするのが嫌で、これをどうにかしたいです。 C言語でコンソールアプリケーションなのですが、出来ますでしょうか? DXライブラリを使えば、SetDrawScreen関数とScreenFlip関数を使ってダブルバッファリングという方法で対処できましたよね。 このダブルバッファリングというのはコンソールアプリケーションでは出来ますでしょうか? OS:Windows7 コンパイラ:Microsoft Visual Studio 2010 #include <stdio.h> #include<stdlib.h> void DrawBox(); void main(){ while(1){ ...
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: オセロのパスの仕方がわかりません
返信数: 5
閲覧数: 1065

Re: オセロのパスの仕方がわかりません

申し訳ありません!自己解決しましたorz
貴重なお時間を奪ってしまってすみませんでした・・・。
軽率な行動をお許しください。

それとこのような丸投げに近い質問は確かによくないですよね。
今後質問をさせていただくときは、ちゃんと噛み砕いて質問します。
by sadora3
5年前
フォーラム: C言語何でも質問掲示板
トピック: オセロのパスの仕方がわかりません
返信数: 5
閲覧数: 1065

オセロのパスの仕方がわかりません

オセロで詰んだときのターンのスキップのさせ方が分かりません。 どうすればいいのでしょうか? OS:Windows7 コンパイラ:Visual Studio 2010 ライブラリ:DXライブラリ 言語:C C++はできないです。Cは一通り勉強済みです。 今ソースコードはこんな感じになっています。 #include"DxLib.h" #define WALL -1 #define BAN 0 #define SIRO 1 #define KURO 2 #define FLASH_SIRO 3 #define FLASH_KURO 4 #define FLASH_MIX 7 int masuX; i...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

そうですね。分かりました。
長い間本当にありがとうございました。
また、なにかあればよろしくお願いします。
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

#include "DxLib.h" #define WALL -1 #define BAN 0 #define SIRO 1 #define KURO 2 void DrawBoard(); void MouseOperation(); int CeackLine(int, int, int, int, int, int); int PutLine(int, int, int, int, int, int); int AllWayPut(); static int Count; static int masuX; static int masuY; static int BanData[ ...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

#include "DxLib.h" #define WALL -1 #define BAN 0 #define SIRO 1 #define KURO 2 void DrawBoard(); void DrawCount(); int CeackLine(int, int, int, int, int, int); int PutLine(int, int, int, int, int, int); int AllWayPut(); static int Count; static int BanData[ 10 ][ 10 ] = { {-1,-1,-1,-1,-1,-1,-1,-1,-...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

なるほど。ありがとうございます。 int AllWayPut(){ int StoneCount = 0; struct AllWay{ int X; int Y; }Cheak[] = { {0, -1}, {1, -1}, {1, 0}, {1, 1 }, {0, 1}, {-1, 1}, {-1, 0}, {-1, - 1}, }; if(BanData[ masuY ][ masuX ] == BAN){ BanData[ masuY ][ masuX ] = SIRO; for(int i = 0; i < 8; i++){ StoneCount += PutLine(masuX +...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

なんどもすみません。まだテストコードというものが理解できません。具体的な例を見せてくれませんか?

>asdさんが書いてくれたコードでメインを含めて動作確認するためのコード
メインとはメインループのことですよね?
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

static int BanData[ BAN_TATE ][ BAN_YOKO ] = {     {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},     {-1,0,1,1,1,1,1,1,1,-1},     {-1,2,0,0,0,0,0,0,2,-1},     {-1,2,0,0,0,0,0,0,2,-1},     {-1,2,0,0,0,0,0,0,2,-1},     {-1,2,0,0,0,0,0,0,2,-1},     {-1,2,0,0,0,0,0,0,2,-1},     {-1,2,0,0,0,0,0,0,2,-1},     {-1,2,1,...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

すみません、インデントはどこがおかしいのでしょうか?
あとテストコードとはなんでしょうか?
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

void AllWayPut(){     int StoneCount = 0;     struct AllWay{         int X;         int Y;     }Cheak[] = {         { 0 , -1 }, { 1 , -1 }, { 1 , 0 }, { 1 , 1 },         { 0 , 1 }, {-1 , 1 }, { -1 , 0 }, { -1 , - 1 },     };     if( BanData[ masuY ][ masuX ] == BAN ){         BanData[ masuY ][ masu...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

void AllWayPut(){ int StoneCount = 0; struct AllWay{ int X; int Y; } Cheak[] = { { 0 , -1 }, { 1 , -1 }, { 1 , 0 }, { 1 , 1 }, { 0 , 1 }, {-1 , 1 }, { -1 , 0 }, { -1 , - 1 }, }; if( BanData[ masuY ][ masuX ] == BAN ){ BanData[ masuY ][ masuX ] = KURO; for(int i = 0; i < 8; i++ ){ StoneCount += PutL...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

理解力が乏しくてすみません。
「この関数を呼び出す形で指定した場所から8方向に置く処理」とありますが、PutLine関数の中は書き換わりますか?また、「置く処理」とは、色を反転させるのですよね?
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

int PutLine( int x , int y , int Way_x , int Way_y , int Color , int count){ if( BanData[ y ][ x ] == BAN ){ return count; } else if( BanData[ y ][ x ] == Color ){ return count; } else if( BanData[ y ][ x ] == WALL ){ return count; } else if( BanData[ y ][ x ] != Color ){ BanData[ y ][ x ] = Color;...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

if( BanData[ y ][ x ] != Color ){
これですと、もしcolorが1なら1以外という意味になってしまいますよね。
1ならば2、2ならば1という風にしなければなりませんよね。
この処理はどうすればいいのでしょうか?

ただの屍のようださんのやり方ですが、私一人だとそれでも書けない気がします・・・。
ソフト屋さんが一から教えて下さっているので、その方法でやろうと思います。
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

うーん・・・。何をすればいいのか分からなくなってきました。
「置く場所の盤の状態を見て置くかどうか決める処理」とはなんでしょうか?
この処理は何が出来るようになるのでしょうか?
asdさんのテスト用の盤面の左上からどちらも裏返せますか?

それと公開デバッグみたいになっていてすみませんでした。
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

int PutLine( int x , int y , int Way_x , int Way_y , int Color , int count){ int BackValue; if( BanData[ y ][ x ] == WALL ){ return count; } else if( BanData[ y ][ x ] != Color ){ BanData[ y ][ x ] =Color; } else if( BanData[ y ][ x ] ==Color ){ return count; } else if( BanData[ y ][ x ] == BAN ){ ...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

分かりました。変数の名前は何か考えて変えておきます。
次は何をすればよろしいのでしょうか?
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

遅れてすみません。 int WhiteLine( int x , int y , int Way_x , int Way_y , int Color , int count){ int a; if( BanData[ y ][ x ] == WALL ){ return count; } BanData[ y ][ x ] = Color; a = WhiteLine( x + Way_x , y + Way_y , Way_x , Way_y , Color , count + 1 ); return a; } これであってますか? デバッガ使うとプログラムの流れが凄くわかりやすくなりますね...
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

うーん・・・コンパイル時、一瞬「値を返さない~」みたいなメッセージが出てきますが、その後ちゃんと実行されてました。戻り値は4行目のreturn count;があると思うのですが・・・。
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

int IshiCount = WhiteLine( 1 , 1 , 1 , 1 , SIRO, 0 ); int WhiteLine( int x , int y , int Way_x , int Way_y , int Color , int count){ if(BanData[ y ][ x ] == WALL ){ return count; } BanData[ y ][ x ] = Color; WhiteLine( x + Way_x , y + Way_y , Way_x , Way_y , Color , count + 1 ); } こうでしょうか?
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

コード:

WhiteLine( 1 , 1 , 1 , 1 , SIRO );

void WhiteLine( int x , int y , int Way_x , int Way_y , int Color ){
    if(BanData[ y ][ x ] == WALL ){ return; }
    BanData[ y ][ x ] = Color;
    WhiteLine( x + Way_x , y + Way_y , Way_x , Way_y , Color );
}
出来ました。
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

コード:

WhiteLine( 1 , 1 , SIRO );

void WhiteLine( int x , int y , int C ){
    if(BanData[ y ][ x ] == WALL ){ return; }
    BanData[ y ][ x ] = C;
    WhiteLine( y+1 , x+1 , C );
}
こうでしょうか?
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

コード:

WhiteLine( 1 , 1 , 1 );

void WhiteLine( int y , int x , int S ){
	if(BanData[ y ][ x ] == WALL ){ return; }
	BanData[ y ][ x ] = S;
	WhiteLine( y+1 , x+1 , 1 );
}
これであってますか?

追記;すみません。デバックせずに張ってました。修正しました。
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

出来ました。WALLは#defineで-1に置換しています

コード:

WhiteLine( 1 , 1 );

void WhiteLine( int y , int x ){
             if( BanData[ y ][ x ] == WALL ){ return; }
             BanData[ y ][ x ] = SIRO;
             WhiteLine( y+1 , x+1 );
}
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

コード:

WhiteLine(1);

void WhiteLine( int a ){
	if( a==9 ){ return; }
	BanData[ a ][ a ] = SIRO;
	WhiteLine( a+1 );
}
そういうことでしたかw
誤解してすみません。こうでしょうか?
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

tatuさん。たいちうさん。ありがとうございます。
tatuさんのヒントを頼りに、たいちうさんのは見ずに頑張ってみようかと思います。
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

なるほど。勉強になりました。

コード:

#include <stdio.h>
int F(int);
int main(){
        int a;
        a = F(10);
        printf("%d\n" , a);
        return 0;
}

int F(int N){
        int a;
        if( N == 1 ){ a = 1; }
        else a = N * F(N-1);
        return a;
}
10階乗はこうですね。
次はどうすればいいのでしょうか?
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

仕組み・・・は多分わからないと思います。
スタックという単語を見た覚えがあります。
10の階乗をやってみようと思ったのですが、何をどうすればいいのかさっぱり分かりませんでした。
by sadora3
6年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

struct Masu_Data{ int y; int x; }; struct Masu_Data masu = { masuY , masuX }; struct Masu_Data masu_one; struct Masu_Data masu_two; int Cheak_Stone(){ masu_one = Way_Cheak( masu , WAY ); if( BanData[ masu_one.y ][ masu_one.x ] == KURO ){ masu_two = Way_Cheak( masu_one , WAY ); if( BanData[ masu_two...
by sadora3
7年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

遅れてしまって申し訳ありません。 構造体宣言と構造体変数の定義を分けるというのはこうでしょうか? struct Masu_Data{ int y; int x; }; struct Masu_Data masu = { masuY , masuX }; 関数の引数と戻り値を構造体にするのはこれであっていますか? int Way_Cheak( struct Masu_Data W , int way ){ switch( way ){ case 1: W.y-1; break; case 2: W.y-1; W.x+1; break; case 3: W.x+1; break; case 4: ...
by sadora3
7年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

方向の座標計算をする関数はこうでしょうか? int Way_Cheak( int y , int x , int way ){ switch( way ){ case 1: y-1; break; case 2: y-1; x+1; break; case 3: x+1; break; case 4: y+1; x+1; break; case 5: y-1; break; case 6: y-1; x-1; break; case 7: x-1; break; case 8: y+1; x-1; break; } return 0; } また、構造体の方はこうでしょうか? struct Ma...
by sadora3
7年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

引数を再び勉強してきました。しかし、方向の座標計算をする関数(置いた石のマスの座標,調べる方向)の作り方がやはりわかりません。
int Way_Cheak( int masu_Y , int masu_X , int );
いまこんな感じです。
by sadora3
7年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

1つ離れたマスの座標 = 方向の座標計算をする関数(置いた石のマスの座標,調べる方向)
この「方向の座標計算をする関数」という関数の作り方がわかりません。
それと引数はよくわからなくて逃げてきました・・・。
引数はやはり大切なのでしょうか?
by sadora3
7年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

ある関数の中でその関数を使うのですね。
一様読んできました。
by sadora3
7年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

申し訳ありませんでした・・・。 こうでしょうか? 1つ離れたマスの座標 = 方向の座標計算をする関数(置いた石のマスの座標,調べる方向) if( マスの情報[ 1つ離れたマスの座標 ] == 白い石 ){ (a)なにもできない } else if( マスの情報[ 1つ離れたマスの座標 ] == 黒い石 ){ 2つ離れたマスの座標 = 方向の座標計算をする関数(1つ離れたマスの座標 , 調べる方向 ) if( マスの情報[ 2つ離れたマスの座標 ] == 白い石 ){ (b)白がおける。挟んだ黒をひっくり返す } else if( マスの情報[ 2つ離れたマスの座標 ] == 黒い石 ){ (c...
by sadora3
7年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

投稿の間がこんなに開いてすみません。
修学旅行やテストで忙しかったです。

>>今までの書き方だ分かりづらいので、擬似コードの書き方としてこうしてみてください。
この類似コードの書き方がよくわからないのですが、2つ離れたマスの条件とはどういうことでしょうか?
by sadora3
7年前
フォーラム: C言語何でも質問掲示板
トピック: オセロで、石を反転する範囲の捜索の仕方がわかりません
返信数: 125
閲覧数: 8972

Re: オセロで、石を反転する範囲の捜索の仕方がわかりません

やっとできました・・・。 プログラミングの時間を確保できなくて時間がかかりすぎました。すみません。 int Draw_mouse_input(){ int mouseX=0; int mouseY=0; GetMousePoint(&mouseX,&mouseY); masuX=mouseX/BAN_SIZE; masuY=mouseY/BAN_SIZE; if( マウスの左クリックが押されたら ){ WhiteStoneFunction(); } if( マウスの右クリックが押されたら ){ BlackStoneFunction(); } return 0; } void White_Sto...

詳細検索ページへ移動する