検索結果 1560 件

by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのオブジェクト指向について
返信数: 139
閲覧数: 9355

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
閲覧数: 9355

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

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

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
閲覧数: 9355

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

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

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
閲覧数: 4246

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

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

Re: 川渡り問題

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

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

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

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

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

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

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

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

いいえ.

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

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

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

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

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

コード:

  |

  |←shot

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

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

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

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

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

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
閲覧数: 1818

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

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

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

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

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
閲覧数: 1214

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

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

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

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

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

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

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

コード:

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

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
閲覧数: 12319

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

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

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

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

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

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

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
閲覧数: 1380

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
閲覧数: 1696

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

コード:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
閲覧数: 1869

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

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

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

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
閲覧数: 919

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
閲覧数: 920

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

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

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

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

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

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

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

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

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

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

うまくいかないとはどういう状況ですか(まだ キーを押してもなにも動かない のでしょうか)? gluLookAt()やglutPostRedisplay()などをdisplay()に書かずにキーボードハンドラに書いたら 変わりませんか? void KeyboardHandler(unsigned char key, int x, int y) { //※他のキーについては省略 if(key =='a') { X++; //キー操作により視点変更が必要になったならばその場でやる glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspectiv...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の中で、初期化していなかったら前の配列に補完したい
返信数: 2
閲覧数: 452

Re: 配列の中で、初期化していなかったら前の配列に補完したい

判断材料はありません.

代替手段として,例えば
a,b,cの有効な値域がある範囲内に制限されていることが既知であれば
”その範囲外の値で必ず初期化しておく”等して判定できると思いますが
これらの変数がintの全域にわたって値を取り得る条件下だとそれも無理です.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 荷物運びゲームのプログラム
返信数: 16
閲覧数: 1559

Re: 荷物運びゲームのプログラム

>map.cpp(119): mBlocks[mPlayerY*mSizeX+mPlayerX].set(false,PLAYER);
>でプレイヤー情報をクリアしただけで代わりの情報が入れられていないためです。
(実際に動かしてみているわけではないのでコードの見た目からの判断ですが)
フラグをビットの組み合わせで表現しているように見えるのでこの点については問題ないように見えます.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 荷物運びゲームのプログラム
返信数: 16
閲覧数: 1559

Re: 荷物運びゲームのプログラム

見た感じ↓この判定はおかしいように見える.
座標(mem_x2,mem_y2)をチェックする必要はないのでは?

コード:

//進行先がマップ外なら戻る
if(isInsideofMap(mem_x1,mem_y1)==false||isInsideofMap(mem_x2,mem_y2)==false){
    return;
}
あと,荷物を押して移動するパターンの記述がないような.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 横型探索についての質問です
返信数: 11
閲覧数: 1405

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

うーん,「コンテストだから1から10まで自分でやらないとダメじゃない?」については置いといて(!?)も, 何が訊きたいのかいまいちよくわからないです. (1)貼られているコードについて コードが2つ貼られていますが, ・上側のは5*5の内容が全てわかっているとしたときのサンプル.  横型探索処理を書いたつもり.  (ただし,探索対象:ゴール が何処なのかが不明) ・下側のはコンテストに関するコードだが探索処理は全く書かれていない というものだという認識でOKでしょうか? (2)やりたい内容について ルールのPDFをざっとみた感じだと ・マップは未知だが,ターンを費やすことである範囲の情報を得る...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 横型探索についての質問です
返信数: 11
閲覧数: 1405

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

何がしたくて 現状どうなっていて 何がわからない状況にあるのか
全く読み取れないので回答のしようもありませんが,それ以前に
コンテスト用コードなのだとしたら
・全て自分でやらないとダメなような気がするけど,その点どうなんでしょう?
・こんなところでソース晒してたらまずくない?
…とか.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 配列の中身とカウント数の連動の仕方
返信数: 2
閲覧数: 3046

Re: C言語 配列の中身とカウント数の連動の仕方

とりあえず Data[101][10] → Data[100][11] かと. あと,真ん中らへんに↓こんな箇所があるのですが,書き込み時のミスでしょうか? for(k = 1; k < 101; k++){ for(l = k + 1; l < 101; l++){ for(k = 1; k < 101; k++){ for(l = k + 1; l < 101; l++){ ソートしないという選択肢…は無しでしょうねw //桁数と候補データ数 #define DIGIT 11 #define NDATA 100 //桁数分のint配列を表示する作業関数 void PrintData( co...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】自分の書いたソースを見てください
返信数: 11
閲覧数: 1425

Re: 【雑談?】自分の書いたソースを見てください

まず最初は「クラス書いてみた」程度の小さい例をやってみてはいかがでしょう? class CMy1stClass { public: CMy1stClass( int val=0 ){ SetVal(val); } ~CMy1stClass(){ printf( "destructor of CMy1stClass\n" ); } public: void SetVal( int val ){ m_Val=val; } int GetVal() const { return m_Val; } void PrintVal() const { printf( "m_Val=%d\n", m_Val ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】自分の書いたソースを見てください
返信数: 11
閲覧数: 1425

Re: 【雑談?】自分の書いたソースを見てください

各メソッドが外部変数Music_Roomの存在を前提に書かれているように見えますが…
クラスについてもう少し文法レベルでの理解が必要なのではないでしょうか.

・コンストラクタとデストラクタ
・メンバ変数
・メンバ関数
くらいをちゃんと勉強してもう一度書いてみては?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ファイルストリームについて
返信数: 6
閲覧数: 700

Re: C++ファイルストリームについて

>tのループ範囲はどう狭めれば良いのでしょうか… line52~64のtのループを一巡したらどうなるのかを考えましょう(あるいは調べましょう). tdate[]だと説明しにくいので,簡単にintの配列で考えましょうか. int a[5] = { 4, 1, 2, -1, 0 }; //という配列があって小さい順にならべたい for( t=0; t<4; t++ ) //tのループ { if( a[t] > a[t+1] ) { a[t]とa[t+1]の値を入れ替える } } とするとどうなるか. t=0での処理 → { 1, 4, 2, -1, 0 } t[0]とt[0+1]とを入れ替えた t...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C++ファイルストリームについて
返信数: 6
閲覧数: 700

Re: C++ファイルストリームについて

>また i のループも特に必要ないと思います。
line51からのソート処理はバブルソートだと思うので iのループは必要だと思うのですが.
比較に無駄があるというのは,
・iのループごとに,tのループ範囲を狭めることが可能なのにそうなっていない
・ソート完了判定がない
ということを言っているのでは?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 二分岐の実装
返信数: 7
閲覧数: 1333

Re: 二分岐の実装

BinTreeの他のところに手を加えてはいけないのだとしても >traverse()とaddNode()とdelNode()を実装せよという問題 とのことなので,addNode()はご自身で実装されたものと思うのですが. addNode()を見た感じ,  あるノード(仮にノードAと呼ぶことにすると)とその子ノードとの関係が  ・Aの左の子は,Aよりも小さいデータ値を持つ  ・Aの右の子は,Aのデータ値以上のデータ値を持つ …となるように二分木が構築されていると思います. (そのようにしろ,という問題だったものと想定します) ↓ BinTree::remove()では,削除したいノードを データ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 二分岐の実装
返信数: 7
閲覧数: 1333

Re: 二分岐の実装

・課題でしょうか? 個人的なものでしょうか?
・addNode()を見るに,要素の格納法には法則性があるんですよね?
 だったらその法則性に従い,削除すべきノードを探索すればよいのではないでしょうか.
・消去対象があったかどうかを知る必要があるなら BinTree::remove() は戻り値で情報を返すとか.
・あと,BinTreeにはデストラクタが欲しいところ.

#各ノードに親へのポインタを持たせると各操作の実装が楽かも?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 25
閲覧数: 2488

Re: 課題

No.19に掲載されたのは,No.7の内容についての
>確認のために書いたソースコード
ということですね.(問題の答えではなく)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 数値入力の例外処理について。
返信数: 8
閲覧数: 7124

Re: 数値入力の例外処理について。

> scanf("%*[^\n]"); 書式については scanf で検索するとすぐ見つかります. ↓リンクはwikipediaですが http://ja.wikipedia.org/wiki/Scanf 役割については,既に説明されているように, 改行文字直前までを入力ストリームのバッファ(? 正式名称わからないけど,入力された内容がたまっている場所)から 読み込む(が,特に変数に格納したりしない = 取り除く)ことです. scanf()は,予期せぬ入力:今回の例では数値を入力してほしいのにアルファベットを入力されたようなとき があったら その入力を入力ストリームバッファから取り除かずに残し...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: for文の問題
返信数: 4
閲覧数: 473

Re: for文の問題

例えば nとして5を入力し,
その後の6回の入力を { 5, 10,10, 5, 1, 5 } のようにした(しようとした)場合
どのような結果になればよいのでしょうか.
(同じ答えを複数回入力されたらどう振舞うべき?)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 相互作用を表したいのに一つの質点からの力のみになってしまう。
返信数: 1
閲覧数: 356

Re: 相互作用を表したいのに一つの質点からの力のみになってしまう。

あるタイムステップにおいて
ある質点iに対して加わる力は,他質点群との間の粒子間力の総和となるべきです.
問題の現象は,関数Fx(),Fy()の計算結果が上書き代入になっていることが原因と思われます.
(line57等)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: fgetsとprintf
返信数: 2
閲覧数: 528

Re: fgetsとprintf

たくさんの文字を入力したとき, 今回のfgets()が読み込まなかった分は入力バッファ(stdinの入力内容が蓄えられている場所.正式名称わからんけど)に残っているので 次回のfgets()が(新たな入力を待たずに)そこから読込を行っています. ・例えば aaaa(最後にEnter) と入力したとき,入力バッファの内容は {a,a,a,a,\n} となり,  fgets( str, sizeof(str), stdin );の結果,先頭から{ a,a,a,a } が読み込まれ,入力バッファの内容が { \n } になります. ↓ ・ここでprintf()が走る ・次回のfgets(略)によって...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ブラックジャック
返信数: 1
閲覧数: 5875

Re: ブラックジャック

とりあえず対戦相手(ディーラー?)がいない状態で 「カードを引く→手の得点(っていうのかな?)を計算する」 という状態までを実現したい,ということでしょうか. 一気にいろいろ実現するのが難しいのであれば,まずは目標を簡単にしてみてはいかがでしょう. 例えば, ・最初はscanf云々の話はまずは置いといて,  burstするまでひたすらカードを引き,手札の得点を都度表示する(burstになったら終了)ということにする. くらいでどうでしょう? #ところでブラックジャックって何回までドローできるんでしょう?(回数制限があるのかどうか)  手札を表すのに 回数制限が無い&カードは1セット という条件...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ヒットアンドブローのプログラム
返信数: 4
閲覧数: 2866

Re: ヒットアンドブローのプログラム

・値を各桁に分解している処理(例えばline55-56)は複数個所にある → 関数化する ・他人にソースを見てもらう際には各関数が何をするものなのか?といったコメントを付けた方がよいと思う. ・変数名は役割で付けるとよいかと.(tempとかでなく.) ・細かい点ですが,line59以降の判定は↓でどうかな? {//比較 for( i=0; i<LONG-1; i++ ) //iの範囲は1だけ狭くていい { for( j=i+1; j<LONG; j++ ) //一度見た(i,j)の組み合わせは見ない { if( temp[i] == temp[j] ) { loopFlag = 0; brea...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: グラム・シュミットの正規直交化法
返信数: 5
閲覧数: 2991

Re: グラム・シュミットの正規直交化法

その書き方だと,せっかく計算した正規直交基底のn番目の基底ベクトルしかもらえないように見受けます.
通常,得たいのは正規直交基底の全ての基底ベクトルだと思うので
再帰処理の中で,各Wiの計算結果を結果格納域に保存するようにすれば(無駄な計算も自然と省けますし)良いように思います.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: グラム・シュミットの正規直交化法
返信数: 5
閲覧数: 2991

Re: グラム・シュミットの正規直交化法

アルゴリズムを実装したものを今後使うのであれば,例えば, //[グラムシュミットの正規直行化] //nVecs本の入力ベクトルpSrcVecsに対する正規直行化処理結果をpDstResultVecsに入れる. //(pSrcVecsとpDstResultVecsが同じだったり重複領域を持つような指定をしたらどうなるのか,とかも書いておくとよい) //成功時は正の値を,失敗時は0を返す. int GramSchmidt_Orthonormalization( const VECTOR *pSrcVecs, //※要素数nVecs個以上の配列の先頭 VECTOR *pDstResultVecs, ...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: グラム・シュミットの正規直交化法
返信数: 5
閲覧数: 2991

Re: グラム・シュミットの正規直交化法

VECTOR x1,x2,x3; → VECTOR Vec[3]; として, for( int i=0; i<3; i++ ){ Vec の入力処理 } みたいな話でしょうか? あとは,せっかく内積計算の関数があるので schmidt() や normalize() で使うとか. 気になる細かい点は ・0での除算チェックを入れた方がいい ・normalize()が正規化処理をしていないので名前はnorm()とかの方が合ってるかな? とか. [追記] ・同じ引数で関数schmidt()を複数回呼んでいる → const float schmidt_result = schmidt( xxx, y...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: RPGについて
返信数: 5
閲覧数: 653

Re: RPGについて

●Cでやる
利点:実装できれば自由度高い
欠点:全部自前で実装する手間
欠点:絵や音を用意しないとだめ

●ツクール
利点:GUI上で設定→動く 手軽さ
利点:用意されている絵と音でよければそのまま使える
欠点:本当にやりたいこと がツールに実装されていないかもしれない.
   (最近のはスクリプトとかあるらしいので,いろいろやれるのかもしれませんが)
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。
返信数: 52
閲覧数: 2710

Re: 初心者です。

こういうのを使うのは違いますかね? >「この別解のどこに問題があるんだ!!」と力説されても >誰も問題だと言ってませんよね。と返すしかない。 危険,罠がある,拡張性がどうの と指摘されていますが. あと,差し挟んだ時期,という点でも一度棄却された後,解決後に話をしているように見えます.(たまたまかもしれませんが) 素直な実装方法が否定されたままでは誤解を招くログになりそうかな?とか思うのですが,とりあえずやめます. [やめますとか言っといて最後に追記] じゃんけんのルールを説明するときに,{グー,チョキ,パー}で三角形を描いて,隣接間の勝敗関係を矢印とかで描きません? 相手の手が自分の手から見...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。
返信数: 52
閲覧数: 2710

Re: 初心者です。

うまく伝わらないですね……(私の文章はいつもですね.ご迷惑をおかけします) このスレッドでやっていることがそもそも >共同作業や大きなプログラム ではないし,それを想定した類のものでもない と私は見ているのですが,違うのでしょうか.  将来どうするかはともかく,このスレッドの作成目標は「じゃんけん」であって,  そのコードを流用なり発展させて何か別のXXXを作ろう とかいう話はない.  だから,じゃんけんの実装方法を話している.  「その範囲内では」,拡張性も保守性もコードの応用性云々も不要. と言っているだけなのですが,認識が間違っているでしょうか. 繰り返しになりますが,今回やっているのは...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。
返信数: 52
閲覧数: 2710

Re: 初心者です。

将来高度なものを作るのだとしても,なんで最初の練習的な今回の問題に対して示されただけの方法を 将来にわたって拡張保守して”全く別のソフトを作る”話が前提になっているのかまるで理解できないところです. この時点から既に考えられるすべてのルールを網羅できる方法(後出しされてくる例が既にじゃんけんの拡張とは程遠いと見える)を考えないとダメなの? (将来の拡張範囲の想定なしに拡張性の有無だけを言うならifで羅列しとくのが上策ですよね) 方法自体は ・仮にルール拡張するとしてもある(素直なルール拡張の)範囲内で拡張性(一般性,かな?)があること対しては No.32の方が示されている ・引き算.何も難しい...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。
返信数: 52
閲覧数: 2710

Re: 初心者です。

このスレッドって,まずは簡単なものとしてじゃんけんを題材にやってみようという雰囲気なのだと思うのですが.
(ほぼ初めてのプログラミング,というか)
作るべきものが「じゃんけん」に完全に決まっている中で
全組み合わせをifで羅列するのではない,ほんの少しだけ難解な(決して理解不能なレベルではない)別解を示したにすぎないのに
それに対して問題に特化しすぎてるとか拡張性だとかを持ち出すのはさすがにちと場違いではないかと……
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 初心者です。
返信数: 52
閲覧数: 2710

Re: 初心者です。

ただの屍のようださんの方法は十分ありだと思いますよ.
(並びをループさせると法則性がある際によくやる感じの方法ですよね)

#私も別の方法を考えましたよ(冗談)
 グー,チョキ,パーをそれぞれ 3次元正規直行系の基底ベクトルで表して
 プレイヤの手とCPUの手の外積で判定したらどうですかね.右ねじか左ねじかで勝敗がわかるという.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタ課題
返信数: 3
閲覧数: 606

Re: ポインタ課題

(もう一方のスレッドの方もそうですが)
・課題であれば 出された文章をそのまま提示してはどうでしょうか.
>printf(&a[2])を実行せよ
 とか,わりと謎の要求がなされていますが,本当にそんな内容なのでしょうか?
・仮に,あなたが誤植無く課題内容を書いているのだとして…
 やれといわれている内容は至極単純なのですから,とりあえずやってみたらいいのではないかと.
 何が障害となっているのですか?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 課題
返信数: 25
閲覧数: 2488

Re: 課題

眠れないので覗いてみたらなにやらみなさん手厳しい様子. しかし,そもそも 何が わからない状況にあるのでしょうか? というのが不明ではありますね. 求められている内容は  変数を宣言(定義)する→表示する だけであり, >考え方 といわれても何を求めておられるのか不明で答えようがない気がします. 手順を示そうとしても (1)main()関数を用意する (2)宣言しろと言われたものの宣言を追加する (3)表示するコードを追加する(おそらくprintf()か何かで) だけになってしまいますし…… #例えばこの手順で言えばどこで行き詰っていますか?(&それはなぜ?)みたいなのがわかれば  どうにか回...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: C言語で画像を平滑化、エッジ抽出を行うプログラムを作成
返信数: 3
閲覧数: 4426

Re: C言語で画像を平滑化、エッジ抽出を行うプログラムを作成

とりあえず平滑化の箇所を見ましたが
ひょっとして,配列の添え字が,幅方向と高さ方向とで逆になっていませんか?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ガウシアンフィルタ
返信数: 2
閲覧数: 12057

Re: ガウシアンフィルタ

>計算後のカーネルサイズ内での重み総和が1とにならず,画像全体が暗くなってしまいます。 というところまでわかっているのであれば,重み総和を計算して正規化すればよいのではないでしょうか. 計算内容まで見ていませんが 21行目のmaskが各画素にかけている重みであろうと見受けます. ・変数 sum_weight を追加 ・13行目あたりに画素位置(i,j)毎の初期化 sum_weight = 0; ・22行目あたりで sum_weight += mask; として,画素位置(i,j)の計算に用いたmaskの総和を計算 ・30行目を m_ImgMask [j] = edge_mask / sum_w...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 激論中の文字列リテラル
返信数: 34
閲覧数: 3480

Re: 激論中の文字列リテラル

なるほど,確かに上側だと文字列コピーが発生する点を問題視するときに 下側のメリットがありますね.
ありがとうございました.

コード:

const char * const str = "Hello!!";  //下側的な書き方を使う場合でもこう書かない場合,
const char *str = "Hello!!";  //変数str(のメモリ)まで使いまわす予定,ということか.
char *str = "Hello!!";  //なら,これだと,変数strを 変更可能な対象 を指すために使いまわす予定,か.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 激論中の文字列リテラル
返信数: 34
閲覧数: 3480

Re: 激論中の文字列リテラル

ところで,ほとんど関係ない話なのですけど char str[] = "Hello!!"; char *str = "Hello!!"; の2つの書き方に関してですが,実用上, 上側と下側とで,メリット/デメリット とか(使い分け というか)あったりするのでしょうか? (何か私は上側でしか書いたことが無いような…?) >usaoさんはクエスチョンマークに対してそういう認識だったんですか????? たしかに…煽ってる感じにも取れなくもないような…? うーん,仮に私を煽る人がいらっしゃった場合には,  usaoさんはクエスチョンマークに対してそういう認識だったんですかwww????? くらいやっても...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 激論中の文字列リテラル
返信数: 34
閲覧数: 3480

Re: 激論中の文字列リテラル

「XXXさんの書き込みはどうしても攻撃的に見えちゃう」とかまぁ私にもあります(!)し,仕方ないことかと思いますけど.
非表示エリア
この非表示エリアを表示するには、登録し、ログインする必要があります。
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 激論中の文字列リテラル
返信数: 34
閲覧数: 3480

Re: 激論中の文字列リテラル

>問題なのは、printfは引数を変更する仕様ではなく、実際はxは変更されないのに、「xは変更されたままです」と書いたことです。 >それをusaoさんが指摘しただけだと思います。 単にこれだけのことなんですけどね. #この件については「リテラルがどうの」とは関係なく,向こうのスレッドで話すべき内容に思いますが,  こっちにレスが来てしまっているので,ここで返答しておきます. 「&xを渡した先の関数でxの値を変更する」ことの例として, なぜ「実際には変更しない」関数を「わざわざ選んで」書いてるのか本当に到底理解しかねます. 相手が初学者であれば,なおのこと,なるべく混乱や誤解を招かないような単純...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタについて
返信数: 22
閲覧数: 1805

Re: ポインタについて

>2.printf("%d\n",&x);
>仮引数が2つあります。よって、
>関数呼び出したときにchar変数列に第一引数のコピー、int型ポインタに第二引数(xのアドレス)のコピーが作成されます。
>関数終了時に仮引数は削除され、もとの"%d\n"に影響はないですが、アドレスによって参照されたxは変更されたままです。

誰も触れてないけど これでxの値が何か別のものに変更されるとは思えないのですが??
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 激論中の文字列リテラル
返信数: 34
閲覧数: 3480

Re: 激論中の文字列リテラル

>初学者にたいし、説明足らずでそのように説明したとしても、そんなに的外れではないのかと。 「変更できない」と覚えてしまうのは本当にその問題に直面した時に「あれ?」ってなるので困るかもですが 「変更できないものとして」コーディングする(ようにしましょう)という感じかなぁ? ただ,そういった”断言したしない”よりも, なんというか,質問者の質問内容とあまりにもかけ離れているという点の方が 適切でない度(?)が高いような. >未定義である(規約)->書き換えるコンパイラの存在もある(事実)->変更できないは誤り(結論) うーん,私的には↓こうです.間の事実は不要. 未定義である(規約)->変更できな...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 頭文字Eの名前だけ表示させたいです。
返信数: 3
閲覧数: 450

Re: 頭文字Eの名前だけ表示させたいです。

printf() のとこの \n が全角になっているようです.
コードでもそうなっていたら直してみたらどうでしょう?
(一応そのままでも
 Eluza¥nEmy¥n
 と表示されましたよ)

#かぶったけど そのまま投稿しちゃう
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタについて
返信数: 22
閲覧数: 1805

Re: ポインタについて

「実際にどうなるのか」については置いといても,
>ボーランドC++5.5なら警告すら出さずに通してくれます。エラーにもなりません。
これって,ご自身で 「なぜ エラーになる のか」 という課題とやらを出してることに対して矛盾してますよね?

本題については 私も
>ISLe さんのNo: 8の説明が一番明確だと思います
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 激論中の文字列リテラル
返信数: 34
閲覧数: 3480

Re: 激論中の文字列リテラル

規格上 未定義 なのだとすれば… >書き換えるコンパイラがあるのだから、文字列リテラルは変更できないというのは誤りである。 ”書き換えるコンパイラがあるから” ではなく ”未定義なのだから” では? 動作を定義されてないんだから,書き換えるかもしれないしエラーで止まるかもしれないしそれ以外の何かが起こるかもしれない. なので「変更できない」「エラーになる」等と言い切ることは誤り. (「C言語」について話しているときに「私の環境では云々だからどうの」と言うことにまず意味が無い.) >書き換えられないコンパイラがあるのだから、すべてのコンパイラでも動くように文字列リテラルは変更できないと覚えた方が...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: main関数以外が作れない
返信数: 11
閲覧数: 1434

Re: main関数以外が作れない

とりあえず最初はこんなのを実装してみるといいんじゃないでしょうか //str1で先頭位置が示される文字列と //str2で先頭位置が示される文字列とが //先頭からstr_length文字(byte)の範囲で一致しているかどうかを調べる bool StrEq( const char *str1, const char *str2, int str_length ) { ... return (一致していたらtrue, そうでないならfalse); } //用例 int main() { const char StrA[] = "_Hello"; const char StrB[] = "Hel...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: main関数以外が作れない
返信数: 11
閲覧数: 1434

Re: main関数以外が作れない

例えば,
・文字列が "AAAAA"
・探して置換するパターンが "AA"
だった場合,どういう結果になれば良いのでしょうか?
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: キーボードの取得関係
返信数: 55
閲覧数: 2942

Re: キーボードの取得関係

なんでこのタイミングで私の名前が飛び出してるのでしょう…?
#まぁ自分より明らかに技量(?)が上の方と混同されてるとしたらある意味光栄ではありますが

言いたいことを言うのにわざわざ別の名前使うことに意義(必要性とでもいうか)を感じませんけどね.
例えば私だったら「usao」という名前で言いたいことを言えば済むわけで.
本名で書いているわけでもないのだし.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: (緊急!)画像描画、手順の仕組み
返信数: 3
閲覧数: 594

Re: (緊急!)画像描画、手順の仕組み

・21行目の型名が間違っているように見える→本当に実際実行できているのか?
・類似トピックとやらとコードの構造や変数名レベルで酷似している
・そしてその類似トピックの雰囲気が(略

…と,なにやら怪しい雰囲気を感じてしまったので私はこのトピックから退散しときます.
本当に別の方なのかもしれませんが.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 多次元配列を用いたプログラム
返信数: 12
閲覧数: 1121

Re: 多次元配列を用いたプログラム

何箇所か行末のセミコロン(;)がないので全体を見直してみてはいかがでしょうか.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 1次元配列を2次元的に使う方法
返信数: 13
閲覧数: 948

Re: 1次元配列を2次元的に使う方法

「メンバイニシャライザ」でどうでしょうか.検索ワード.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: クォータニオンで指定した自機の回転から、追従するカメラの回転を指定したい
返信数: 30
閲覧数: 3937

Re: クォータニオンで指定した自機の回転から、追従するカメラの回転を指定したい

やりたいことが >#世界 に対しての 自機 の姿勢が回転行列R1で表されているときに >自機の姿勢を更新したい.その際,その回転差分量(?)R2を,自機に固定された座標軸で考えたい. だということで合ってるようなので… >ベクトル2つの合成で3次元の回転を表すのは > x' = (q1 * q2) * x * (q2^ * q1^ ) 私のイメージとしては(前述のとおり,使ったことないのであってるのかどうか自信ないですが…), q1 : 現在の自機の姿勢を表す四元数 q2 : 今回のフレーム(?)での操作入力による回転量(を,自機固定座標系で記述した)の四元数 という感じです. で,上式の今回...
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: (緊急!)画像描画、手順の仕組み
返信数: 3
閲覧数: 594

Re: (緊急!)画像描画、手順の仕組み

case VIEW_GRAPH://閲覧状態
のとこに
break;
が無い とかそういうのかな??

あと,line107がカウントが増えていないように見える.
by usao
6年前
フォーラム: C言語何でも質問掲示板
トピック: 2冊めの本について
返信数: 45
閲覧数: 2623

Re: 2冊めの本について

まとまっていて良いのではないでしょうか.
CPUの手が毎回同じ順で出てくるようならsrand()をmain()の先頭あたりに入れておくとよいかと思います.

>・win/loseは結果を戻り値にすれば、ポインタ参照にする必要はありませんね。
commandも引き渡す必要はないですね.
main()側でプレイヤが出した手が何だったのかという情報を使わないので.

#かなーりどうでもいいことですが,個人的には
 ジャンケン… → ポン!
 YOU WIN!!
のように表示したいところ.(可能な範囲で演出にもこだわるw)

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