検索結果 1560 件

by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 6607

Re: 飛行機を目的地の方向に向けたい

>問題を単純化したほうが、後々応用が効くかなと思い、 >目前の問題だけまず解決しようかなと・・・。 >でもそのせいで今、後出しはやめろと非難されてるんですよね、申し訳ありません。 別に単純化した問題を扱うのは悪くないですし, 不要な箇所までコードを出せとも言っていません. 単に, 「機種を目的地の方向に向ける」ためにどういう手順で処理を行おうとしているのですか?と質問しているだけです. その肝心のAIの中身が決まっていないのであれば, 「思うように動く」はずもないのですし,誰も何も答えられないと思うのですが. 「後出し云々」については, そのような質問状況に対して回答者が回答者なりの方法を答え...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機を目的地の方向に向けたい
返信数: 31
閲覧数: 6607

Re: 飛行機を目的地の方向に向けたい

なんか毎回「思うように動かない」みたいな曖昧な質問である印象です. (本当にやろうとしていること が後出しでは回りくどいだけだと思うのですが.) ●そもそも目的を達成した状態はどういう状態ですか? (例えば目標が地表面にあったら,そのまま飛んだらそこに激突するコースに乗せればよい?  そのときの機体ロール姿勢は問わない?) ●で,それに関してどういう制御を行おうとしているのですか? (例えば,  (1)とりあえず方角だけを揃えることを優先して,  (2)その後で仰俯角を揃える  という2段階の処理であって,(1)とは具体的にはこうで,(2)はこうだ,みたいな話) ●まったく方向転換しなくなる,...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ランダムダンジョン自動生成に関して
返信数: 6
閲覧数: 3124

Re: ランダムダンジョン自動生成に関して

>//このifは意味もわからないまま対症療法的に追加した要素 ご自身で何やってるかわからないコードを書かれているのであれば, そもそもまともに動く確率はかなり低いような気がしますが. そんな投げ出した感がある状況で人にコードを読めというのは… (まぁ,かなーりやさしい人なら読んでくれるかもしれませんが,とりあえず私はパスですね.) まず,自身で把握できないコードを継ぎ足すのではなく 問題が発生する状況を作り出して,ちゃんとデバッグすべきだと思います. 常にうまくいかないのか,乱数系列次第なのか知りませんが,とりあえず srandの引数に 定数を設定 して(うまくいかない状況で)処理を追えばよい...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 2457

Re: C++での分割コンパイル

オフトピック
おおう… なんで過去形… 完全に頭がどうかしてた模様.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++での分割コンパイル
返信数: 5
閲覧数: 2457

Re: C++での分割コンパイル

なんか話があまりタイトルと関係ないような気もしますが… structがclassになっただけで書けない という状況から protected privateのようなアクセス制限された変数を直接参照しようとされているのかな?と推測しますが, 仮にそれだけの話であれば, SetterとかGetterとかいう単語について調べればよいでしょう. (クラスのメンバ変数にアクセスする手段を設ける) あと,目的の処理をどこに書くべきか?という話も別途あるような気がします. たとえば,猫クラス と 食べ物クラス という2つのクラスがあったとして, その2つのクラスの情報を必要とする操作(関数)である「猫が食べ物...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 4337

Re: 分割コンパイルを詳しく教えてください!!

あ,現在,ここ↓の Player.cpp の書き方を目指しているということなのかな? d.3章 ゲームの設計と分割コンパイル(1) http://dixq.net/g/d_03.html だとしたらちょっと余計なことを言ったかもしれませんね. 現在の方針とちょっと違うというか. リンク先では以下のように書かれていますね. 私が言っている内容は(下記引用の)前半の段落で言っていることですね. で,リンク先ページで実際にやっている話は後半の段落の内容なのですね. 大丈夫です。関数さえ呼べればそれでいいのです。 必要な情報は関数の引数で与えてやり、取得したい時は関数の返り値で得ればいいのです。 (ポ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 4337

Re: 分割コンパイルを詳しく教えてください!!

現在どういう手順で進めている流れなのかちょっと把握できてないのですが, 最初はWinMain()内にあった変数群がいつのまにか外部変数になってしまっていますね. 「俺は全て外部変数でいくぜ!!」とかいう話でないのであれば, 「関数化」というのは処理コードを物理的(?)に関数にわければよいという話ではなく, 呼び出し側と必要なデータのやり取りできるように書かないとダメです. (そのために 変数a,bの値が変遷していく小さいコード例を示したのですが) こういう形にするのは難しいですか? int WINAPI WinMain( ... ) { int PlayerX=0, PlayerY=0; in...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて
返信数: 10
閲覧数: 7903

Re: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて

うーん,反応が無いので迷うけど,一応答えのようなものを書いておきますか. (1)IplImage構造体の内容くらい確認しよう → OpenCVのリファレンスくらい見ようね. (2)使っているラベリングクラスの仕様くらい確認しよう → 画像データ以外にも,ひょっとしてwidthとheightが逆になったりしてませんか?それ. この2行で十分な気もしますが,(1)について詳述しておきます. ・画素データの領域はIplImageのメンバである char *imageData の指す先にあります.  だから IplImage型オブジェクトへのアドレスをそのまま引数として指定している時点で間違っています...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

話の流れと関係ない感じで申し訳ないですが,No42のシンプルなことをちょっとやってました. {2D,ターゲットは等速直線運動}という状態で. 結果: まぁとりあえず当たりますが動きが楽しいかと問われると微妙.速度一定で進むので慣性っぽさがない予感.  ↓ 「一定距離進む」のところを「その方向に加速する」に変更してみると, ”ターゲットの周りを衛星状態”に陥ること多数 →毎フレーム ミサイル速度を減衰させる処理を入れることでかなり軽減できる模様. 需要ないでしょうけど一応コード貼っておきます.(ログ的な意味で) #描画と表示などにOpenCVを使っていますが,動かしてみたい場合,書き換えは容易か...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

例えば,シンプルに毎フレーム (1)ミサイル現在位置 (2)ターゲット現在位置 (3)ターゲットのいくらか未来の予測位置 の3制御点でBezier曲線を求めて,ミサイルはそのフレームでは現在位置から曲線にそって一定距離分すすむとか (曲線上の距離がめんどくさい場合(1)の点での傾き方向に進む,とかで近似してもいいか) なんとなく 常に「(2)と(3)の間の方向に向かって進む」ということになりそうだけど (2)と(3)の間の重みがちゃんと毎フレーム変わることになるだろうか?(数学疎いのでよくわからない) 固定だったら曲線とか意味ない. (2)や(3)の座標の更新方法を工夫すれば慣性っぽさが調整で...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

なんかもう 加速度がどうの とか忘れて,毎フレーム
適当なパラメトリック曲線に沿って一定距離だけ進ませればいいんじゃね?とかいう邪悪な(?)考えが…
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 4337

Re: 分割コンパイルを詳しく教えてください!!

>pは200という値をbに参照しているということですか? うーん,何というか,主語と述語がどうなっているのかよくわからない…というか. (0)int b = 100; → 最初,main()のローカル変数bの値は100です (1)ChangeValueTo200( &b ); → 変数bのアドレス値 が引数として渡される (2)void ChangeValueTo200( int *p ) に処理が移るとき:  関数は値渡しなので,関数ChangeValueTo200()内のローカル変数であるpの値が(1)で渡された値で初期化される.  (すなわち,ポインタ型変数 p の値は main()側の...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

>3次元の物体そのものの演出であって、別に点の軌跡からわかることではないですよね。(私のイメージはリアが滑っているような感じなのですが) そういうこと(ドリフト感はミサイルの描画の問題,みたいな) をNo3で既に述べたつもりなのですが,なんか違うみたいですよ(?) というかNo3程度ので不十分なのかどうかが? 加速方向を >ミサイル現在位置→ターゲットの数フレーム後予測位置 方向 に取れば比例なんちゃらいうのに原理的に近い形になると思うし, >各フレームで任意の方向に加速できる これがいやならそのフレームで加速できる方向に制限を設ければいいだろうし 命中率とか命中までの軌跡の長さに不満があるな...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

>うーん、球の交点というのがいまいちピンときません。 そうですか…私にはこれ以上簡潔に説明できませんし 他の方もおっしゃられているように非常に不自然な結果になると思われ,そもそもそのまま実装することもないでしょうから これ以上この計算内容について述べるのは無駄だろうなと思います. >それに、ミサイルの移動ベクトルとターゲットの方向から推力ベクトルの回転の算出もよくわからず・・・ 少なくとも私が書いた説明の計算内容は,現在のベクトルをいくらか回転させてどうの というような話ではありませんよ. 各時刻のミサイルの向きMDirを方程式の解として求める,というだけの話です. 言い換えれば 前時刻のミサ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 4337

Re: 分割コンパイルを詳しく教えてください!!

>ですよね? はい.(pとbの文章がすこし怪しいですが)結果としては合っています. そこまでわかっているのであれば, あなたの各関数でも同じようにデータを引き渡したり値をreturnしたりするようにすれば良いわけです. (個々の変数をどこで定義するかは別の話ですが,例えばとりあえずWinMainにある変数を使うとして  引数や戻り値で各関数とやりとりすればよい.) この状態で無事に動作したならば,あとは分割コンパイルは悩むことはありませんよね. ある関数の実装を別のソースファイルに移動したとしても, それを利用するWinMain側からその関数の宣言が(例えば宣言が書かれたヘッダincludeし...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 4337

Re: 分割コンパイルを詳しく教えてください!!

void PrintValue( int v ) { printf( "%d\n", v ); } void ChangeValueTo200( int *p ) { if( p ){ *p = 200; } } int Add( int a, int b ) { return a + b; } int main() { int a = 800; int b = 100; PrintValue( a ); ChangeValueTo200( &b ); a = Add( a, b ); PrintValue( a ); PrintValue( b ); return 0; } うーん,このく...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて
返信数: 10
閲覧数: 7903

Re: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて

>仕様を見直してみましたがline27のキャストは問題ないようです ざっと検索してみましたが,ここ↓のやつでしょうか? だとすれば,どう見ても違うとしか思えません. http://oshiro.bpe.es.osaka-u.ac.jp/people/staff/imura/products/labeling もしそのキャストが本当に合っているのだとすれば,そのクラスは  少なくともIplImage構造体と ヘッダ部のサイズや 画素情報のあるメモリ位置へのアクセス手段といった点で 互換性のあるデータ を要求していることになります. IplImageの画素情報がどこにどうやって存在しているのかを理...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

それに、usaoさんの >「ターゲット予測位置方向に常にミサイルの速度ベクトル(Mlne)が向いている状況をキープする」 という状況を加えたいです。 おっと,なんかこの文面だけを見ると まるで私がそういうことを提唱しているかのように見えちゃいそうなので 念のため書いておきますが, 私は単に「本当にそれがやりたいのならば」「その計算内容はNo13およびNo17のようなことになりそうですよ」 と言っているだけです.(内容が合ってるか間違っているかは別として) #さらに,状況次第では不自然な動きになるのではないかと想像しています.なんとなくですが. で,仮に計算方法の内容が合っていれば 3次元なら...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて
返信数: 10
閲覧数: 7903

Re: 井村先生のラベリングクラスを使用したopencvの画像処理プログラムについて

あなたが使われている
>井村先生のラベリングクラス
とかいうものの仕様を説明しないと答えようがない気がしますが.
(ラベリング処理の仕様というか対象は何なのか.例えば
 位置的に連結していて且つ同値な画素で領域を作るのか
 それとも 非0の画素であれば値が異なっていても連結位置であれば同領域とするのか,みたいな)

あと,それ以前に,line27のキャストが非常に気になるのですが,これがバグだというオチではありませんよね?
(LabelingBSクラスの仕様次第ですからあってるのかどうかわかりませんけど,
 IplImage*をuchar*にキャストして渡すのが自然な行為とは到底思えない)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルを詳しく教えてください!!
返信数: 32
閲覧数: 4337

Re: 分割コンパイルを詳しく教えてください!!

分割コンパイル以前に,まず,
各々の処理(自機を動かすとか敵が動くとか)を関数化するところから開始しましょう.
仮に「そんなことはできる,やりたいのは分割コンパイルだ」というのであれば
とりあえず各処理を関数化した状態のコードを作って,それを提示された方が話が早いはずです.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

疑問が少しあります。 >(2)の矢印の先端を中心とした半径MAccの円を書いて,この円と(1)の直線との交点Pを求め, >MDir = UnitVectorOf( P - (2)の矢印の先端 ) 矢印の先端を中心とした円と直線の交点とはどのような意味があるのでしょうか? 説明を読んだ限りだと, 「ターゲット予測位置方向に常にミサイルの速度ベクトル(Mlne)が向いている状況をキープする」 ことが,やりたいことなのだと思いました. 仮に現フレームでミサイルが「加速しない」とすれば,ミサイルの位置は前時刻の速度(Mlne_prev)分だけ進みますよね. その位置が(2)の矢印の先端です. その移...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

>MIneを単位化したベクトル == (EFPos - MPos)を単位化したベクトル >を満たすMDirの値が知りたい、 うーん,果たしてその説明どおりのものを求めたとして,自然に見えるのかどうか… ちょっと図の貼り方がわからないので想像していただきたいのですが… とりあえず想像しやすいように2次元だとして (1)点MPosから,目的の方向(EFPos-MPos)を示す直線を引っ張る. (2)点MPosから,前フレームでのミサイル速度ベクトルをあらわす矢印を引っ張る(向きが速度方向で長さが速度の大きさの線分) やろうとしていることは,Mlneを Mlne = Mlne_prev + MDir...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

>知りたいのは、ミサイルをどの方向にどれぐらい回転させれば、進行方向を対象物の座標に向けられるか、の算出式です。 比例航法というやつは,「(未来に相手が要るだろう方向に)いくらか余計にミサイルの向きを回転させる」という話だと思いますけど(偏差射撃というか) 示されたリンク先に式まで書かれているのですが,それではダメなのでしょうか. >どれぐらい がちょうどいいのかは,裁量次第なのだと思いますが.とりあえず3次元だと ・前フレームでのミサイル位置 → 前フレームでのターゲット位置 ・現フレームでのミサイル位置 → 現フレームでのターゲット位置 なる2つの方向ベクトルにより張られる面を考えて,その...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 参考書、またはそれに準ずるサイトを探しています
返信数: 6
閲覧数: 1110

Re: 参考書、またはそれに準ずるサイトを探しています

「アルゴリズム ソースコード」でググっただけですが,こういうのとは違いますか?
http://www.codereading.com/algo_and_ds/
オフトピック
>もっと技術的
ということであれば,こことか…(冗談です)
http://www.ipol.im/
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの一部書き換えについて
返信数: 2
閲覧数: 939

Re: ファイルの一部書き換えについて

(1)ファイルの内容を全て読み込む
(2)改竄する
(3)別名で保存する

ではダメですか?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

ミサイルの向いている方向に進む/加速する のではなくて 運動は単純化: 各フレームで任意の方向に加速できる点とみなして 計算する, 例えば, ・ミサイル現在位置→ターゲット現在位置 方向 とか ・ミサイル現在位置→ターゲットの数フレーム後予測位置 方向 に毎フレーム加速度を加える  ↓ 表示的なミサイルの向きは常に ・ミサイルから見たターゲットの方向 とか ・(ミサイル現在速度方向+ミサイルから見たターゲットの方向)/2 とかにしてしまえばドリフトっぽく見えないことも無いと思いますがそれだとダメでしょうか. ・・*Tgt ・ ・ ・ ・ ・ ・ ・ミサイルの運動軌道 ・ ・ ・ ▲自機  ↓表...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ドリフトっぽい動きをするミサイル
返信数: 72
閲覧数: 11549

Re: ドリフトっぽい動きをするミサイル

何をしたいのかがいまいちわかりません.簡潔に言うと  今まで作ったミサイル → フレームごとに向いている方向へ一定距離だけ進む  これから作りたいもの → フレームごとに向いている方向へ一定量だけ加速する ということですか? ・とりあえず加速度の概念を単純に導入(向きの操作はそのままに)したらどうなるのですか? 何が不十分なのですか? ・「最適な方向」とは何ですか?  (相手が等速直線運動している仮定の元で,ということであれば   実際の相手は仮定を覆すだろうから,仮定の上での何らかの厳密さを追い求めても無駄な気もしますが) ・その他,そのフレームは加速しないという選択肢を取れるのか? とか,...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: debugではバッチリ。releaseしたら不具合が発覚。
返信数: 10
閲覧数: 29010

Re: debugではバッチリ。releaseしたら不具合が発覚。

Releaseではだめという状況はわりと良く目にします.やらかしてるコードを見ると 変数初期化してないことが理由であることが多いですね. VisualStudioのdebugモードだと未初期化状態の変数領域は特定の値で埋め尽くされるみたいなので それによって たまたま 動いていたのが Release時には その勝手な初期化 が無くなるために異なる結果になる,みたいな. これの防止策は そもそも確固たる理由なく変数を初期化しない状態で放置するということをしなければいいだけですね. (未知の値な状態から処理開始!きっと動くさ!! とか私なら不安すぎて絶対やりません) >継承クラスたちのインスタンス...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 2665

Re: 自作:描画クラスについて

オフトピック
>出来次第、またここであげますね。
その際,NO.5のように微妙に相手を名指ししたような雰囲気を出してしまうと
他の方からの意見が得られにくくなるような気もしますので,気を付けられた方がよいかも?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ソートについて
返信数: 6
閲覧数: 837

Re: ソートについて

sato さんが書きました:やや言葉足らずだったようで申し訳ありません。できればソートアルゴリズムは自分で実装せずに他のライブラリから呼び出して使いたいと考えているのですが、その方法がわかりません。自分で書こうとしても、高速なアルゴリズムにするには時間がかかってしまうので、あまり現実的ではない気がします。
処理方針(?)を示しただけです.
ソートアルゴリズム部分は std::sort なりなんなりを使えばよいのではないでしょうか.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ソートについて
返信数: 6
閲覧数: 837

Re: ソートについて

>たとえば、テストの点数から成績順に学籍番号を並べ替えたいなどの場合です。 struct StudentData { int TestScore; //テストの点 int StudentID; //学籍番号 }; のようなデータの配列を作ってソートすればどうでしょうか. もし,↓のようにデータを持っているとしたら… const int N = 10; int TestScore[N] = { ... }; int StudentID[N] = { ... }; ソート処理により動かすものをTestScore[]等のデータそのものではなく 配列のindex値にする とかすればよいのではないでしょ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 2665

Re: 自作:描画クラスについて

>DXライブラリではDrawGraph等の描画関数が用意されていますので、 >CImgの存在意義としては画像ハンドルを持たせられる...といったところでしょうか? No.17のコードの状態だと, 「画像のロード&いらなくなったら捨てる」機能を持たせていれば,まぁ少しはなんかしてる感がありますが, そうでないなら,実際になんというライブラリ関数を使って描画しているかを隠しているだけですね. (そもそもハンドルで扱えるところまではライブラリがやってくれているので,そこからさらにやることは少ない.) こんなこと↓する意味があるかどうかは別として, 例えばこうすれば,CCharacterクラスは自身の...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 2665

Re: 自作:描画クラスについて

>引数を持たないのはfor文で回し、全ての描画を一括して行える様にする為です。 これ自体に問題があるのではなく そのforで回される対象って実際なんですか?ということですね. (「描画するものリスト」か何かに登録しておいて,そのリストに対してfor&Draw()されるとしたら,  リストに登録されるものって何(どういう単位か)という.) 個々の画像 というレベルの粒度(?)でこの仕組みを扱うのが やることに対して適しているかどうか,というか. >あとは実際にはDraw()を持つべき対象は何なのか >(画像毎に描画位置などを保持する形が好ましいのかどうか)とかいう話もあるのかもしれませんが, >...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 2665

Re: 自作:描画クラスについて

これは完全に私の好みかもしれませんが, もし私が「画像」をクラスとして作るなら…こんな形になったりするかも. (おそらくDXライブラリを使われておられるのだと思いますが,私は該ライブラリを知らないので  実情にそぐわない部分があるかもしれません) //※細部は省きます. class CImg //画像 { public: CImg() : m_hImg(0) {} //※「無効なハンドルの値」を表す値が0でいいのだとして※ void SetImgHandle( int hImg ){ m_hImg=hImg; } bool DrawImg( 位置, 透明度=100, 反転するかどうか=fals...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 動的2次元配列(new)についてお聞きしたいことが…。
返信数: 11
閲覧数: 1254

Re: 動的2次元配列(new)についてお聞きしたいことが…。

オフトピック
複製行為への対策も欲しいですね
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 2665

Re: 自作:描画クラスについて

>Draw、DrawSystem内などは一番最初に記載しているのですが...
本当ですね……なぜか宣言側しか見えていませんでした.
大変失礼しました.


あとは実際にはDraw()を持つべき対象は何なのか
(画像毎に描画位置などを保持する形が好ましいのかどうか)とかいう話もあるのかもしれませんが,
それはこのスレッドの話の範囲外でしょうかね.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 2665

Re: 自作:描画クラスについて

DrawSystem()とDraw()がそれぞれ中で何をやっているのかこちらには不明なので 以下想像ですが, 要するにやりたいことは,たとえば CDraw *pDrawItem = new CGraph; ... pDrawItem->Draw(); とすることによって,描画を可能とすること,だったのだと思うのですが, コードを見るとCGraphではDraw()がオーバーライドされておらず,この場合, CDrawCommon::Draw()が呼ばれることになりますね. CDrawCommonはCGraphが描画すべき画像ハンドルを持っていることすら知らないわけなので, CDrawCommon:...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 2665

Re: 自作:描画クラスについて

Draw()とDrawSystem()の2つがある意味がよくわからないのですが, ひょっとして,各具象クラスでの実際の描画処理が定義されるのは Draw()ではなくてDrawSystem()の方なのでしょうか? (だとしたらDraw()の役目は何?ということになるけど…) あと,constにできるメソッドはconstにしとくと良いかと思います. 何をどこまで小分けにするのか,については,それらのクラスの実際の利用状況というか 「どういうものを表しているの?」といったことがわからないと何とも言えない部分があると思います. 座標の方はまだしも その画像ハンドルクラスというのは一体何の役目を担ってい...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ではなくあえてC言語を使用するメリット
返信数: 30
閲覧数: 4315

Re: C++ではなくあえてC言語を使用するメリット

>目的のプログラムを作るのに最短のソースコードで書ける それもありますし,書いたコードを見て何が書いてあるかが直感的にわかるかどうか,という違いもあるかもしれません. 例えば 3次元ベクトル A,B,C,D,E について C = (A*B) * C + ( D - E/5.0 ); //※ベクトル間の*はここでは内積だとする みたいな計算をしている箇所があったとして,C言語でベクトル用の型とその演算のための関数群を typedef struct Vec3D { double v[3]; } Vec3D; Vec3D AddVec( const Vec3D *lhs, const Vec3D *...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: アフィン暗号に関する問題についての質問です。
返信数: 6
閲覧数: 1312

Re: アフィン暗号に関する問題についての質問です。

>>みけCAT様 うーん,全探索ですか. 小難しい話を放棄できるのが利点ですが,いきなり最終手段に打って出てる感があるというか… 少しだけでも工夫できればずいぶん計算時間が違う気がするんですよね. 例えば… βの値の影響って,変換テーブルが回転するだけだと思うので, thisやthatをあらわすパターンを値そのものではなく,テーブルが回転しても不変な性質で判定できれば 力技で探索するにしてもα側だけで済ませられるかもしれません. 例えば,符号化された4文字を,先頭とその他3文字との間の差分値(→3つの値)で表すとしたら, あるα値のとき,thisやthatが取り得る表現はβの変動に対して何通り...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ではなくあえてC言語を使用するメリット
返信数: 30
閲覧数: 4315

Re: C++ではなくあえてC言語を使用するメリット

>usaoさん、勘違いさせてすいません。 02giriさん宛のつもりでした。
なんということでしょう.


>将来的には開発職に就きたいと考えていますので、
であれば,「言語の習得」というのも目的のひとつと言えますね.
オフトピック
電車と車の比較で言えば,ルート形状の複雑さというのもありますね.
鉄道網<<道路網 だと思うので,素直なルート(地図上でのルート形状が直感に近い)を辿れるのは車.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ではなくあえてC言語を使用するメリット
返信数: 30
閲覧数: 4315

Re: C++ではなくあえてC言語を使用するメリット

>電車(C言語)で事足りるのになぜ車(C++)が必要なの? (えーと,私への突っ込みなんですよね?これ.) このたとえで頑張ろうとしたのですが, 電車がまともに走ってない地方に住んでいることもあり,うまく書けませんでした(泣) 質問者様の質問が 何でわざわざCを使うのか? なのに対して 何でわざわざC++を使うのか? と逆のことを問われている気がしますが… 何を言えばいいんでしょうかね. 私はゲームを作ってはいないのですが,C++を使う理由は,個人的には 「機能面で C++ ⊃ C (記号これで合ってるかな?) だから」でしょう. C++をまがりなりにも日常的に使っている身としては,環境的な理...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ではなくあえてC言語を使用するメリット
返信数: 30
閲覧数: 4315

Re: C++ではなくあえてC言語を使用するメリット

車で行けばいいのになんで自転車なの?
→自転車で行ける距離だったので
→現在自転車には乗れるけど車の運転はできないので
→車なら早いだろうけど自転車でも頑張れば物理的に行けないわけではないし

現在自転車に乗っているひとが将来自動車免許を取得して乗り回すつもりがあるのかないのかは個人次第.

…という感じじゃないでしょうか.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: アフィン暗号に関する問題についての質問です。
返信数: 6
閲覧数: 1312

Re: アフィン暗号に関する問題についての質問です。

[コードを拝見して] ・A,Bが不定値なのに演算に用いている点:プログラムとしておかしい. ・いきなりA,Bを求めることが可能なのか?という点.  入力されてきた文字列をヒントにしなければA,Bを推定することが不可能だと思う.  (原文が同一でも,暗号側が用いたA,Bの値が異なれば入力文字列が異なるはずなのに,   入力を見ずに果たしてA,Bを推定できるであろうか?) [解法について] 私も現時点で答えがわかるわけではありませんので,感じたことだけ… とりあえずキーワードが共に4文字なので  入力文字列を単語に区切って,4文字の単語群のみを見る.  →4文字のうち,最初と最後が同じやつは,th...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: アフィン暗号に関する問題についての質問です。
返信数: 6
閲覧数: 1312

Re: アフィン暗号に関する問題についての質問です。

人にコードを見せて何かを確認してもらおうという場合, 少なくとも自分のコードの各所が何をやっている(やろうとしている)のかくらい説明した方が良いと思いませんか? 現状ではコードから「あなたがどういう作戦で問題に臨んでいるのか」というレベルから読み取らねばなりません. 100人いたら100人がまず同じことをやるような非常に簡単な話ならまだしも, 人によって解法が異なるかもしれない類の問題なのだとしたら,あなたのやろうとしていることを読み取れなければ 回答できない→その分有用な回答を得られるチャンスが減る わけで,損だと思いませんか? で,問題を見た限り,A,Bの値は公開されておらず,これを推定す...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 数当てゲーム2
返信数: 4
閲覧数: 1254

Re: 数当てゲーム2

>プレイヤーが入力できる最大の回数が、どのくらいであるかも考察すること って何がいいたいのかいまいち不明瞭ですよね. 「最大回数をどのくらいに設定しておけばゲームとして良さそうか,を考えてみろ」ということなのかなぁ? (回数制限が少なすぎると まず当てられない→クソゲー  多すぎると,てきとーに数を調べまくっていれば正解できる→クソゲー  じゃあ多すぎず少なすぎずという具合はどのあたり? という.) 仮に↑のような話だとして… junjunjunさんなら,このゲーム,何回の入力機会が与えられていたら「絶対に正解できる」でしょうか? 言い換えれば,N回の入力機会がある場合の必勝法 でしょうか. ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 自作:描画クラスについて
返信数: 24
閲覧数: 2665

Re: 自作:描画クラスについて

基底クラス CDraw で規定すべきインタフェースは何なのか? を整理されてみると良いのではないでしょうか. おそらくですが,CDrawの存在目的は >int Draw(void)を呼び出すだけで各種描画が出来る であるはずです.(つまり,Draw()なる仮想関数の型を規定すること.) であれば,CDrawにて規定するメソッドは最低限 Draw() のみでよいと思います. //これだけかな. class CDraw { public: virtual ~CDraw(){} virtual int Draw() = 0; }; すべての派生クラスに必要になるものだけを基底クラスで用意する. (イ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 四角形に凹があるかについての問題です。
返信数: 6
閲覧数: 1115

Re: 四角形に凹があるかについての問題です。

えーと,まずその >他の人の解答例 というのは 正しい回答 なのでしょうか?っていう…( mk_func()とか余裕で0による除算とかしそうに見えるのですが) 以下,ざっと見での感想ですが, mk_func()が返すのは,引数で与えられる2点(x1,y1),(x2,y2)を通る直線上での,xに対するyの値 のように見えます. main()のif の計算式でやろうとしていることは,おそらくですが 「ある対角線から見て,残りの2頂点が反対側にあるかどうかを調べようとしている」のでしょうが, ・y座標のみで判定している → 例えば,1番目と3番目の頂点のx座標が等しいデータだったらダメじゃないの? ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXを必要とするフリーソフト
返信数: 106
閲覧数: 8952

Re: DirectXを必要とするフリーソフト

オフトピック
すみません,話と全然関係ないのですけど,
この[解決]というやつって,質問者以外でもつけれちゃうんですね.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: about the "C struct pointer"
返信数: 6
閲覧数: 598

Re: about the "C struct pointer"

事態が不明瞭です.
まず,そのコードはどこから出てきたものなのでしょうか?

#単に型名とインスタンスとの区別がついていないだけにも見えますが…
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 9136

Re: ゲームのオブジェクト指向について

カプセル化の話が既存のものから読み取りにくいのかもしれない(?)ので,簡単な例. //[Player.h] struct Player_t; //前方宣言 Player_t *CreatePlayerInstance(); //新しいPlayer_tインスタンスを生成し,そのインスタンスへのポインタを返す void ReleasePlayerInstance( Player_t *pReleaseTargetInstance ); //指定インスタンスを破棄する void SetPlayerStatusValue( Player_t *pSetTargetInstance, int statu...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 9136

Re: ゲームのオブジェクト指向について

>重複する画像リソースなど問題は、画像管理マネージャに管理を一存して画像ファイル名を引数に画像管理マネージャから画像ハンドルを貰う方法があります。と言うか大抵そうします。 こんな感じでしょうか. ImgManager *GetImgManagerInstance(); //画像リソースを一元管理するオブジェクトへのポインタを返す int ObjectInitialize( Object *pObjInstance, const char *ImgFileName ) //←これはさすがに受け取るのだと思う { pObjInstance->ImgHandle = GetImgManagerIns...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 9136

Re: ゲームのオブジェクト指向について

無名構造体がどうの の話は typedef struct ch_t //←ここに構造体の名前を書くようにしようね { int flag; double x,y; } ch_t; //そうすれば,別のファイルにて前方宣言が使える. //ch_tが定義されているヘッダをincludeしなくても struct ch_t; //このように「ch_tというstructがあるらしいよ」という宣言を書けば…(名前が無いとこれが書けない) ch_t CH; //これは無理だけど ch_t *pCH; //こっちが可能になる. ということです.(ch_tがどんな変数を抱えているかとかを知らなくていい場所にはそう...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 9136

Re: ゲームのオブジェクト指向について

うーん,あと,私だったらなるべく各オブジェクトには自身の描画処理を行わせない方針でやるかも. 仮に各オブジェクトに自身の描画を行わせるという方式を取るのだとしても 画像のロードと始末とか まではやらせたくないかなぁ… 各コードがDXLibへ依存することは妥協するとしても 画像ロード(と破棄)はmain等の外側で行って,例えば //hImgにはpCHが示すインスタンスが描画の際に用いる画像のハンドル値を指定する. //この関数は,成功時には0でない値を,エラー時は0を返す. int Player_Init( ch_t *pCH, int hImg ) { //hImgが,ch_tの表示用に見合う...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 9136

Re: ゲームのオブジェクト指向について

typedef struct { int flag; double x,y; } ch_t; これだと,flagやx,yを外部からいじれる→カプセル化 にはなっていない. それと,無名構造体は避けた方がよいです(前方宣言できなくなる). で,ch_t型インスタンスがもし自機1つ分しか作られないのであれば, 背景と同じようにch_t変数の存在を隠ぺいしてしまえば良いのかな. ch_t型を他のもの(例えば敵とか)でも使いまわす予定なら, 「新しいch_t型インスタンスを作成し,そのハンドルを返す」ような関数をPlayer.hにて公開し, その他の,現在ch_t*を引数としている関数の引数を,ch...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 一つのゲームを作るのに必要な時間
返信数: 44
閲覧数: 4214

Re: 一つのゲームを作るのに必要な時間

本当に作る気があるのかどうか疑問ですが… 最初は絵のことは忘れて, いくつかのノード(頭とか手の先とか間接)を線で連結した棒人間みたいなのから始めてはどうでしょうかね. キーフレームでのノード座標データさえ用意すれば間のフレームは自動で補間できるので, あとはまずゲームロジックの作成にだけ注力すればいい. (N88-BASICの時代ですが,実際にここまでは作ったことがある.  とりあえずなCPU側動作アルゴリズム等含めて,1週間もかからなかったハズ) その後,絵が欲しいなら,その棒人間をベースにして描いていけば効率が良いんじゃないかな? (必要な中割り(っていうのかな?)の枚数とかそのときの骨...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 川渡り問題
返信数: 2
閲覧数: 938

Re: 川渡り問題

(1)両岸の状態(今現在何があるのか)を表現する手段(=データ)と,   その状態を画面に表示する手段とを用意する.   とりあえず初期状態の表示ができること. (2)ユーザ入力により両岸の状態を更新する箇所を用意する.   更新のたびに画面表示も更新される状態.   (ただし,まだ何の判定もない) (3)判定を追加.(食われる&クリア)   失敗あるいは成功を判定し,その旨を画面表示 (4)ファイルへの記録   ファイルに記録関連の処理を追加. (5)まとめて表示   具体的に何をするのかよくわからないけど要求されている機能を追加. こんな感じでいかがでしょう? (1)~(3)を1日,残りを...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 行をまたいだ文字列の抽出
返信数: 3
閲覧数: 391

Re: 行をまたいだ文字列の抽出

1文字ずつ読んで行って判定すれば良いのではないでしょうか?

最初はHを見つける状態
 ↓    ↑
Fを見つける状態
 ↓
=を見つける状態 → 最初の状態
 ↓
値を読み取る状態
 ↓
読み取り終了

という風に状態遷移とかしてやればどうでしょう.

↓はCSVの話ですが,参考になると思います.
http://codezine.jp/article/detail/5531
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機の水平器の計算について
返信数: 35
閲覧数: 1807

Re: 飛行機の水平器の計算について

>現青・基赤 = 0  : 現青と直交していて
>というのは現青・現赤の間違いですよね?

いいえ.

>黄色回転値=0 のときの赤ベクトル
たる 基赤 を求めるという話で連立方程式を立てているのに,基赤が入ってない式であるはずがない.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 9136

Re: ゲームのオブジェクト指向について

>そんな少なくて良いんですか?
私なら,です.
ご自身がやれる範囲で最初から用意するものを決めればいいと思います.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 9136

Re: ゲームのオブジェクト指向について

私なら最初はこれだけかなぁ

コード:

  |

  |←shot

  ▲自機
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機の水平器の計算について
返信数: 35
閲覧数: 1807

Re: 飛行機の水平器の計算について

お使いのライブラリ(?)でどう表せばいいのかは知りませんが,理屈がわかれば書けるんじゃないですか? 紙の上で前述3条件の連立方程式を解けば 基赤 が求まるでしょうからそれをそのままコーディングするとか. 後は回転量ですが,おそらく描画のためだけであれば 角度(θ)そのものが得たいのではなくて,その三角関数値(cosθとsinθ)が得られればよい のだと想像するので, 内積と外積からそれらを獲得するなりすればよいのではないでしょうか. ※1:基赤の解は当然2つ存在しますから,どちらの方向が妥当かの判断は必要と思います.(現赤と近い側とかでいいか) ※2:ところで,現青が「真上または真下」のときっ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機の水平器の計算について
返信数: 35
閲覧数: 1807

Re: 飛行機の水平器の計算について

>その黄色の回転値=0 のときの,緑と赤のベクトルの向き を算出して, >それとの間の回転量を求めればよいのではないでしょうか. なんか激しく無視されていますが やりたいことはこれ↑とは全く違う話なのかどうかだけ教えてください.すっきりしないので. 一応,詳述しときますと, 貼られた図の3色の方向ベクトルをそれぞれ その色で,{現赤,現青,現緑}と書くとすると 私が言っている 黄色回転値=0 のときの赤ベクトル(これを以降 基赤 と書く)というのは,   現青・基赤 = 0  : 現青と直交していて   基赤.y = 0  : ワールド座標系において水平で   |基赤| = 1  : 単位ベク...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 正の足し算のはずが負になる。
返信数: 16
閲覧数: 1198

Re: 正の足し算のはずが負になる。

ところで初期化云々以前の根本的な話なんですが, >w [j]は正なので負なるはずはないんですが。。。 とのことですが, w[i][j]=a1*powf((h*h-dis_2[i][j]),3); この式って一般に ”負にならないようには見えない” のですけど,その点から勘違いされていたりはしないのでしょうか? コードが全体的にとても読みにくい→読みたくない ので,ざっと見での憶測ですけど, dis_2[][] は,(まともに動けば)粒子間距離の2乗値なのだと思うのですが 常に ( h*h(=400) >= dis_2[][] ) なる関係が成り立つような仕組みがどこかにあるんでしょうか?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 飛行機の水平器の計算について
返信数: 35
閲覧数: 1807

Re: 飛行機の水平器の計算について

その黄色の回転値=0 のときの,緑と赤のベクトルの向き を算出して,
それとの間の回転量を求めればよいのではないでしょうか.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 1366

Re: 画像処理のプログラムについて

「本当にやりたいこと」をご自身が完全に説明できない限り,内情を知らないこちらとしてはどうしようもないので, 一度そこらへんを整理してみたほうがよいかと思います. たとえば,現在既に実装されている「2値化」とか「グレースケール化」とかって”何やってるのかがはっきりわかる”処理ですよね. 仮に「2値化」という言葉を全く用いずにその処理内容を (画素ごとに輝度値と閾値とを比較して,輝度値>=閾値 であれば結果255に,そうでなければ0にするような処理がしたいです,みたく) 説明されたとしても,「ああ,こういうことがしたいんだろうなぁ」って想像がつく,というか. もしそうであれば,こちらも想像を働かせ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 数字の違う画像の取り込み法
返信数: 3
閲覧数: 1326

Re: 数字の違う画像の取り込み法

#include <iostream> #include <sstream> ... const char FileNameHeadPart[] = "icon_"; const char FileExt[] = ".png"; for( int i=1; i<=3; i++ ) { std::stringstream SS; SS << FileNameHeadPart << i << FileExt; //※LoadGraph()とかいうのの使い方は知らないので自分でやって. std::cout << "FileName = " << SS.str() << std::endl; }
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 正の足し算のはずが負になる。
返信数: 16
閲覧数: 1198

Re: 正の足し算のはずが負になる。

line108 : float q[N];
これの初期化も行ったけどダメ,ということでしょうか?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 画像検出のアルゴリズム
返信数: 2
閲覧数: 465

Re: 画像検出のアルゴリズム

話がその文面どおりに簡単なものなら 単純なテンプレートマッチングでよいのではないでしょうか.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 1366

Re: 画像処理のプログラムについて

いや,でも処理結果例が違ってますし……

仮に私が示した結果例が求めるものなのだとしても,何に困っているのかも良くわからないのです.
(2値化が書けてこの処理コードを書けないということも無いような気がしますので.)
本当にそれだけの話であれば,
とりあえず一番左の列(x==0)では,反転対象が存在しないので「上から見ていく」処理の対象となる列は x>1 でしょうから,

コード:

for( int x=0; x<画像幅; x++ )
{
  ・上(y=0)から順に見ていき,最初の黒の場所を見つける
  ・その左の場所を反転する
}
というだけのことになりますよ?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 1366

Re: 画像処理のプログラムについて

いつのまにか 白と黒を表す{0,1}の関係が逆転しているのかな? だとしても,本当にやりたい処理内容が何なのかがやっぱりわからないです. {0,1}だとどっちが何なのか混乱するので白と黒を { W,B } で表記することにすれば, 説明された文面からの私の理解は以下のようなことになります.  ・各列の中で,最も上にあるBを見つける  ・そのBの位置の左隣の要素を反転する 例で言うとこう.(0と1で示された例と同じ形のデータです) W B B B W W B B B W W B B B W W B B B W W B B B W  ↓ B W W B W W B B B W W B B B W ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 12111

Re: switchでループを抜ける方法

そのswitchによる分岐がどれだけのことをやっているのか,次第だと思います. swtichでやってることが「ちょっとしたこと」であって, 少数のパターンしかなく,分岐後の処理も2~3行程度のコードで済む程度……とかであればif~elseで良いわけだし, テーブルで済ませられるならそうすればいいし. 例えばswitchがやってることが プログラムの状態に関わる大きな流れの制御だったりする場合, Cなら関数ポインタ,C++ならStateパターンみたいなのを使うような場面かもしれませんし. //関数ポインタで処理分岐 int (*pCurrStateFunc)() = InitStateFunc;...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 1366

Re: 画像処理のプログラムについて

うーん,処理内容説明と出力例との対応がわからない…
例えば一番上の例で言えば,入力に0な箇所が無いのにどうして一番左の列の要素が反転されたのかが?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 12111

Re: switchでループを抜ける方法

無限ループ+switch という状況が割とレアな気もしますが そういったものを書くとしたら大抵関数化していると思うので普通にreturnです.  ↓ どうしても関数化したくない場合 gotoは,一人で趣味で書いていてそのコードを読むのも触るのも自分だけ ということがわかっていて 且つ,今回のようなループ抜けのために限って ならば使うかもしれません. そうでないならば たとえ見栄えが少々悪くなっても フラグを用意します. //面倒だからifとswitchのハイブリッドで解決だ!…なんちゃって. while(1) { if( XXX ) {//wihleを抜ける処理はこっち break; } el...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 実行時型情報を使って良いのか?
返信数: 6
閲覧数: 1675

Re: 実行時型情報を使って良いのか?

>そんな感じであっていると思います。 ご確認いただきありがとうございます. しかし,この方法だと例えば「要素がN種類あるうちの7種類をサポートするVisitor」 とか書くのが大変そうに思うのだけど,何か良い実装方法があるのかなぁ? //多重継承ってほとんど書いたことないけど //こんなにたくさん継承しなきゃならないとしたら,何か間違っているような不安な気分になってしまう class ConcreteVisitor_A_B_D_F_X_Y_Z : public Visitor_T<A>, public Visitor_T<B>, ... , public Visitor_T<Z> //ここが長...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 画像処理のプログラムについて
返信数: 17
閲覧数: 1366

Re: 画像処理のプログラムについて

>処理内容としては、画像を二値化(仮に黒を0、白を1とします)したあとに、その二値化した画像をY軸方向(画像を上から)からスキャンし、 >その列で一番初めの0の部分の座標(X.Y)を求めて、その座標をもとに横からスキャンし、先ほど求めた座標のひとつ前にある座標の値を変える(0の場合1に、1の場合0にする) 意味がよくわかりません. >画像をY軸方向(画像を上から)からスキャンし、 というのは, (x,0) → (x,1) → (x,2) → ... → (x,ymax) という順で見ていく,ということだろうと思いますが,x座標はどうやって決定するのでしょうか? >その列で一番初めの0の部分の座...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 実行時型情報を使って良いのか?
返信数: 6
閲覧数: 1675

Re: 実行時型情報を使って良いのか?

便乗質問みたいになってしまうのですが Acyclic Visitor ってこんな感じで合ってますか? //------------------------------------- //ベースクラス //class AcyclicVisitorBase //{ //public: // virtual ~AcyclicVisitorBase(){} //}; // ↓訂正↓ class AcyclicVisitorBase { public: virtual ~AcyclicVisitorBase() = 0; }; AcyclicVisitorBase::~AcyclicVisitorBas...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 実行時型情報を使って良いのか?
返信数: 6
閲覧数: 1675

Re: 実行時型情報を使って良いのか?

普通に Shape::draw()のような仮想関数にしたくない理由があって
Visitorなどを考えておられるのだと思いますが,その際,

>そこで、Visitorパターンを用いることにしたのですが、これにも欠点があり、
この欠点とは,具体的にどういったことが問題になっているのでしょうか?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 方向ベクトルから回転行列を取得したい
返信数: 5
閲覧数: 5343

Re: 方向ベクトルから回転行列を取得したい

>ベクトルAxisZの方向へ向く回転行列を取得したいです。

それだけでは何をしたいのかはっきりしません.


あるベクトル V が存在していて,
 R * V == AxisZ
となるような回転マトリクスRを求めたい,ということなのでしょうか?
もしそういう話であれば,VとAxisZの外積から,回転軸と回転量の情報が得られそうです.
任意軸周りの回転マトリクスを算出する手段さえ用意できれば,Rを求められるように思います.
(AxisZ周りの回転 に自由度があるので一意には定まらない気はしますが)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 龍神録プログラミングの館で
返信数: 8
閲覧数: 1068

Re: 龍神録プログラミングの館で

ヘッダファイル名を書かれても文面からは意味が分からないような気がしますが… (仮に,参考にされているページにてそのファイル名が使われているのだとしたら  そのページへのリンクを示すとかするとわかりやすいのではないでしょうか) とりあえず,PAD_MAXが定義されているヘッダファイルを見つけて, あなたが構造体を3つ書いたコードにてincludeすればよいと思います. 何で無名構造体…? とか思ったら,どうやら参考にされているらしき場所で既にそういう書き方がされているんですね. typedef struct { ... } ch_t; のようにわざわざ無名にすることで何かメリットがあるのか私は知...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: メニューの選択画面の応用
返信数: 5
閲覧数: 746

Re: メニューの選択画面の応用

(1)「エンターキーが押されたとき」という処理を書く
(2)SelectNum が現在選択項目を表す値を持っているのだから,処理部に SelectNum を渡す.

……だけで済むと思います.
(SelectNumは0-base,質問文での値は1-baseだという微々たる違いこそあれ)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルのことで教えてください
返信数: 3
閲覧数: 560

Re: ファイルのことで教えてください

256という値じゃないとダメとかいうことではなく
単に,「データファイルから読み込む文字列の長さを格納するのに十分な長さの配列を用意する」
程度の意味しかないでしょう.
つまり,
 ファイルから読み込む都道府県名項目の長さ << 256
という想定をしている,というだけのことだと思います.
(もしこの部分が問題にて穴埋め箇所になっているとしたら,問題文にてその旨を規定すべきでしょうが,
 今回は穴埋め部分ではないから特筆しなかったのでしょう)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】自分の書いたコードを見て下さい
返信数: 28
閲覧数: 2930

Re: 【雑談?】自分の書いたコードを見て下さい

例えば,「後始末が必要なこと」すら利用側は知らなくて済む. //このクラスはメモリを動的に確保して使うが,その後始末は自動で行われる. //利用側は,メモリが動的に確保されていること→解放の必要性があること を知らなくても使える. // //※デストラクタ説明用の最低限のコードです(主題ではない箇所は全て省略)※ class CTest { public: CTest(){ m_pBuffer = new int[10]; } //このクラスはメモリを動的に確保しているが,そのことを利用者は知らなくていい. ~CTest(){ delete[] m_pBuffer; } //デストラクタでメモ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】自分の書いたコードを見て下さい
返信数: 28
閲覧数: 2930

Re: 【雑談?】自分の書いたコードを見て下さい

デストラクタは そのオブジェクトが解体されるときに呼ばれます. 無くなる前に絶対に何かしないとダメな処理がある場合に使います. 例えば,3D_3Dさんが示されたコードには Fin() というメソッドを持つクラスがあり, そのクラスオブジェクトを使い終わる際に,何かしら後始末が必要なのだと見受けます. そういったことをデストラクタに書いておくと(例えばデストラクタの実装に Fin(); と書いておく) インスタンスが解体される直前に自動でやってもらえて便利です.  とはいえ,DXライブラリではどうやらDxLib_End()というやつが存在しているっぽいので  オブジェクトの後始末時にDXライブラ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 画面外に出たらデータを消去する処理
返信数: 3
閲覧数: 747

Re: 画面外に出たらデータを消去する処理

コード:

void Gamemanager::Out(Enemy *enemy){ ... }
↓
void Gamemanager::Out(Enemy *&enemy){ ... }
でどうでしょうか.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】自分の書いたコードを見て下さい
返信数: 28
閲覧数: 2930

Re: 【雑談?】自分の書いたコードを見て下さい

>music.cpp この名前については多分私のせいです. 私がてきとー(*)に書いたのをそのまま使ってしまっているのだと思います. もう少し真っ当な名前を例示すべきでしたね. で,このhとcppに何を入れるのか?についてですが,とりあえず最初に貼られているコードに対して 最初の段階として >まず,WinMain()を書くファイルと,Music_XXX系のメソッドの実装を書くファイルを分けましょう. をやる,という話のままであれば 「ミュージックルーム(?)」という大きなモジュールに必要な諸々(スクリプトのロードはその中の機能の一つ,ですね.) が収まることになるのかな?と思いますので 例えば...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、秘密分散での分散画像の配列のソースコード
返信数: 12
閲覧数: 2518

Re: C言語、秘密分散での分散画像の配列のソースコード

失礼ながら,なんというか,何かしら答えた相手にまともに応答する気が無いのであれば あなたの問題の解決手段として掲示板形式の場所は適していないかもしれません. あと,この掲示板では,フォーラムルールにて マルチポストに関するルール が規定されている模様ですので ちゃんと対処してください. もちろん,ここに限らず他所についても放置しないでくださいね. >「鍵の長さ」は秘密分散のプログラミングに関係ありますか? 「鍵の長さ」とはあなたがやろうとしている問題に関して言えば,何に当たるのですか? (質問をする場合,あなたが持ち出してくる単語について,あなたの方から説明して然るべきだとは思いませんか?) ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】自分の書いたコードを見て下さい
返信数: 28
閲覧数: 2930

Re: 【雑談?】自分の書いたコードを見て下さい

>ヘッダファイルにはなるべくincludeはしないようにします。 この話については理由を調べてみてください. 「include 依存関係」とかで検索すれば 「コンパイル依存性がどうので1つ変えただけで全部再コンパイルが必要になって云々」という話が見つかると思います. 別に個人でやってる規模なら全部コンパイルされようが別にいいし…とか感じるかもしれませんけど. 一応,私が経験した弊害(?)として↓のようなのがあります. ●どのcppが何を必要としているのかさっぱりわからない状況になる 以前他人が作ったそれなりに大きいプログラムから本当に必要な部分だけを抜き出す(要らん部分を削る)という作業を行い...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、秘密分散での分散画像の配列のソースコード
返信数: 12
閲覧数: 2518

Re: C言語、秘密分散での分散画像の配列のソースコード

ところでマルチポストでしょうか? であれば,両方とも放置しないでちゃんと対応するようにしてくださいね.
http://hpcgi1.nifty.com/MADIA/Vcbbs/www ... 070006.txt

[追記]
↑このリンク先でさらに複数個所へのマルチポストである旨が指摘された模様.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】自分の書いたコードを見て下さい
返信数: 28
閲覧数: 2930

Re: 【雑談?】自分の書いたコードを見て下さい

●以前も同じようなことを書いた気がしますが 外部変数(正確には何と呼ぶのかな? ファイルスコープな非ローカル変数) static music_t music[ MUSIC_NUM ]; の存在を前提として各クラスのコードが書かれてしまっています.  ↓ まず,WinMain()を書くファイルと,Music_XXX系のメソッドの実装を書くファイルを分けましょう. 例えば,現在クラス群の宣言が書かれているヘッダファイルをmusic.hだとすれば クラスの実装を新しいmusic.cppに書く. で,「music.hとmusic.cppを別のプログラムに持って行っても再利用できる形」を目標に書いてみる...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C言語、秘密分散での分散画像の配列のソースコード
返信数: 12
閲覧数: 2518

Re: C言語、秘密分散での分散画像の配列のソースコード

>秘密分散法はノイズ画像の分散画像2枚を重ね合わせたら文字が浮かび上がる 主題ではないかもしれないのですが,秘密分散法というのがどういう方法なのか気になります. この内容が詳細にわかるリンクとかがもしあれば示していただけると嬉しいのですが. [追記] 自分でみつけた.これのことなのかな. http://ohta-lab.jp/users/mitsugu/research/VSSS/main.html いくつかの関連と思われるスレッドを見てきましたが,結局何が知りたいのかがはっきりしない. (単にコンパイルエラーを解消したいということなのか,それ以外の何かなのか.) >学校では配列は習っています...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: テンプレートクラス内のメソッド
返信数: 4
閲覧数: 817

Re: テンプレートクラス内のメソッド

どの型のメソッドが使われる(生成される?)かは,あくまでも
>メソッド呼び出し時
ではなくコンパイル時に決定されることになりますが.

#聞くよりもコンパイルしてみれば早いのに
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: glutを使ってランダムに円を表示したいが,x座標だけ固定されて困ってます
返信数: 2
閲覧数: 732

Re: glutを使ってランダムに円を表示したいが,x座標だけ固定されて困ってます

>x座標が一定 値が一定というのをどうやって確認していますか? init()の最後に printf( "%lf, %lf\n", pos[0], pos[1] ); を入れてみると,実行毎に値が変化しています. 描画結果だけを見て 一定だとおっしゃっているのであれば pos[0] = (double) rand () / RAND_MAX * 1.8 - 1.4; では値の取り得る範囲が狭いので,そのように見えているだけではないでしょうか. >また範囲指定の仕方も教えていただけると嬉しいです.画面の外に表示される場合もあるので. ウィンドウ領域内に見える座標範囲は設定により変化します. デフォ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: OpenGlでのキーボードハンドラについて
返信数: 6
閲覧数: 1854

Re: OpenGlでのキーボードハンドラについて

同じコードを3箇所に書かずにまとめましょうね.

さて,そのcosの式がどうやってでてきたのかわかりませんが…
複雑なカメラ移動をしたいのでなければ,
・視点を動かすのではなくて,結果が相対的に同じになるようにモデルの方を動かす
という方法をとったほうが楽かもしれませんよ.
(例えば,glRotated()とかでモデル側を回転させれば裏側を見るのは簡単かと.)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dゲームを作りたいのですが
返信数: 8
閲覧数: 1526

Re: 3Dゲームを作りたいのですが

使用する3Dのライブラリが決まってないなら最初はGLUTをさわってみるとかどうでしょう? http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html [大雑把な流れを提唱してみる] (1)GLUTでなんか3Dやってみる(至極簡単なゲームもどきでもつくってみる) →(2)ゲームであればGLUTのウィンドウの体裁とかに不満が出てくる →(3)Win32APIでウィンドウを自前でつくる方法とメッセージ処理方法を学ぶ →(4)wglについて調べて自前ウィンドウ上にOpenGLによる描画をできるようにする →(5)(1)のゲームロジックを移植してみる →...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 変数の勝手な同期
返信数: 10
閲覧数: 907

Re: 変数の勝手な同期

コード:

int size=1000;
int N=3;
...
stack = (char *)malloc(sizeof(char)*N);
...
while(fgets(stack,size,fpd)!=NULL){
↑バッファサイズを超えて読み込んでいませんか?

[追記]
あと,tokを使うあたりがダメなように見えます.そのあたりでは
ポインタの代入 で 文字列のコピー を表そうとしているように見受けます.

#コードが改行されて見えないのはどうやらIEのバージョンがどうの,という話らしいです.
 私にはコードがちゃんと改行されて見えていますよ.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の黒部分の色調度合いでアルファ値を変えたい
返信数: 9
閲覧数: 913

Re: 画像の黒部分の色調度合いでアルファ値を変えたい

>黒の度合い
カラー画像をグレースケール化したときの輝度みたいなのを指しているのかと思います.

やりたいことが以下の点について不明瞭に思います.
・目的は?(そういうふうにして描画したい or そういう(α値を持てる形式の)画像ファイルを作りたい)
・画像をどうやって扱うのか?(何らかのライブラリ使用 or 完全に自前の実装)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 基準座標を中心にスクロールするカメラオブジェクト
返信数: 37
閲覧数: 3968

Re: 基準座標を中心にスクロールするカメラオブジェクト

あ,解決チェックついてる! ってことで覗いてみたのですが
なんか解決したのかどうかよくわからない雰囲気…?

この件については口を挟まないと決めた以上,私からは今も今後も何も言いませんが
ひそかに応援はしています.頑張ってください.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 横型探索についての質問です
返信数: 11
閲覧数: 1385

Re: 横型探索についての質問です

頑張ってください.
探索処理自体の話がどうしても…という場合,例えば上側のコードだけで
Mapのどこかにゴールを設定(Map[0][0]=2; みたく適当に他と違う値をいれておくとか)して
そこまでの経路を探索したい みたいな話にしてしまえば
コンテスト云々とは切り離して 純粋な探索処理に関する質問 にできると思います.
(実際の問題への適用はご自身でやればよい)

#SLGの移動処理とか経路探索とかの話を検索すると参考になったりしませんかね?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: OpenGlでのキーボードハンドラについて
返信数: 6
閲覧数: 1854

Re: OpenGlでのキーボードハンドラについて

うまくいかないとはどういう状況ですか(まだ キーを押してもなにも動かない のでしょうか)? gluLookAt()やglutPostRedisplay()などをdisplay()に書かずにキーボードハンドラに書いたら 変わりませんか? void KeyboardHandler(unsigned char key, int x, int y) { //※他のキーについては省略 if(key =='a') { X++; //キー操作により視点変更が必要になったならばその場でやる glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspectiv...

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