検索結果 1881 件

by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: DXLibのDrawRotaGraphF()関数で画像が描画されない場合がある
返信数: 2
閲覧数: 1692

Re: DXLibのDrawRotaGraphF()関数で画像が描画されない場合がある

Block::sprite の初期化をなぜそんな形に書くのか?という 意図/理由/効能(?) みたいなのがわかりませんが…
その初期化が成されるタイミングの面に問題はないのでしょうか?
(そのライブラリには全体的な初期化みたいなのが必要だったかと.それより前のタイミングになってたりしませんか?)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: PAD/キーボード入力によるボタンの実装
返信数: 27
閲覧数: 8183

Re: PAD/キーボード入力によるボタンの実装

オフトピック
「お前の話はズレすぎている.そういう話をしているのではない」とか
「正直話のレベルが低すぎて応答するだけでも面倒だから無理して入ってくるな」だとか
そういう場合には遠慮なく言ってください.
そういう反応を割りと良くもらう人なので大丈夫です.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: PAD/キーボード入力によるボタンの実装
返信数: 27
閲覧数: 8183

Re: PAD/キーボード入力によるボタンの実装

方法2に関する > (GUI コンテナとして実装する場合、invisible なオブジェクトであるのに GUI 関連として実装するのはどうなのか...逆に関係のないものとして実装するとそれはそれで実装が分散して嫌な感じ...) という話の内容がよくわからない. (そもそも私が不勉強なのか「GUIコンテナ」なる単語の意味がいまいち不明.標準的に通じる言葉なの?) 「ボタンの集合もまたGUIなのだ」というCompositeパターン気味な(?)話では何が{実際に問題になる/しっくりこない/嫌/etc}なのか? GUIって入れ子な階層構造になってるのが「一般的」な気がしますが. いわゆる Window...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: PAD/キーボード入力によるボタンの実装
返信数: 27
閲覧数: 8183

Re: PAD/キーボード入力によるボタンの実装

> 私が聞きたいのは実装の具体的な内容ではなく ということだが,行われているのはかなり具体的な実装な話に見える… という観点(実装の違い)で見れば, 方法1と2の違いとは「グラフのノード自身が連結(枝)に関する情報を保持するか否か」と見える.見当違いであろうか? 連結リストの実装で例えるならば struct Node { Data data; //リスト構造で保持したいデータ Node *prev; //前のノードを指す Node *next; //次のノードを指す }; みたいなのが方法1の話で, std::list<Data> とするのが方法2の話,という感じ.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: マウスカーソルの座標を入手
返信数: 8
閲覧数: 3679

Re: マウスカーソルの座標を入手

オフトピック
> なぜ、最新版である VisualStudio2022 でないのか ?
> PC のスペックが低くて、VisualStudio2022 が動かない、というのであれば、その PC は、プログラミング初心者がゲームを作るのには向かない。

個人的には全然そんなふうには思わないが……
何かしら最新版じゃなきゃやれないことをやるのなら違うだろうけど.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: PAD/キーボード入力によるボタンの実装
返信数: 27
閲覧数: 8183

Re: PAD/キーボード入力によるボタンの実装

話の前提がよくわかんねぇけど,要は,平面上に点群があるときに,ある点から見て最も「右隣りな」点っていうのはどれだろう? っていうだけの話に見える. であれば,点間の相対的な座標関係から「右隣っぽさ」をてきとーに評価し,閾値以上の評価値を持つ最もそれっぽいやつを右隣だということにすれば良いのでは. で,その演算を毎度やるのが重いのであれば,どこかのタイミングで求めた結果を覚えておく感じで.例えば, > 上下左右のボタンをポインタ とかいうのに結果を記録しとけばよい. --- どうでもいいけど, > 一般的な実装方法なのでしょうか? みたいな問い方は,非常に敷居が高いものになるんじゃない? 「コレ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: マウスカーソルの座標を入手
返信数: 8
閲覧数: 3679

Re: マウスカーソルの座標を入手

> VisualStudio2019で

だけでは情報不足.
どんな言語でどんなプロジェクトの種類でどんなライブラリを使ってるとか,そういうの次第かと.

逆に言えば,そういった言葉と一緒に「マウスカーソル 座標 取得」みたいな検索ワードでググれば何かしら見つかるんじゃない?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 検索機能ができません
返信数: 4
閲覧数: 4412

Re: 検索機能ができません

オフトピック
何やら別の質問も「テキストファイルで寄付がどうの」とか言ってやがるな.
大流行なのか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 検索機能ができません
返信数: 4
閲覧数: 4412

Re: 検索機能ができません

まぁそれはそれとして,取っ掛かりとしては, 【ある固定の「寄付コード」についてのみ「donation.txtファイルから特定の寄付の既存の数量を照会する」ことができるプログラム】 あたりを作ってみることから始めてはどうですか? 今書いている scanf だの strcmp を用いたif だのいうのはまずは忘れて,例えば【紹介すべき「寄付コード」とは "CT" である!!!】っていうのを作る,っていう. (それができたら 固定 にしていた部分を 入力されたもの を使う形にするだけで終わる) --- 前記「取っ掛かり」を作る時点で躓くのであれば,その躓く内容についてのみをどこぞで質問することもでき...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 検索機能ができません
返信数: 4
閲覧数: 4412

Re: 検索機能ができません

あなたの文面だけを情報源としている我々には > 寄付コードを使ってdonation.txtファイルから特定の寄付の既存の数量を照会するオプション とかいう何かが具体的にどういうものなのか?を知る由もありません. もちろん,あなたが書いてみたというコードに関しても,求められている物にたいしてどれだけ近いのかも不明です. せいぜい,fclose が怒涛の勢いで書かれているのをぱっと見した時点で「コーディングに関してはほぼほぼ何もわかってなさそうだな」くらいのことを想像できるだけです. 【学校で尋ねた方が早いでしょう】というのが,現状では最も真摯なアドバイスだと思います. というのは,このような「他...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 勉強の計画について
返信数: 8
閲覧数: 3632

Re: 勉強の計画について

> 貴重なアドバイス

っていうのはどの部分のことなん?
コレ↓だとしたら「計画が年単位になってしまいます」という点が何も変わらんし…??

> おとなしく高校に 3 年間通えばいいだろ。理系のコース選べよ。
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dグラフィックス技術について。
返信数: 8
閲覧数: 2872

Re: 3Dグラフィックス技術について。

オフトピック
そういや,大昔にこんなのやってましたね.
(そのとき貼ったソースは「zip がどうの」とかで失われているようだが)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dグラフィックス技術について。
返信数: 8
閲覧数: 2872

Re: 3Dグラフィックス技術について。

> Windows APIで、ウィンドウを作成し、…(中略)… 可能な気がしてきました。

そういうことを一度はやってみると良いだろう,と思います(何ならワイヤーフレームでも).
実際の(本番の?)3DなAPPを作る際には何かしらのライブラリを使うとしても.

(理由は既述した通り,ライブラリを使うにしてもそのこと自体,行われる演算とかの内容を何も知らない状態でやれる話ではないと個人的に思うから)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dグラフィックス技術について。
返信数: 8
閲覧数: 2872

Re: 3Dグラフィックス技術について。

オフトピック
画像を表示する手段を用意することが厄介な場合,
表示手段自体はprintfとかでもなんとかなるかもしれません.
あるいはてきとーな形式の画像ファイルに出力する(そしてそれを画像を見れるソフトで確認する)といった形に割り切ってしまうならば,表示系も不要.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dグラフィックス技術について。
返信数: 8
閲覧数: 2872

Re: 3Dグラフィックス技術について。

というわけで,目的は「各ピクセルを何色にするか」っていうのを2Dな絵の全ピクセルについて決定する(計算する)ことですから,それを実際にどうやって計算するのか? という話(アルゴリズム)を実装すればよいです.

「レイトレーシング法」 とか 「Zバッファ法」 とかそういう話をググれば,3Dグラフィクスに関するそのあたりの処理の雰囲気が掴めるのではないでしょうか.
光源を意識した色の決定方法(シェーディング)については「スムーズシェーディング」とかでググれば,フォンとかグーローとかそういうのが見つかるでしょう.
視点の位置だとか遠近感(透視投影)だとかいう話は純粋に 算数/数学 の世界です.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dグラフィックス技術について。
返信数: 8
閲覧数: 2872

Re: 3Dグラフィックス技術について。

難易度については,何を実装するか次第でしょうけど
  • 描画できるものは三角形のポリゴンのみ
  • 使える光源は1個のみ
  • 処理速度はまぁ気にしない方向で
とかそういう制限された物であれば難易度はかなり低いでしょう.

OpenGL みたいなのを使うにしても,3Dな各種事柄を何も知らずに使えるような物ではなくて,そういった素朴な3D描画のコードであれば自前で書けるくらいの知識は必要な気がします.
(ライブラリを使うにしても,シェーダのコードを書くタイプなら,そういった演算そのものをプログラマが書く必要があるのだし)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dグラフィックス技術について。
返信数: 8
閲覧数: 2872

Re: 3Dグラフィックス技術について。

(全部CPU上でやると処理が厳しいとかそういう話を度外視するならば)可能でしょう.

少なくとも何かしら「絵を表示する手段」が必要ですよね.
で,とりあえず2Dな絵を表示するための何かしら存在するのであれば…
プログラムが扱っているデータの概念が3Dであろうが,最終的な絵というのは2Dなのですから,2Dな絵を(いろんな必要な計算をした結果として)作り出すコードを書けば良いです.
そしたらその作った絵を2Dな絵を表示する手段で表示する.完遂!

…っていう話になるかと.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 勉強の計画について
返信数: 8
閲覧数: 3632

Re: 勉強の計画について

オフトピック
> 経験者のアドバイス

を得るには,何はともあれ「経験者」の目にとまる必要があると思うので,
とりあえず「過疎ってない箇所」でやることを考えた方がよろしいのでは.

(そういう都合の良い場所があるのかどうかは知らないけども…
ここって,誰かが書き込んだ質問に対して何かしらのリアクションを書いているのはもはや数人しかいなさそうだし.)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シーンをpopしたい
返信数: 10
閲覧数: 3209

Re: シーンをpopしたい

オフトピック
結果/結論,というか,
「実際にこういう形で取り組んでみたところ,こういうところはやりやすかったけど,この点は苦労した」とか
何かそういう実経験談みたいなのが得られた暁には,それを書いていただきたい.

特に,「これこれこういうことがあるから,おまえが適当に書いてたような話だとかえって面倒なんだよ」みたいな話があったらうれしい.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 勉強の計画について
返信数: 8
閲覧数: 3632

Re: 勉強の計画について

> ゲームプログラマ ではないから, > 経験者のアドバイス にはならないだろうけども, 漠然とリストアップするよりも,必要なものを必要な分だけ学べばよいのではなかろうか,とか思う. ペーパーテストで点を取るのが目的ではなく,使うために学ぶのであろうから,漠然と「数学」を勉強するのではなくて 例えば何かしらの(ゲームな分野の)処理を想定して,そこに必要な数学的要素を学ぶ,っていう感じで. 例えば,3次元のグラフィクスを扱うことを想定するとしたら{三角関数,ベクトル}あたりはどう考えても必須であろうが,そこに「極限」とか「数列」とかいう話は多分出てこないだろう. そしたら,「極限」とかを漠然と勉...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語 住所プログラムについて
返信数: 2
閲覧数: 1818

Re: c言語 住所プログラムについて

で,ご自身で取り組む気がある場合……

そこまでクソ細かく(あなたが考える余地がほとんどないほどに)物事が指定されているのですから,上から順にやっていけば良いだけの話かと見えます.
全部一気にやるんじゃなくて,1機能ずつ追加しては確認するという形でやっていけばよいでしょう.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語 住所プログラムについて
返信数: 2
閲覧数: 1818

Re: c言語 住所プログラムについて

「宿題は自分でやってください」というテンプレな返しが欲しいのでないならば,
実際にあなたが取り組んでいて遭遇した解決すべき事柄に関する「質問」をしてください.

「何一つ自分自身ではやりたくないから,俺の代わりにこの問題に取り組んでコピペで提出できる物をよこせ」
という話なのであれば,何はともあれその旨を明記するべきでしょう.
(やってくれる人がいるかどうか?ってのはまた別問題ですが,話を明確にすることは必要でしょう.)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シーンをpopしたい
返信数: 10
閲覧数: 3209

Re: シーンをpopしたい

あるシーンが「自分の上に別のシーンを積みたい」みたいな場合,それはそのシーンの内側で勝手にやれば良い事柄なんじゃないかなぁ. そういう場合,積む物というのは自身の担う作業領域の一部を切り出したような物になるのだろうし. //概念的な疑似コード class SomeScene { private: class ChildScene { ... }; ChildScene *m_pChildScene = nullptr; public: void Update() { if( m_pChildScene ) //「自身の上に積んでるもの」があれば { if( m_pChildScene->Fin...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シーンをpopしたい
返信数: 10
閲覧数: 3209

Re: シーンをpopしたい

「解決済み」みたいなのは,ここには存在しない様子です. --- 個人的に,スタックの話は,「タイトル」とか「ゲーム」みたいな大きなシーンの流れに使うのではなく, もっと細かい箇所(例えば,複数段の選択を行うメニューみたいなのとか)の実装で活きる話かな,とか. あと,スタックに突っ込まれる側が「俺らはスタックで管理されているから~」とか知らなければならない実装形態なのであれば,苦しいように想像するなぁ. 各シーンは,自身がどこかにあるスタックに積まれる経緯と別のシーンに遷移するために行うべきスタック操作を把握している必要があるんだよね? コレ. 外側の具体実装の都合でしかないハズの話がシーン内側...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シーンをpopしたい
返信数: 10
閲覧数: 3209

Re: シーンをpopしたい

スタックで管理するのだとして,「別のシーンXXXに行く」というのが,
  • XXXをpushする
  • XXXが出てくるまでpopする
のどっちでなければならないのか? っていうのを誰が判断するのだろうか…?
とか,そういう話がもっと先に書いてあるのだろうか?(私はわざわざ確認しないけど,とりあえず先の方を見てみたらどうでしょう? ひょっとしたら,あなたの疑問点に関する説明もあるのかもですし?)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シーンをpopしたい
返信数: 10
閲覧数: 3209

Re: シーンをpopしたい

…なので,

> 2.「あなたの GameScene 実装部からどこかにあるスタックにpopさせるにはどうすればよいのか」がわからない?

みたいな状況なのであれば,スタック(あるいはそれを管理している何か)にあなたがアクセスしやすい形で実装すれば良いのだし,

> 3. 「単にpopするだけだと TitleScene に戻らない」といったような問題がある?

みたいな状態なのであれば,単純に,その話ではあなたのやりたいことを素直には実装できない,というだけのことかもしれない.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シーンをpopしたい
返信数: 10
閲覧数: 3209

Re: シーンをpopしたい

そういう話を参考にするときは,話の主たる内容 (この話で言えば,「こいうのって,スタックで管理するという手もあるよね」っていう話) だけを参考にすればよいのであって,そこに示されている特定の実装例までをもあなたのコードに無理に取り込む必要はないと思うよ. あなたがやりやすい形で,必要と思う事柄だけを取り入れればよい. そしたらそんなに「?」は出ないんじゃないかな. 例えば,そのリンク先の実装について,私は 遷移先シーンの指定がemunとか言ってる時点でなんか嫌な感じがする… こんなのだと「異なるシーンに対しては当然異なるparameterが必要になり得るのだが?」という点をどうするのかが疑問...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シーンをpopしたい
返信数: 10
閲覧数: 3209

Re: シーンをpopしたい

本当にpopすれば済む話ならばpopすればよいではないか,って話になるよ.
一体何が問題なのか? というのを具体的に述べないと.
  1. 「popとは何か」がわからない?
  2. 「あなたの GameScene 実装部からどこかにあるスタックにpopさせるにはどうすればよいのか」がわからない?
  3. 「単にpopするだけだと TitleScene に戻らない」といったような問題がある?
  4. その他?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

異なる意見/考え方 が書かれていた方が何かの参考になるかもしれないので,書いてみる. > ・引数付きコンストラクタ… 「書くのが面倒」とかそういう話ではなくて,「どうしてそうするのか?」という理由/必要性 の観点から考える事柄かと. (個人的には,本件の「敵」みたいなのは,メソッドの引数として都度受ければ済むだけの話と見えるので,この形にする必要はないと思う.) > ・インスタンスの数×ポインター分のメモリがもったいない よほど切羽詰った環境でやってるのでもなければ,その程度のメモリ節約を理由とした設計を考える必要はないんじゃないかなぁ. グローバルな何かに依存する方向に持っていくというのは,...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

なにはともあれ「必要なものだけを書く」から無意味に逸脱しないこと を心掛けると良いんじゃないかなぁ. 「こういう形にしとけば → こういうこともできるよね」 とかいう話があったとしても,その「こういうこと」をそもそもやる予定が無いのであれば,その形にすることを選ぶ理由にはなり得ない. 特に,その形にすることに相応のデメリットが存在するようであれば,そのデメリットしか享受しないことになるのだから,その場合は選ばないのが正解であろう. 「自分が今作っている物の範囲を超えた何かをもサポートできる(かもしれない)枠組み!」みたいなのを目指す意味は無い(そのこと自体が目的でないなら). 「べったり」でO...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 2 の倍数でも 3 の倍数でもないものの和を求めたい
返信数: 4
閲覧数: 8466

Re: 2 の倍数でも 3 の倍数でもないものの和を求めたい

実装する前に,「どうすれば良いのか?」というのを日本語で具体的に説明してください(説明できる状態まで考えてください). これは算数の話なので,プログラミングとは無関係です. で,それができたら,その話をその通りに実装してください. おわり. …っていうだけの話になるかと. 例えば,話を少しだけ単純にして, 「N以下の正の整数の総和を求む関数 F(N) があるとき, 2つの正の整数a,b(ただし a<b)に関して,a以上b未満の正の整数の総和を求む関数 G(a,b) を F() を用いて書け」 とかいう話だったらどうですか? F(b) は b以下の総和. F(a) は a以下の総和. そしたら例...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

おまけ:これは完全に邪推(っていうのか?)だけども,もしも

コード:

class AbstEnemy : public Task { ... };
class AbsBullet : public Task{ ... };
みたいなことになっていて,「Update() は引数無し」という話がこういうところから生じていたりするのであれば,まずそこから考え直すと自由になるんじゃないかな.
すなわち,「こいつらって Task から派生する必要が本当にあるん?」っていう.
(さらには,「そもそもこの Task ってやつ,必要なの?」とか)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

> として、敵クラスでは特にインスタンス化せず引数として持ってくるのがいいのでしょうか。しかしこの場合updateはオーバーライドしてるので引数変えるなら大幅に変更が必要になりそうなのですが。 (敵クラスが「インスタンス化」するという話は,何かを間違っている感を感じますが) 実装形態に関しては好きな形でやれば良いでしょう. 何かしら外部とのやり取りをせねば仕事をできないであろう update() が,あえて(?)「引数無し」にされている理由は私(というか,あなた以外)には不明ですから,どんな形が望ましいのかはあなたにしか判断できません. あなたにとって最もやりやすい形にするのが良いでしょう. ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

> これだと結局インターフェースを継承しているクラス(ここでは弾管理クラス)が敵クラスで必要になっているのでは…と思いました。 必要になってないですね. そういうのはコンソールアプリのプロジェクトでも作ってそこで小さい検証コードを作ってやってみればよいです. 例えば,このような基底クラスを設けたとする. //Base.h class Base { public: virtual ~Base(){} //(テスト用なのでこの動作自体に特別意味は無いが,とにかく処理内容を以下のように規定する) //引数をコンソールに出力する. //戻り値として 77 を返す. virtual int Output...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 条件式のelseの書き方
返信数: 10
閲覧数: 12197

Re: 条件式のelseの書き方

関数を提示するならするで
「この関数というのは何をするもので,引数はこういうもので,戻り値はこうなる」っていうような説明をまともにすればいいのに.
そういった正しい動作に関する説明が関数 moji() に対して存在していたら,こんな無意味に話がこじれたりしないよね,きっと.

(まぁ,それが把握できているならこんな関数名を付けてはいないであろう,とも思えるが)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

そこは言語文法の範疇なので,ここで素人説明するよりはまともな説明を見て学んでもらうべき事柄と思う. とりあえずものすごくざっくりと書いておくと, //なんか基底クラスがあって class Base {...}; //それをpublic継承したクラスがあるとき… class Deriv : public Base {...}; //これが可能 Deriv D; Base *pBase = &D; っていうことになってる. 「継承」「仮想関数」「ポリモフィズム」「is-a」「静的な型/動的な型」とかいったような言葉を「C++」と絡めて検索するとかしても相応に必要な情報にたどり着くんじゃないかと思う...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

逆に言えば,「敵」がアクセスするのが実際のところ未来永劫 BullterManager である(つまり,そこには実装変更の自由度は要らない)ということが確定事項なのであれば,あえてそんなことをしなくても良いとも言える.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

「敵」から見れば,自身がアクセスする IXXX がとにかくその役割を約束通りに果たしてくれさえすればよいので,その相手は別に BulletManager じゃなくてもいい( ← ここが変わる).

例えば,「この BulletManager ってやってること少なくね? 別のやつにこいつの機能も持たせちゃえば要らなくね?」とかいう変更をして BulletManager なる存在が消滅したとしても敵の実装には全く影響が及ばない.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

> 結局どこかで弾管理クラスをインクルードしてこなきゃいけない

少なくとも,IXXX のメソッドを呼ぶ側(敵)は IXXX のクラス定義を必要とするから,
「class IXXX の定義が書かれたヘッダ」をインクルードする必要はある.
それは間違いない.

しかし,
「敵」から見れば IXXXのポインタが指す物が何なのか(:動的な型)は分からないし,知る必要も無いのだから
「IXXX を継承した BulletManager」の定義が書かれている BulletManager.h をインクルードする必要はない
ここが違いとなる.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

で,それはそれとして, 「敵」がやりたいことは「どこかが弾を管理しているから,そこに新しい弾を登録する(:管理下に置いてもらう)」なのであろうから, 「どこか」が実際には何者なのかを知る必要も無く,例えば, class IXXX //名前は知らんが {//話と関係ない所は全て省略 public: //弾を管理下に登録する void RegisterBullet( std::shared_ptr<AbstBullet> ); }; みたいなのがあれば良い, ……っていうのが「インタフェースがどうの」いう話だよね. 単純には,「敵」の Update() を //必要なら rXXX のメソッドを使っ...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

現実装を批判しているのではなく,「そういうことから考えてみたらどうかな?」という一個人の意見を言っているだけなので,誤解なきよう.

最初にそういった入れ物(?)だけを増やした結果,本来必要な事柄がやりにくくなっている(あるいは「なんだかなぁ」と思える)のであれば,その実装形態があなたにとっての枷になっているということではあるまいか?
であれば「それらの入れ物の存在を前提としない状態で」一度考えてみてはどうか.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

EnemyManager なんて,実質,正体は

> std::vector<std::shared_ptr<AbstEnemy>> _vector;

だよね.
これ本当に必要?
(おそらく BulletManager の側もまた同等程度の物でしかないのでは?)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 敵の弾発射に関するコード
返信数: 21
閲覧数: 6629

Re: 敵の弾発射に関するコード

> 弾の管理クラス,敵の管理クラス 「弾の管理」って具体的に何をするの? 「敵の管理」って具体的に何をするの? こいつらの役割は何なの? 何のために存在するの? 本当にそんな縦割り(?)な感じにする価値はあるの? etc… が他者には不明(あなたしか知らない)なので,何を問うているのかも不明. 個人的には(問うている事柄とは異なるであろうが) 例えば,BulletManager のメソッド > void GenerateBullet(int index,const eBullet ebullet); が ebullet とかいう値でswitchしているのが非常に馬鹿馬鹿しいと思える. これを誰...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 授業でわからないところがあったので質問です
返信数: 2
閲覧数: 2632

Re: 授業でわからないところがあったので質問です

表題は

> 質問です

となっているが,質問は書かれてないよね.
あなたが実際に直面している問題点について具体的に述べねば何も伝わらない.(何もかもできない! コードを1文字も書けない! なんてことはないだろうし)

実は「質問」ではなくて,「こういう問題が出たけど自分ではやりたくないから誰かやれや」みたいな話なのであれば,その旨を明言する必要があるだろう.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 再帰関数 総和問題
返信数: 7
閲覧数: 3995

Re: C言語 再帰関数 総和問題

区間を半分にしていくとか.

コード:

int sumof( int m, int n )
{
	if( m > n )return 0;
	if( m==n )return m;
	int h = (m+n)/2;
	return sumof(m,h) + sumof(h+1,n);
}
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 再帰関数 総和問題
返信数: 7
閲覧数: 3995

Re: C言語 再帰関数 総和問題

せっかくだから俺は
「mからnまでの和」を「m+n+(m+1からn-1までの和)」ということにするぜ!

コード:

int sumof( int m, int n )
{
	if( m > n )return 0;
	if( m==n )return m;
	return m + n + sumof(m+1,n-1);
}
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 実際に二分探索を使うとして
返信数: 4
閲覧数: 5205

Re: 実際に二分探索を使うとして

しかし,C++で今現在実装作業に従事している者が > C言語を勉強する必要 とか言っている状況が謎なのだが…… 他にも「ほかの人が苦労して何行もかけてつくっている」「基本情報処理の試験テストでも」とか謎めいた記述が散見されることから想像するに, 二分探索というものを「自前で実装できること」を求められている場面でありそうな予感もする. (仮にそういう場面だとしたら,binary_search って1行書いてドヤってるのはマズイよね.「ほかの人」がやれていることをあなたもやれること,が求められているのでは?) まぁ,どんな場面なのかはわからんけども, 「二分探索って何なのか全然わかんねぇけど,ST...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 実際に二分探索を使うとして
返信数: 4
閲覧数: 5205

Re: 実際に二分探索を使うとして

状況がわからん.

仕事か何かで(?),「実装してくれ」っていう話なら何を使ってもまともな処理時間でまともな結果が得られる物ならOKじゃないかな.
(実装された機能を利用する側は,その内側の具体実装コードを知りたいわけじゃない,ふつうは見ない.)

そうじゃなくて,「実装してみせてみろよw(できればな)」とかいう話だと自前で実装しろっていう話であろう.

---

で,それはそれとして,

> ただxがvに含まれているかどうかを探す

っていうだけの機能なのに,元のコンテナの中身が変更されてしまうってのは仕様としてOKなのか?
という話の方が気がかりな感じ.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームの敵の弾を連続して発射
返信数: 4
閲覧数: 2775

Re: シューティングゲームの敵の弾を連続して発射

ま,平たく言えば,

「少なくともそんな漠然としすぎた質問を投下しないような最低限のレベルには自力で達しないとどっちにしろ無理じゃね?」ってことになるかと.

非常に面倒なことだが,こればかりはどうしようもない.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームの敵の弾を連続して発射
返信数: 4
閲覧数: 2775

Re: シューティングゲームの敵の弾を連続して発射

一応補足しておくけど,
上記の話での「現状」という語の範囲は,全体のうちの「弾」に関連する部分ね.

> シューティングゲーム

全体を自前で最初から作れ,と言っているわけではないよ.
(とは言え,一部だけを取り換え可能な形に全体の実装ができているのかどうか等は不明だし,部品としてどこかを切り出して流用するにしても存在しているコードを相応に把握する必要があるから,その点の難易度は問題となり得る.)
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームの敵の弾を連続して発射
返信数: 4
閲覧数: 2775

Re: シューティングゲームの敵の弾を連続して発射

文面の雰囲気から「現状」とかいうのを自身で作ったわけではないのであろうな,と推測するので, もしもこの推測が正解であれば, その「現状」を一切合切捨てろ というのが最も真摯なアドバイスとなり得るであろう,と考える. というのは,こんな質問をしている時点でその「現状」の実装内容を(そこから出発して改造していくために必要となるレベルで)把握できていないであろうから. 個人的な意見だけど,他人のコードから出発してどうこうしようというのは,大抵の場合,自身が最初から書いていくのに比べて難易度が高いものとなるよ. 「同時に複数撃てない」という仕様が先にあって実装されているコードから改造するのは(その仕様...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でピラミッドをつくる課題のアドバイスをいただきたいです
返信数: 3
閲覧数: 4738

Re: C言語でピラミッドをつくる課題のアドバイスをいただきたいです

こういう話でしょう.

コード:

const char Circle[] = "○";
const char Triangle[] = "△";
const char Square[] = "□";
const char * const Shapes[3] = { Circle, Triangle, Square };  //配列

for( int i=0; i<3; ++i )
{	printf( "%s\n", Shapes[i] );	}  //配列添え字でどうの
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 課題のヒントを教えていただきたいです
返信数: 7
閲覧数: 2893

Re: 課題のヒントを教えていただきたいです

> 2行ある数字をどう処理すれば

xとyの値を得るところで躓いているとかであれば,
「C言語 カンマ区切り 入力」とか何とか,目の前の問題を表しそうな文言でググる.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 課題のヒントを教えていただきたいです
返信数: 7
閲覧数: 2893

Re: 課題のヒントを教えていただきたいです

> まず何から始めたら良いか ヒント 何はともあれ,まずは仕様を明確にすること.話次第でやるべきことが変わる可能性があるので. (不明点は「こういうのはどうなん?」と出題元に問うべし) 例えば, 「複数のファイル間でファイル内のデータの個数が異なっていた場合にはどうするのか?」とか, 「ファイル内のデータ個数の上限は仮定しても良いのか?」とか. 「何かエラーがあったときにはどうするのか?」とか. 実装に関しては,いきなり全てをやれないのであれば,各要素のみを実装して試すことを行うと良かろう. 例えば, 「単一のファイルからデータ(x,y)をあるだけ読込んで表示するだけ」とか. 「何かてきとーに...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++20で多量のthreadを一括発行と自動同期する方法
返信数: 8
閲覧数: 3462

Re: C++20で多量のthreadを一括発行と自動同期する方法

全ての箇所のルールに従った正当な(?)マルチポストであれば
ここのルールによって相互リンクが成されるのだから,あなただけでなく,読み手全員が

> みんなの叡智を拝見

できる形となるわけですな.すばらしい.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++20で多量のthreadを一括発行と自動同期する方法
返信数: 8
閲覧数: 3462

Re: C++20で多量のthreadを一括発行と自動同期する方法

私が熱心な宗教家ならば真っ先に teratail の側に書いてるであろう.
あっちは厳しいですぞ.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++20で多量のthreadを一括発行と自動同期する方法
返信数: 8
閲覧数: 3462

Re: C++20で多量のthreadを一括発行と自動同期する方法

> 何が悪いの?

誰が「悪い」と言ったのか?

私はマルチポストである旨を周知しただけ.
それがきっかけとなって,あなたが利用している各所のルールに従っていないことに気付いたのであれば,今からでも各所において適切に対処すればよいのではあるまいか.
ルール違反を認識してもなお適切な措置を講じず,自分勝手だけを貫こうとするのであれば,それは「悪い」と思うが.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 静的変数 [漸化式問題]
返信数: 6
閲覧数: 5290

Re: C言語 静的変数 [漸化式問題]

エラーというのがコンパイル時の物なのであれば,それは文法面で異常なコードを書いているということ. 例えば,seq(a) とか書いてるけど,引数無しの関数にaを渡すのは異常. きっとエラーメッセージも「何が悪いのか」を言ってきているはずだから,そこはちゃんと読むべし. で,それはそれとして… > 「次の漸化式の第2項から第10項までを表示するプログラム。ただし、第n項の値を戻り値として、引数なしの関数seqを定義して利用すること。」 具体的に何をどうすれば題意を満たすことになるのか? という点をあなたは把握しているのでしょうか? とりあえず,私にはこの文章はちょっと何言ってるかわからないので,も...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーマリオのようなゲームの作成
返信数: 8
閲覧数: 3605

Re: スーパーマリオのようなゲームの作成

そのような調査を自身で行ってみて,どうしても解せない現象が観測されるのであれば, その部分に焦点を絞った具体的な質問を行ってください. 例えば… 実際に変数値を確認してみたら,地面に触れた時にはちゃんとこの判定が働いていて結果としてこの変数の値が〇〇になっている.OKなハズだ. にもかかわらず,以降の処理の時点での値は××になってしまっているようで,そのために処理が正当な方向に進まないのだ,というところまではわかった. しかしながら,前述のように変数値が○○から××に変わってしまう理由がわからない.この変数の値を変更するような処理は他には無いハズのに! 何故変わってしまうのでしょうか?? …と...
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーマリオのようなゲームの作成
返信数: 8
閲覧数: 3605

Re: スーパーマリオのようなゲームの作成

自身でデバッグしてください.

「すり抜ける」ときのプログラムの実際の動作を追い,何が起こっているのかを確認してください.

【本来ならば処理がどの経路を通って,変数値がどのように変遷していくのか】というような,そのプログラムの「正しい(しかしながら今現在存在していない=観測できない)振る舞い」の具体的詳細というのは,あなたしか知らない/把握していない のですから,実際にどのように振る舞っているのかを逐一見ていけば,「あなたなら」間違いに気づけるのではありませんか?
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: int型関数を用いた テスト点数の計算
返信数: 6
閲覧数: 8864

Re: int型関数を用いた テスト点数の計算

怪しい部分の想像が付くのであれば,そこら辺に変数値を確認するための printf を入れてみるとかして,実際に何が起こっているのかを確認してみれば良いのではないでしょうか.
(真っ先にそういう確認作業をしないのは何故か? こうやって質問文を書いて投下する方がよっぽど手間だと思うが…)

まぁ,ぱっと見で

> int i,sum;

で sum の初期値が与えられていないのが原因かと見えますが.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: VC++2019でOpenCVを使うときのデバッグモードとリリースモードの違い
返信数: 4
閲覧数: 2536

Re: VC++2019でOpenCVを使うときのデバッグモードとリリースモードの違い

全く役に立たない話かもしれませんが…


(1) lib の指定を間違っていないか?

Debug版のlibのファイルタイトル末尾には d が付いていて,Release版にはついていない.
適切なものを使わないと問題が起きる.


(2) OpenCVは Release/Debug 共にご自身の環境でビルドしたものですか?

どっかから拾ってきたままの dll を使っているような場合,
自身でビルドした物を使っても同じことが起こるのか?…というのを試してみてもよいかも.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリを使わずにタイトル画面とゲーム画面を作りたい
返信数: 4
閲覧数: 2826

Re: DXライブラリを使わずにタイトル画面とゲーム画面を作りたい

> DXライブラリを使わずに

何故特定のライブラリのみを名指しで述べているのかわからないが,
背景事情として何らかの要件があってそういう話になっているのであれば,そこのところを述べるべきではあるまいか.

事情的にはAもBも同様にダメであるときに,「AがダメならBではどうですか?」とかいうやりとりが発生するとしたら無駄であろう.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 最小値が出力できない、(ド素人質問です)
返信数: 5
閲覧数: 7710

Re: 最小値が出力できない、(ド素人質問です)

maxやminの「初期値」を決めるのに苦労しているのであれば,
INT_MIN,INT_MAX で初期化しとく形の方が楽に感じられるかもしれない.
by usao
1年前
フォーラム: C言語何でも質問掲示板
トピック: 条件を増やすか否か
返信数: 6
閲覧数: 3117

Re: 条件を増やすか否か

そのように単純に比較を書けるのであれば組み込み型なのでしょうから,
仮に差が生じたとしても,ほぼどうでもいい程度なのではないでしょうか.

あえて効率を考えるなら,その条件判定がどのくらいの頻度で行われるのかを考える…かな?
例えば,このifが書かれている個所が相応の頻度で走るのだとして…
追加した判定がほとんどの場合に正となるのであれば,書かない方が効率は良いのかもしれない.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 座標間の折れ線の長さを出力するプログラム
返信数: 4
閲覧数: 2810

Re: 座標間の折れ線の長さを出力するプログラム

穴埋め問題なのであれば,要は, 【ここに無駄に大仰に用意した機構があるだろ? これの使い方をコードを読んでわかってみせてみろや】 っていう「コードを読む問題」なので,読んでください. (「折れ線の長さがどうの」とかいう話は取って付けたようなどうでもいい「お題」でしかない) で,コードを読むためには,少なくともそこに用いられている文法の意味がわかる必要があります. 文法の時点で行き詰っている場合には,まずは勉強(復習)してください.それしか手はありません. 「文法はわかるけど意味が読めないんです><」とかいうのなら,単に「わかりません」とだけ漠然と述べるのではなく,どこがわからんのかを具体的に質...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5503

Re: 文字列を逆順に表示したい

こんな例はいやだ

コード:

void ReversePrint( const char *Str )
{
	if( *Str == '\0' )return;
	ReversePrint( Str+1 );
	putchar( *Str );
}

int main()
{
	char InputStr[10];
	printf( "input : " );
	scanf( "%s", InputStr );

	ReversePrint( InputStr );
	putchar( '\n' );
	return 0;
}
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5503

Re: 文字列を逆順に表示したい

> プログラミングではイコールの左側に右側を入れるのですね、私が使用していた教材にはその旨が書いていなかったので気が付けませんでした、ありがとうございます。

これは冗談なのかマジなのか判断難しい絶妙な文章!!

あえて後者だと仮定してマジレスするならば…
配列を弄るような問題に取り組むよりも前に必要な前提知識を学ぶべき.
その「教材」とやらにそこらへんの話が書かれてないのならば,それは単に「そこは知っていることが前提」っていう扱いなのだろうと想像する.
そのような場合には,より平易な(もっと手前からの話が書いてあるような)別の情報元を探して,必要な事柄を補うのがよろしかろう.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5503

Re: 文字列を逆順に表示したい

オフトピック
(forを使わずに)たくさん書き並べてみること は低レベルすぎて馬鹿馬鹿しいと思いますか?

「自分は馬鹿ではないのだから,いきなり最終形の実装を作れるのだ!」と思って実際にやってみたら→できなかった
のであれば,
より 低レベルな/馬鹿馬鹿しい と思える形に立ち返って考え直してみることは,間違いを見つけるのに有用な手段となり得ます.

そういうことを,まずは(人に訊く前に,当たり前のこととして)やるべきです.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5503

Re: 文字列を逆順に表示したい

> これを for を用いた形に書き換えたとしても,処理内容(アルゴリズム)自体が変わるわけではないのですから
そこに実装される代入文というのは,常に「左辺が moji2 の要素であり,右辺が moji1 の要素である」という形になるでしょう.

また,forループの中に代入文が複数個並ぶような形にもならないでしょう.
(あえて 素直じゃない/ひねくれた/etc な形の実装をしない限りは)
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5503

Re: 文字列を逆順に表示したい

そこまでご自身で説明を書いてみて,コードの間違いに気づきませんか? 要は,あなたの for の処理とは, 「配列 moji2 の内容を更新する処理」なのであり, その処理においては,配列 moji1 の内容を変更する必要はありませんし,するべきでもありません. であれば, 代入文の左辺側に moji1 が来ている時点で何もかも間違っているということになるでしょう. --- いきなり for で書くのが困難なのであれば,ステップを経てみるべきです. 例えば,最初はとりあえず文字列の長さを何らかの値に固定した世界の上で,且つ「for を用いない形で」書いてみるべきです. //とりあえず文字数を 5...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列を逆順に表示したい
返信数: 12
閲覧数: 5503

Re: 文字列を逆順に表示したい

他者に「なぜ」とか言い出す前に, 「何を」やっているのかを説明すべきではあるまいか? > 文字列を入力し、それを逆にしたものを表示したい という話において,nなる値を入力させていることは完全に意味不明である. nとは何なのか? nが何らかの役割を持つのであれば, 「文字列と整数値(n)とを入力し,…(何かしらnの値に基づいた処理がどうのこうの)」 とか何とか正確に述べよ. (「まともに動いてないコード」だけから「何らかのまともな意味」を察しろ,というのは無理があるとは思わないのか?) おそらく主たる処理の実装部に該当すると思われる for の箇所で何をやってるのか(やっているつもりなのか)に関...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 6191

Re: スネークゲーム、伸ばすところがうまくいかない

オフトピック
これ以上どうでもいい話をここには書かない.
こっちに(もっと毒がある感じで)書いてるので,気になるならどうぞ.
(一応,私が思うスネークゲームの基礎部分の実装も書いてみた)
blog/7311
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 6191

Re: スネークゲーム、伸ばすところがうまくいかない

わからんもの は わからん.そんなの仕方ない. ただ,わからないもの を わからないままで 取り込んでいくと コードのわからん具合がどんどん膨れていってしまうのではなかろうか. 「さっぱりわからんけども現時点で何故か動く」状態と化したコードが手に入ったとして そこから先を自分でやっていけるのか? …みたいなことを勝手に思ったんだけど,余計な話だったな. 混乱させる意図があったわけじゃないし 目の前の問題点に即応する内容の話でもないので, 放置/無視 してくれてOK. --- 「mFieldが要るのか?」という話については… 【「四角いフィールドの外周部にしか壁が無い」という世界だけをとりあえ...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 6191

Re: スネークゲーム、伸ばすところがうまくいかない

> まだこのやり方しかわからないのでこのやり方でやっている

というのは全くOK.

あなたがいう「このやり方」の詳細~全容まで をあなた自身がしっかりと把握しているのだろうか?
というのが疑問というか怪しいように見えるのだけど大丈夫か? ということ.
プログラムは詳細まで具体的に処理を書かなきゃならんわけなので.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 6191

Re: スネークゲーム、伸ばすところがうまくいかない

> 他の最適な方法があるのなら教えてもらえると助かります。 そういうことを言いたいのではなくて, 自身が用意したデータの必要性とか役割とか使い方等に関して,もっとこう強い意志というか考えを持って「こうなのだから→こう書くのだ」という明確な筋道に沿ってプログラミングを行うべきなんじゃないのだろうか? …っていうような話をしている. こうなるべき/こうではないべき という判断基準があなたの中にちゃんと存在していて,それに基づいた判断が行わていれば > 参照魚さんが示してくれたコードと入り交じってよくわからなくってしまいました・・・ なんてことにならないんじゃないかな,とか思うわけ. あなたが考え...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 6191

Re: スネークゲーム、伸ばすところがうまくいかない

オフトピック
mPX[], mPY[] の履歴に関しては,
内容をいちいちバケツリレーみたく更新するんじゃなくてリングバッファ扱いするのが楽だと思う
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 関数ポインタの仕組みについて
返信数: 2
閲覧数: 2882

Re: 関数ポインタの仕組みについて

「どこにも存在しない」なら使うこともできないのだから,
「どこかにはある」ハズだよね.

その「どこか」というのが実際にどこであろうが,とにかくその場所を表現する(指し示す)何らかの値ってのを考えることができるよね.
それを「アドレス」と呼ぶなら,それが「関数のアドレス」だよね.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 6191

Re: スネークゲーム、伸ばすところがうまくいかない

そもそも mField とかいうデータ,必要ですか? 無くても何も問題ないように思うのですが. ……って言われたら,それに何と答える(反論する)のでしょう? もしもその答えが将来の課題の話になるようであれば,そこは一旦忘れて,まずは「基本動作をまともにやれるだけのもの」という目標だけに注力するステップを設けた方が楽なのでは. 例えば,「後々,いろんな形の壁を作りたいのだ」とかいう話があるのだとしても,そのことを基本動作もおぼつかない今の時点からサポートしようとして「二兎を追う者は…」な状態に陥っていないか?っていう. 逃げない兎を相手にしているのなら一匹(一羽?)ずつ狙っていくのが早いのでは.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: スネークゲーム、伸ばすところがうまくいかない
返信数: 14
閲覧数: 6191

Re: スネークゲーム、伸ばすところがうまくいかない

> 状態の更新と描画のため処理がUpdateの中に混在しています。UpdateではmFiledの変更は行わず… mField って,そもそも「描画のための」データなのでしょうか? ちょっと前に 「そのデータは何の座標系の値なのか?」と問うた気がしますが,同様に 「mField って何のためのデータなの? 役割は何なの?」というのをもっときちっとした方が良いように見えます. 壁の有無の判定に専ら mField が用いられているのであれば,その点では mField とはロジック側の存在なのであって,少なくとも「描画のためだけのデータ」ではないものと見えますが, もしも描画に際して参照するための存在...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 4099

Re: 一部だけ表示されない

mX, mY がどの座標系の値なのか? というのは他者には判断つかない
(だって,そこがあやふやになっていると見えるコードが目の前に示されているのだからね).

そこはあなた自身がきっちりと定めねばならない.
どこをどう修正すべきなのか? という話は,その定義に完全に依存することになる.

> ・その値はそもそも正当なの?

っていうのは,「あなたが定めた定義の上で」正当な値なのか? っていう話だよ.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 4099

Re: 一部だけ表示されない

> int mField[ FIELD_SIZE + 2 ][ FIELD_SIZE + 2 ] これのサイズって,22x22 しか無いんじゃないの? それに対して, > 結果:mX:260 mY:20 というとき,この値を > mField[ mY ][ mX ] = CHIP_TEX_PLAYER;//初期座標に書き込み みたく用いることが正当なのですか? mField[ 20 ][ 260 ] というアクセスをする話になりますが. --- 要は, mX と mY っていうのは「どんな値なの?」っていう: 少なくともこのプログラムには ・データの座標系(mField のindex) ・表示...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 4099

Re: 一部だけ表示されない

例えば,

「動作を追ってみたところ,mX の値がマイナス7千万,mY の値が 3億 になっていたのですが,その座標に「●」が表示されないんです」

っていうのと,

「動作を追ってみたところ,mX の値が 6,mY の値が 10 になっていたのですが,その座標に「●」が表示されないんです」

っていうのとでは,「どこが疑わしいのか」が全然違ってくるっしょ.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 一部だけ表示されない
返信数: 7
閲覧数: 4099

Re: 一部だけ表示されない

> 確認してみました

っていうなら,確認してみたという作業の内容とその結果を示せと.

・init() によって mX と mY の値はそれぞれいくつになったの?
・その値はそもそも正当なの?
・その後に書きかえられていないかをチェックした結果はどうなったの? 未知の値に書き換わったの? それともずっとそのままだったの?

それらの振る舞いを確認した結果として,何がわかっていて何がわからない状態にあるっていう話なの?
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語の浮動小数点について
返信数: 5
閲覧数: 3090

Re: c言語の浮動小数点について

あえて(?) ク〇みたいな文面でいくらか突っ込んでみたが,
コードってのは細部まで具体的な事柄が定まってないと示せるはずがない,ということですぞ.

そしたら他者(←どこの馬の骨とも知れないのに)に全てを具体的に把握させるまで何やかんやと説明し続ける必要があるわけだが,これはほんとに骨が折れる作業になり得る.
そのことに要する労力と時間(あと,それを行ったとしてもコードが示されるとは限らないということ)を考えれば
さっさと自分でやるなり,その話を知っている者(e.g. 同じ課題を出されている学生とか)に協力を仰ぐことを考えるのが良いと思う.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語の浮動小数点について
返信数: 5
閲覧数: 3090

Re: c言語の浮動小数点について

> 整数部2桁小数部3桁までの数字を使ってプログラムをする

って具体的にどういう意味?

> 有働小数点

ってのが「浮動小数点数」の誤記なのだとして,
例えばある入力値に関して "1234.56789" って入力されたらどう振る舞うのが正解なの?
妥当でない入力ってことになるの?
それとも「整数部2桁小数部3桁」とかいう条件を満たす何かに勝手に変換されて使われるの?

昇順に並べ替えることとその後の計算との関係もイミフ.
その謎の計算式で用いられている {1,2,3,4} ってのは何なの?
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: c言語の浮動小数点について
返信数: 5
閲覧数: 3090

Re: c言語の浮動小数点について

意味わからん.
課題丸投げしたいだけであれば,課題の問題文を丸ごと示した方が無意味に齟齬が生じ難い分だけマシなのでは?とか思うレベル.

> 数値ごとの妥当性

とは何か? 何が妥当で何は妥当でないのか? 平和とは何か?
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: キャッチゲーム
返信数: 7
閲覧数: 5471

Re: キャッチゲーム

オフトピック
GetRand のリファレンスらしきページ(https://dxlib.xsrv.jp/function/dxfunc_other.html)には

> 解説  乱数を得ます。この関数は 0 から RandMax で指定した数値のどれかの数値を返します。

くらいの説明しかない様子.
これだけを読む限りでは,個人的には「そもそも何のためにこんなものがわざわざ用意されているの?」と首をかしげたくなります.
こんなん,「rand でなくこっちを使おう」とか思えない.

(ひょっとしたらどこか他のところに詳細情報があるのかもしれませんが)
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: キャッチゲーム
返信数: 7
閲覧数: 5471

Re: キャッチゲーム

> DXライブラリを利用しているのに rand関数は一切利用してはなりません。
> SRand関数/GetRand関数を代わりに使わなければなりません。

本当にそのような話があるのですか?
(少なくとも公式らしきリファレンスの GetRand, SRand の部分にはそのような要件は記載されていないように見えます.)

本当にそんなク〇みたいな制約があるとすれば,当然ながらどこか(公式みたいなところ?)で相応の注意書き等がありそうに思いますので,
そういった情報ソースを提示されると良いのではないでしょうか.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11903

Re: ヘッダファイルについてうまくいかない

…ということで,
とりあえずこのくらいの簡素なコードならいけるんか? ってのを試してみてはどうか.

これなら問題無くexeまで作れるということであれば,
コンパイルのために打ってるコマンドの側ではなくて,あなたの現状のソースコードの記述のどこかに問題がある とかかもしれないし.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11903

Re: ヘッダファイルについてうまくいかない

DXライブラリを持ってないし導入するのも嫌なので,すごい単純な下記のコードでテストしてみたが, 「開発者コマンド プロンプト for VS 2017」起動して,ソースがある場所まで行って cl /c main.cpp cl /c window.cpp link main.obj window.obj /OUT:test.exe でふつーにいける. ※コンパイル時に > C4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。 っていう warning は出たけども. --- main.cpp : #include <io...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11903

Re: ヘッダファイルについてうまくいかない

とりあえず「やり方」を
「cl 分割コンパイル」だとか適当にそれっぽい言葉でググってみたら?
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11903

Re: ヘッダファイルについてうまくいかない

> link window.cpp /OUT:main.exe なんでリンカに .cpp を食わせようとしてるの? > 2つのオブジェクトファイル(main.obj, window.obj かな)をリンクする必要がある っていう話ならば, 【少なくともリンカにはこの2つの .obj のファイル名を指定する必要がありそうだなぁ】とは考えないの? 個人的にはわざわざ cl とかを直にコマンドラインから叩こうとする意味がわからんが… あえてそんなことに挑むのならば,そういう話に手を出すための最低限の物事の勉強(というか調べもの)は先に済ますべきちゃうん? 「何をどうすれば→できるはず」っていう筋道す...
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルについてうまくいかない
返信数: 25
閲覧数: 11903

Re: ヘッダファイルについてうまくいかない

> Visual Studioで編集はせず、コンパイルだけVSでやってます。

というのが具体的にどういう状況なのかよくわからんけども,

main.cpp と window.cpp という2つの翻訳単位をコンパイルして

その結果できた2つのオブジェクトファイル(main.obj, window.obj かな)をリンクする必要があると見えるが,

・window.cpp をコンパイルする
・window.obj をリンク対象にする

のあたりは大丈夫?
Visual Strudio を素直に使ってれば特段何の苦労も発生しない(勝手に面倒見てもらえる)ところだが.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 7334

Re: 特定の角度を返す関数

オフトピック
> 三角関数が目的の値を返す角度を二分探索する

解を囲み込むのに工夫が要りそうな…?
(そのへんをやりやすい形の目的関数を立てるのかな?)
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 7334

Re: 特定の角度を返す関数

オフトピック
> えっとー,これが sin と cos の値なんだよね?

の意味が理解できないのに
変数名を nx,ny に変えてやれば「解決」するんかい?

「解決」ってのは「そのままパクれるコードそのものが出てくること」なのかな?
(#まぁ今回の場合だと,そのままパクったら無事に済みそうにはないが)
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 7334

Re: 特定の角度を返す関数

> 正規化した「方向ベクトル」を求め

それが sin と cos なわけだがw
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 7334

Re: 特定の角度を返す関数

どうやらプログラミング以前の話と見えるので,「三角関数」でググるとかした方が早いと思う.
(ここまでの話が理解できない状態では,このような場所でのやりとりは不可能であろう)

コーディングよりも先に,まず数学の復習が必要であろう.
by usao
2年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の角度を返す関数
返信数: 15
閲覧数: 7334

Re: 特定の角度を返す関数

> si = b / c;
> co = a / c;

えっとー,これが sin と cos の値なんだよね?
それなのに,これを cos(co) だとか sin(si) だとかいう使い方するのはおかしいよね?

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