検索結果 1549 件

by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5635

Re: 2Dの衝突判定がキッチリと出来ない、、

んー,だから,あなたの場合において調べるべき事柄を描画して見ましょうよ. playerが上に進む場合は云々~の結果として そのplayerの移動先に関して壁とぶつかるかどうかを判定するために「配列のどこどこの要素を調べることになったのか」という結果に不安があるなら,その結果を可視化してみればどうですか. おそらく,配列の1要素が表示上は16x16[pixel]の領域に相当するんだろうから, "player"の当たり判定領域と,調べることになった配列要素群に相当する領域とを描画すれば 「調べるべき配列要素を列挙する処理」がまともに動いているかどうかわかるでしょ. 何なら,「壁に当たる」と判定され...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4442

Re: Win32のCSV読み取りで文字化けする理由が分かりません

#む? 貼ったコード内の改行がいくつか失われた模様
オフトピック
プロジェクトの設定を「マルチバイト文字セットを使う」側にして
「文字列をcharの配列で表す」という世界でやるという選択肢だってありだと思うけど,いかんのかな.
OpenCV使ってるとファイル名とかにconst char*を求められるから,そうすることが多いんだけど.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4442

Re: Win32のCSV読み取りで文字化けする理由が分かりません

(1)VisualStudioでWin32プロジェクトを新規に作る → ビルドするとウィンドウが出るコードが生成される (2)てきとーに外部変数に wchar_t WStr[100]; とか追加 (3)_tWinMain()のど頭に以下を記述 { setlocale(LC_ALL, ""); FILE *fp = fopen( "Test.txt", "r" ); char Buff[100]; fgets( Buff, 100, fp ); mbstowcs(WStr, Buff, 100); fclose( fp ); } (4)ファイル Test.txt は メモ帳 でANSIで保存.内...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4442

Re: Win32のCSV読み取りで文字化けする理由が分かりません

オフトピック
これは完全に善意のアドバイス.

他の場でこの内容の質問を行う際には,
「答えが欲しいのであって,答えにたどり着くための方法を教えてもらいたいわけではない」旨を最初に断った方がよい.
(個人的な偏見(?)では,プログラム系の質問では,このような場合にはデバッグ方法に関する回答がなされる率が高いので,同じことになることが危惧される)

また,同一の内容を複数の個所で質問すると
「マルチポスト」とだけ指摘されて終わってしまうことになりがちなので,
ここのURLを提示して「別の箇所で質問したけども,らちがあかなかった」旨を述べた方がよい.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4442

Re: Win32のCSV読み取りで文字化けする理由が分かりません

そのような考えをお持ちなのであれば, 自身のコードを提示する時点で,コードの各所に関して「何でこのように書いているのか」の理由を明記した方がよろしいのでは? あなたのコードを見た人が > なんで mbstowcs が 3つもあるの? とかならないように. また,掲示板を見る他の初心者のことまで気に掛けるのであれば, 回答に不明瞭な点がある場合には,推測とか察するとかで終わらせずに, その時々でその回答をした相手に不明瞭な点を問うとよいのでは. (あなたの推測が正しくて話がそのまますんなり終わってしまったとしたら,まさにあなたが危惧する「初心者に理解できないログ」だけが残る事態になるのだから) ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4442

Re: Win32のCSV読み取りで文字化けする理由が分かりません

要するに,
【自分ではデバッグ作業とか一切やりたくないんだからお前ら勝手にバグ見つけて俺に教えやがれ.無料で.】
という主張ですよね.

理由を見つける方法の話とかいらねーから,最初から理由だけをよこせ と.
じゃあ,他者はあなたにその理由を教えるために,どうやってその理由を見つけるんだろうね?
バグの理由を見つけるのには一般に絞り込み作業が必要だと思う.
理由だけをよこせ という主張は,他人に絞り込み作業をやらせていることに他ならないと思うんだが.
でもそれは相手が勝手にやったことだ!と.

ぐだぐだ言っているけど,ただのクレクレ君ですやん.くだらねぇ.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5635

Re: 2Dの衝突判定がキッチリと出来ない、、

オフトピック
どこをミスっているのかがわからないのは,処理を大きい塊で書いているからでは.
やるべき事柄をもっと小さい要素に分解して見てはどうでしょうか.
例えば,

・何もなく移動できた場合の,"PLAYER"の当たり判定(ここではPixel座標系(?)における矩形範囲か)を算出する処理
・Pixel座標系における矩形が与えられたとき,この矩形を包括するのに必要なマップのマスを列挙する処理

といった基本処理を書いて,それぞれをちゃんとテストする.
そうすれば,処理のどこの段階にミスがあるのかを絞り込みやすくなる.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4442

Re: Win32のCSV読み取りで文字化けする理由が分かりません

オフトピック
> CSVファイル読み取りなどの仕事でも使う機会の多いコードの解説サイトとか

個人的には,「C言語でCSV読む」機会とかまず存在しない感だが……

仮に,世間一般に於いてはそのような機会がすこぶる多いのだとしても,
「よーし,CSVファイル読んじゃうぞー」となった時点でやるべきことは明らかだし,何か特別難しいアルゴリズムとかが必要な話でもないので,解説に値する事柄が乏しい題材なんじゃないかな.
(Stateパターンの話で例としてCSV読込を取り上げているものは見かけたことはある)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32のCSV読み取りで文字化けする理由が分かりません
返信数: 31
閲覧数: 4442

Re: Win32のCSV読み取りで文字化けする理由が分かりません

#14の言い回しは,あれっすよ.TV番組ネタ. そもそもプログラマは教育者じゃないし,ましてボランティアで教育活動をすること求められる筋合いは無いんじゃないかなぁ. (何か,東京オリンピック的な考えですね.) まぁそれはそれとして…… 苦言的な(?)ことを言えば, ステップ実行という調査手段が得られたなら 「TextOutの出力結果を見て異常だったら,真っ先にTextOut時点でのデータの中身をチェックするっしょ」 というのは,なんというか,一般に期待される事柄だとは思うのですよね. (そして,当然ながら,中身がおかしいならばその原因追及を行うことも) 要するに, > 変数の値の変化を丁寧に見...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的
返信数: 8
閲覧数: 911

Re: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的

奇遇ですね.私もです.

この様子だと,素人解釈は邪魔でしょうし,
計算グラフなるものを使う分野の専門家が現れるのを待つしかないですね.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的
返信数: 8
閲覧数: 911

Re: プログラムの書き方:『計算グラフ』的と非『計算グラフ』的

たしかに「計算グラフ」でググるとそれっぽい情報は見つかるが,
ここであなたが求めている
> 『計算グラフ』的なコーディングの仕方
っていうのは,一体どういうものを想定しているのか,何かもうちょっと具体性を持った事柄を言えないのですか?

例えば,各々の演算子を全てstd::unary_functionやstd::binary_functionのようなファンクタで実装したならば
> 『計算グラフ』的
なる事柄の要件を満たすのですか?

コード:

std::cout << cos(x)*y + log(y) * x
と素直に実装したならば,これは
> 非『計算グラフ』的
に該当するのですか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 関数に配列のアドレスを渡すという考え
返信数: 13
閲覧数: 894

Re: 関数に配列のアドレスを渡すという考え

後半の方は何をおっしゃっておられるのかよくわかりませんが… void func(int arg[]){ ... } は void func( int *arg ){ ... } と同じ. 関数func内の arg[0] = 10; は *( arg + 0 ) = 10; と同じ. func( a ); なる呼び出しは, func( &( a[0] ) ); と同じ. 纏めると, void func( int *arg ) { *( arg + 0 ) = 10; } int main() { int a[] = { 0,1,2,3,4 }; func( &( a[0] ) ); } といった...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIのTextOutで変数を表示する方法が分かりません
返信数: 13
閲覧数: 1329

Re: Win32APIのTextOutで変数を表示する方法が分かりません

オフトピック
stringstreamとかじゃいかんのだろうか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム配布時、CSVが詰まったフォルダをなんとかしたい
返信数: 7
閲覧数: 760

Re: ゲーム配布時、CSVが詰まったフォルダをなんとかしたい

オフトピック
暗号化してどうの…といっている時点で,少なくともユーザがデータを差し替えすることは考慮していないだろうし,
そのデータを(配布時点においても)外部ファイルからの読込にしておく意味がどれだけあるのか?

…とか考えると,
CSVのような簡単な構造のデータであれば,
ソースコード化してしまうという手もあるような気がする.
(exeと切り離しておきたいならDLLにでもしてしまえば)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体が意味をなしていない…
返信数: 7
閲覧数: 486

Re: 構造体が意味をなしていない…

あるファイルに(graph.hかな)に
ch_t って突然書いてみたら,
コンパイラに「ch_t ってのは何だよ? しらねーよ」と言われた,という感じですか.

> <struct.h>
というヘッダファイルを一体何のために書いたのか? どう使うつもりなのか?
というあたりを詳しく説明できませんか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数発生のアルゴリズム
返信数: 5
閲覧数: 575

Re: 乱数発生のアルゴリズム

任意の分布を指定できるものとなると難しそうですね.
(私が書いてるような方法論だと,確率密度関数そのものじゃなくて,累積分布を指定してもらわないとダメな形になりそうですね…)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数発生のアルゴリズム
返信数: 5
閲覧数: 575

Re: 乱数発生のアルゴリズム

実際の実装というのはわかりませんが, C++のdistribution系のソースを見るとかできれば何かわかるのかも?? 自分が思いつく方法としては, ある特定の分布を対象にした実装をするのであれば,積分区間を解くには 「例えばある程度の荒さのヒストグラム的なものを用意しておいて,そこから初期値を決定し,  後はNewton法みたいなのを使ってたかだか数回iteration計算すれば十分」とかなんかそんな感じのを試すかも? (この時点でもう既に遅いという話もありそうですが…) 分布が2次元でも,1次元の問題×2に分割するんじゃないでしょうか. (2次元の分布をスライスした断面図の面積を確率とする...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で迷路の作成がわかりません
返信数: 2
閲覧数: 412

Re: c言語で迷路の作成がわかりません

> 動かす物体
が,動こうとする予定先の格子をチェックし,
移動不可能な格子なのであれば物体を動かさなければ良いのではないでしょうか.

 移動予定先 = 現在位置 + 移動量

という計算が自然かと思うのですが,この辺の事柄に関して
keyborad関数内の変数i,jの意味が不明なので,そこを見なすとよいかもしれません.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 乱数発生のアルゴリズム
返信数: 5
閲覧数: 575

Re: 乱数発生のアルゴリズム

> 任意の(指定した)分布p(x,y)から乱数を発生する
…の意味がよくわりませんが,
何らかの偏りがある乱数をつくりたいという話でしょうか.

であれば,素人考えでは…
0~1の範囲の一様乱数Xを(標準のrandとかで)得られるとき,
確率密度関数の積分値がXになるような積分区間を解いて,その区間値を乱数の結果とすればどうかな,と.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 連立方程式を解くプログラムを多元線形連立方程式にするには
返信数: 20
閲覧数: 3650

Re: 連立方程式を解くプログラムを多元線形連立方程式にするには

(同一人物なのか,たまたまタイムリーに並列的に存在しただけなのか定かではないですが)
「for」に関してこちらのトピック等を参考にすべきでしょう.
viewtopic.php?f=3&t=20298
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: ビンゴ【初心者です】
返信数: 9
閲覧数: 736

Re: ビンゴ【初心者です】

・処理を必要な回数だけ行うようにしてみてはどうでしょう.  例えば,  穴をあける とか 斜め方向のビンゴ判定 とか  何度も繰り返す必要はないですよね.  ビンゴの判定自体,穴が開かなければやる必要ないですし. ・途中で止める方法が無いように見えます.ビンゴになるまで終われません.  例えば負の値を入力したら中止とか,そういうのがあってもよいのでは. ・あとは初期の表作成の方法の工夫とかですかね.  現在の方法だと,運が悪いと永久に終わらないかもしれない(!)ですよね.  所定の手順で必ず完了するような方法にしてみてはどうでしょう. ・動作面ではないですが,変数名が意味不明なのも改善したいと...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1716

Re: Win32APIでの画像のダブルバッファが分からない

DeleteObjectを無闇に入れるのではなく,やるべきタイミングで必要なだけやりましょう.

DCに選択されているオブジェクトは削除できないはずなので,
DeleteObjectで削除するには,先に,DCに別のオブジェクトをSelectObjectして,削除したいオブジェクトの選択解除を行う必要があったと思います.
そのために,一般にはSelectObjectの戻り値を覚えておいて,最後にそれを選択し直す,ということを行います.
(この辺はGDIを使っているコード例を検索とかすれば見つかるはず)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1716

Re: Win32APIでの画像のダブルバッファが分からない

2重ループ内だけ見ても70回LoadImageが走るわけですが,こういうことをするなら
その分(70回)のDeleteObjectが必要になりますよね.
そこらへんのところは大丈夫な感じですか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1716

Re: Win32APIでの画像のダブルバッファが分からない

ものすごーく雑なイメージをコードっぽく書くとこんな. //デバイスコンテキストの雑なイメージ struct DC { HBITMAP m_hBmp; HPEN m_hPen; ... }; //DCへBitmapを指定する関数 HBITMAP SelectObject( DC *hDC, HBITMAP hBmp ) { HBITMAP hOldBMP = hDC->m_hBmp; hDC->m_hBmp = hBmp; return hOldBMP; //直前に指定されていたBitmapのハンドルを返す } //描画関数 void Ellipe( DC *hDC, ... ) { hDC->...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1716

Re: Win32APIでの画像のダブルバッファが分からない

> SelectObjectでは、画像サイズを採取するので

「採取する」の意味合いがよくわかりませんが……

SelectObject(hCDC, hbmp);
は,
hCDCを介して(今後)操作する画像領域はhbmpですよ,っていう指定をしている.

以降,Ellipse( hCDC, ...) とかやれば,hbmp(が指すBitmap)に楕円が描かれるし,
BitBlt( hDstDC, ..., hCDC, ... ) とすれば,hbmpの内容を,hDstDC(を介して操作する対象Bitmap)に転送する.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 計算するプログラムを別の表現で表したい
返信数: 2
閲覧数: 1012

Re: 計算するプログラムを別の表現で表したい

この人,他所でも同様の話を延々とやってるけど,何か得るものがあったんでしょうかね? 「方程式」を,CやC++ではこの人のコードみたく(a *x1*x1 + b * x1 + c == 32 とかいう形で)書くことができないから 配列を使うことで表現する,そのことが何でそんなに気に入らないのか理解できないのですよね. (係数群を配列に格納したとして,そのコード内においてはそのデータが「方程式」として扱われるなら,何の不自由もないと思うのだが.) そして今度は繰り返しアルゴリズムも嫌だと. > Newton法など の数値計算アルゴリズムを実装する際には,一般に,iteration回数に制限をかけら...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1716

Re: Win32APIでの画像のダブルバッファが分からない

「バックバッファ(裏画面)に描画して,その内容をフロントバッファに(1回のBitBltで)転送する」をしたいのですよね. であれば, バックバッファの画像領域サイズはフロントバッファ側のサイズと同じサイズで用意する必要があると思うのですが. バックバッファ用hCDCの作り立ての時点: > hCDC = CreateCompatibleDC(hdc); では,hCDCで操作できる画像領域というのは1x1のモノクロ画像になっているので,これでは用途に適さないから, (1)フロントバッファ側と同じサイズのBitmapを作成して (2)hCDCにSelectObjectでそのBitmapを指定する 必...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIでの画像のダブルバッファが分からない
返信数: 19
閲覧数: 1716

Re: Win32APIでの画像のダブルバッファが分からない

hCDCにSelectObjectで指定されている画像は mapchip_grass.bmp 由来で,サイズがきっと32x32.
32x32しかないものをhdcに転送したならば,チップ1個(32x32サイズ)だけ表示されるのでは.

(本題ではないですが,ループ内で読み込んでいる画像が激しくリークしていそうな予感)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクトに関する変数の初期化について
返信数: 4
閲覧数: 694

Re: オブジェクトに関する変数の初期化について

「初期化」を行うのは,それをする理由があり,初期化を行うタイミングにも理由がある.

> 初期化してないオブジェクト
という物(状態)を{わざわざ,あえて,etc}作っているなら,そこにはそれなりの理由があるハズ.

> 初期化系の関数
なんてものを作って,そこで初期化処理をまとめているのにも,やはり理由がハズ.


> 私(使い手)次第
という言葉の中に,しっかりと理由が入っていれば良いのではないでしょうか.

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