1 名前:名前は開発中のものです。 mailto:sage [2009/05/07(木) 13:33:06 ID:u3YZJr5E] タスクシステムについての議論、相談、質問、雑談などのスレです part6 pc11.2ch.net/test/read.cgi/gamedev/1238725539/ part5 pc11.2ch.net/test/read.cgi/gamedev/1234977661/ part4 pc11.2ch.net/test/read.cgi/gamedev/1233459490/ part3 pc11.2ch.net/test/read.cgi/gamedev/1226199100/ part2 pc11.2ch.net/test/read.cgi/gamedev/1196711513/ part1 pc11.2ch.net/test/read.cgi/gamedev/1173708588/ ・タスクと呼ばれる実装は、非常に多岐に渡ります 古典タスクシステムについての話題は「>>2 」と明示してください そうでない場合はカスタム版であることを明示してください ・人を憎んで言語を憎まず
137 名前:名前は開発中のものです。 mailto:sage [2009/06/05(金) 11:30:37 ID:iLixPBxc] やねうらおというキーワードが常に脳内にこびりついてる引数おばけさんは例の人なのかな? 本当に彼は厨とキチガイを引きつける天才だな
138 名前:名前は開発中のものです。 mailto:sage [2009/06/05(金) 11:37:24 ID:iV7/c5Cj] 引数可変を想定するなら連絡用の構造体を用意して引数はその構造体のポインタだけにして とか工夫すればいいし、引数にこだわる人は頭固すぎ、あと挑発に乗りすぎ みなさん大人げない
139 名前:名前は開発中のものです。 mailto:sage [2009/06/05(金) 11:48:46 ID:ykmxa4wC] >>137 > 本当に彼は厨とキチガイを引きつける天才だな 言い得て妙だな。まあ、氏は東大の大学院に行ける程度の天才(天災?)ではあるんだろうけど。
140 名前:名前は開発中のものです。 [2009/06/05(金) 12:57:27 ID:PGMss8TE] 引数の可変なんて想定してないだろ
141 名前:名前は開発中のものです。 mailto:sage [2009/06/05(金) 20:24:30 ID:q/V6VtMh] >106 knuth御大が本にしたら、アンチ派も転向したりするのかな?
142 名前:名前は開発中のものです。 mailto:sage [2009/06/05(金) 21:52:07 ID:k3aCK9Tq] >>135 引数中心のメリットはそこじゃなくて、 型やモジュールの直交性が高まるところにあると思う なのでオブジェクトを引数に渡すのは上層以外はなるべく避ける お互いの構造を詳しく記憶しておく必要のあるJavascriptやActionScriptは苦痛だなー
143 名前:名前は開発中のものです。 mailto:sage [2009/06/05(金) 23:54:01 ID:2tFnphs7] もしも、引数君がwin32apiを設計したら。 GetMessage( &dosv, &x86, &win32, &process, &thread, &queue, &msg, NULL, 0, 0 ); めんどくせーし、可読性も落ちる。バグの元だな。
144 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:12:45 ID:xh4G82o4] >>142 >なのでオブジェクトを引数に渡すのは上層以外はなるべく避ける は? 単純に引数無しの関数が山盛りのソースでさ unko(); ↑これで呼び出し側から何がわかるの? この関数を実行することでどの変数を弄る可能性があるのかなんにもわからないじゃん 問題は変更するデータがわからないことなんだよ プログラムを組む上でこれ以上困難なことってあるか? この関数を実行することで変更されるデータがまったくわからないんだぞ 何が変更される? どの変数がバグってる? すべてがわからない これを駄目だと思わない脳みそがすでに駄目だろお前等
145 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:26:58 ID:0TMMUW3y] >>144 引数がないことに対するデメリットはわかります。 でも、あらゆる関数を引数必須にした場合、 classや状態すらつくれないですよね? あと、 引数必須だとスレッドとか使えないですよ? スレッドではなくても、 サウンドのストリーミングとか、 割り込みとかはどうするのでしょう? そういうのはやっぱりなしですか? 何が変更されるか、どの変数がバグっているか は引数がなくてもオブジェクトの凝集度を高めればわかりますよ。
146 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:38:38 ID:xh4G82o4] >>145 そんなの必要になるのって限られたところだけだろ? しかもなんで必要かってもとのシステム作ったやつが引数を頭に入れてねぇから 引数が入らないだけで別に自分で作ったもんなら引数付けられるんだから問題ないじゃん 全体の1%未満の例外もってきて反論してんなよ 引数使えるところは引数つけろよ だからお前馬鹿だっていうんだぞ だいたいそーゆー部分はライブラリなりヘルプもちゃんとある部分なんだからいいんだよ (できればやってほしくはないが) 問題は自作でヘルプも満足にねーのにそんな構造にしちまうところだ
147 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:44:48 ID:IEIMR7tl] 何か長文書いてるけど、 グローバル変数ってことは、プロセスに一つしかないのだから、何が変更されるのかは明確だ。
148 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:46:22 ID:xh4G82o4] >>147 いや、そういうギャグはもういいからw
149 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:49:09 ID:IEIMR7tl] 引数を設けるということは、それだけ自由度を与えるということ。 必要ないなら削った方が良い。
150 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:54:53 ID:xh4G82o4] >>149 はぁ?関係ないだろ chinko.x = 20; chinko.y = 30; chinko.z = 40; chinko.a = 50; chinko.b = 60; unko(); とかやって構造体chinkoがunko関数の中身に影響があったら自由度云々に関しては 引数なくても中身に影響あるじゃん 意味不明なこと言ってんじゃねぇよ ちなみに俺の希望としては unko(&chinko);でなくてunko(x,y,z,a,b);とできるべきだと思ってる
151 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:58:05 ID:5AeUfGm+] 150が噂の引数君か const修飾子すら知らなさそうだな 本当、話にならないような基地外だわ、こいつは
152 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 00:58:58 ID:IEIMR7tl] >>150 そんなプログラム書く人居ないから問題ない。 全体の1%未満の例外もってきて反論しないでほしい。
153 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:00:31 ID:IEIMR7tl] >ちなみに俺の希望としては >unko(&chinko);でなくてunko(x,y,z,a,b);とできるべきだと思ってる >>143
154 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:02:48 ID:xh4G82o4] >>153 >>144
155 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:05:51 ID:IEIMR7tl] 実際のwin32apiがそうなっていないって時点で、それまでなんだよ。 お前なんかよりはマイクロソフトの社員の方が頭いいからな。
156 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:07:34 ID:WOc4dWi0] 引数さんはもうWin32でプログラム組めないんだね、かわいそうに・・・
157 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:09:57 ID:xh4G82o4] >>155 なってるじゃん CreateWindowなんてすげー量の引数じゃん RegisterClassも強引に引数1つにしてるけどぶっちゃけ何が設定足りないのかわかりずらいだけだよね
158 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:13:57 ID:IEIMR7tl] 大体、システムをシステムたらしめてるデータ群をintやcharレベルで分解していちいち引数で渡していたら、 引数が100個とか200個とかになるぞ。4x4マトリックスですら16個もメンバあるのに。 引数の指定ミスったらどうするんだよ。 オブジェクトや構造体はポインタでやりとりするのが普通だし、 OSのリソースはハンドルでやりとりする。 ファイルにはファイル名がある。 お前みたいなクズにだって親が名前を付けてくれていて、 普段はそれつかってコミュニケーションとってるだろ。 それと同じだ。
159 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:14:44 ID:IEIMR7tl] >>157 でも一度作ったら、あとはハンドルでやり取りするだろ。
160 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:18:28 ID:xh4G82o4] まあ、引数を使う理由の1つは>>144 な 徹底すればプロジェクトでバグ数が1000とか4桁は 絶対にいかないようになるぐらい効果絶大俺オススメ 単純だけどプロの技術ですよ まあ、これが一番大事かなぁ 後は、引数を通してはいるけど型を誤魔化してるってのもやらないほうがいいぞ たしかに実装はほんのちょっと楽にはなるが 実行してみるまで何がくるのかわからないプログラムになってしまうぞ ということはいくらコードレビューなんてやろうともソースを丁寧に整備しようと そのプログラムは動かしてみるまでどうなってるのかほとんどわからない プログラムになってしまう 汎用性をつけるっていってもそりゃMSが提供するライブラリならわかるけど 個人が作る関数にそんなもんいらないからはっきりいってやらないほうがいい >>158 >引数の指定ミスったらどうするんだよ。 コンパイル時にエラーが出るんじゃない(笑)
161 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:23:47 ID:IEIMR7tl] >>引数の指定ミスったらどうするんだよ。 >コンパイル時にエラーが出るんじゃない(笑) 普通ならコンパイルエラーが出る筈だが、お前のやり方だと、 型として纏まってた筈のデータをintやcharに分解して引数で渡すから、 コンパイラの型チェックを殺してしまう。
162 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:26:02 ID:QPxFjGuq] void hoge(int x1, int x2, int x3); ・ ・ ・ { hoge(x1, x1, x3); }
163 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:26:24 ID:C+Rvd4dM] 不毛すぎる 現代版の最強でない、シンプルなタスクシステムの代替アルゴリズムをみんなで考えろよw 最強を考え出すと喧嘩になるから
164 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:28:49 ID:YPKwIylL] で、結局引数君はprintfやmallocは使えない、と。 あぁ、標準入出力やヒープの概念を理解してないから なんでグローバル変数と関係があるか、すらわからないか
165 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:29:30 ID:C+Rvd4dM] >>164 そういうあおりはいらんというに
166 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:38:04 ID:C+Rvd4dM] 前向きな提案したら静かになった
167 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:44:47 ID:IEIMR7tl] しょうがないな。 シンプルなタスクシステムをお求めなら、型ごとにリストを持つスタイルがお勧め。
168 名前:142 mailto:sage [2009/06/06(土) 02:01:22 ID:LkHpnJAV] >>144 全く噛み合わないレス返されても困る。 俺はそんな所にふれてないしな それともプリミティブとオブジェクトの区別もつかない人?
169 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 02:06:35 ID:5AeUfGm+] 引数君は知障だから触らないほうがよくね?
170 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 02:08:38 ID:C+Rvd4dM] >>169 この際明確な答えを出す方がいい。 リスト、キュー、ソートなどなどのようなのに加えてしまえばいいだけ。 あとは自分なりにそこから派生として考えればいいだけ。 タスクシステムというのだって根本的な部分は動的に変化する オブジェクトを効率よく管理するためのアルゴリズムでしかないんだし
171 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 02:21:46 ID:YPKwIylL] ここはおつむの弱いアンチタスクや引数君みたいなのを隔離して遊んでやるスレ。 まともな話をこのスレで初めてもおつむの弱い子たちのコンプレックスの餌食になるだけだ。 まぁ前スレでフルボッコにされたアンチタスクがゲ製作技術の別スレに逃げ出して 迷惑かけたみたいだから、逃げ出さない程度に加減して遊んでやろう。
172 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 02:23:06 ID:C+Rvd4dM] >>171 アンチとは失敬な 名前が嫌いなだけで同様の手法は必要だと思ってるぞw
173 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 09:36:40 ID:qdRKJ34Y] >>150 がスレの主題に合っているかは知らないが 言っていることは、非常によくわかる。 これは、他人が作ったソースを読むときに 出てくるんであって、俺ソースのメンテナンスだけでは わからない。
174 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 10:57:01 ID:yoFXLlZ9] 久しぶりに本家の引数クンが出現してるなぁwww 相変わらずの無能っぷりでワロタwwwww
175 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 11:05:51 ID:yoFXLlZ9] >160 ちょっとここでいわゆる『タスク』という言葉を使わせてもらうが、まぁ個々に内部状態を保持した 何かの動作単位だと思ってくれればいいよ。 タスクの内部の状態によって必要なパラメータが変わる場合は、その都度引数を変えた関数を用意 して、呼び出し側が『タスクの内部状態を参照』して呼び出す関数を変更するんですねwww さすが、引数クンのそのストイックさにシビレル、アコガレルゥwww
176 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 11:21:09 ID:yoFXLlZ9] おっと、強調する部分を間違えたw ×呼び出し側が『タスクの内部状態を参照』して ○『呼び出し側がタスクの内部状態を参照』して こっちの方が通りがいいな。 さあ、引数クンのストイックさにあこがれて引数でパラメータを渡そうと思ってるオコチャマは、 ナニが問題なのかよ〜く考えてみようw
177 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 15:47:20 ID:LkHpnJAV] >>175 > タスクの内部の状態によって必要なパラメータが変わる場合は、 問題になるほどこういう状況が発生していいのだろうか…? それはタスクシステムを使った場合においても破綻するぞ 柔軟性の無い思考を否定するために自らが根本を間違えてしまうのはどうなの?
178 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 17:14:27 ID:yoFXLlZ9] >177 例) 状態Aでは外部情報a,b,cを参照して、状態Bでは外部情報a,c,d,eを参照する なんていうのは、AI作ってれば(AIでなくとも)よくあることだよ。 その際、引数クンはそれぞれ異なった引数を持つ状態更新関数 UpdateWithStateA( a, b, c ) と UpdateWithStateB( a, c, d, e ) を作成して、外から状態に応じて呼び分けるんだろ。 なにせ『引数しか使っちゃダメ』で、しかも『不必要な情報を引数で渡したらダメ。コンテキストをまとめて 渡すなんてもってのほか、誰がその情報を変更したか分からなくなるよ!!!』なんだからwwwww
179 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 17:24:03 ID:5AeUfGm+] > 誰がその情報を変更したか分からなくなるよ!! これなのだが、分からなくなっていいと思うのだが。 引数君は本当にプログラム1行でも書けるんだろうか…。
180 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 17:42:40 ID:LkHpnJAV] >>178 論理的に成り立ってない 君はただの勝ち馬乗りだよ 間違いに間違いでの応酬は無意味
181 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 17:45:47 ID:LkHpnJAV] 手段が一通りしかないという飛躍した考えは 初期のスレからずっとある 議論にならないのもよくわかる しかもそういう奴に限って後出しのために含みを残している これではコードも示せない
182 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 19:08:52 ID:xh4G82o4] ID:xh4G82o4だけど >>178 それであってるよ ステータスが代わるなら呼び出す関数を替える 仮に Q.ステータスが1000個あったらどうするか? A.関数を1000個(および必要なもの)すべてを用意します(使いまわしは絶対にしません) でFA 仮に引数を共通化して //1つ目の引数はステータス、2つ目の引数はステータスに必要なデータの束 changeState(int state,void* date); みたいなもんを使っても内部でswitchかそれに代わるものが絶対に必要になるから こっちのがいい もし、こうなっていない・これを面倒だと思うプログラムがあったら それは非常に危険なコードを抱えてる可能性がある
183 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 19:11:05 ID:xh4G82o4] あ、こっちのがってのは関数をステータスの数分用意するほうね
184 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 20:10:44 ID:yoFXLlZ9] >182 呼び出す関数が1000個あるということは、呼び出し元が1000箇所か。 頑張って呼び分けてくれwww それとも、それら上位に一つ関数を作ってそこでコンテキストを受け取って、その中で1000個の ステータスごとの関数を呼び分けるつもりなのかな? まぁ、どっちにしてもお疲れさんってことでwww >178 > 論理的に成り立ってない wwwww >182を見習えよwww
185 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 20:11:37 ID:yoFXLlZ9] >178じゃ事故レスじゃねぇかwww >180だwww >180 >182を見習えよwww
186 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 22:32:13 ID:DjY3tAB7] >引数君 君のやり方は認めるから 実際に作った上でどうメリット・デメリットがあったか語ってくれ
187 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 23:19:34 ID:qdRKJ34Y] まあ、引数分けはメリットないし、そもそも無理かな? boost::variantとかで、十分安全に出来ると思うし そっちで妥協して。
188 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 02:05:11 ID:W179Gh2Y] 引数君のやり方に従ってコーディングされている プログラムを逆に見てみたいなぁ。 引数のうちの型が一つ変わっただけで 一体どれだけの修正の手間が掛かって それをどうやって解消しているのだろう? 今の世にあるコードリファクタリング機構じゃ歯が立たないよ。 ゲーム開発なんて仕様変更は日常茶飯事なのになあ。
189 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 02:08:38 ID:3ohyM900] >>186 ID:xh4G82o4だけど メリットというか引数を無くすことがデメリットであって メリットなんてない 引数無しは引数がないことによるデメリットが生まれるだけでメリットは一つもない 上のほうで馬鹿が何も考えずに「1000個用意するの?馬鹿じゃね?w」的に煽ってるけど ぶっちゃけ代わらない 絶対に関数の中で分岐が必要になる もし、なくしたらバグが止まらない 仮に開発資料でステータスごとの初期化パラメータ一覧を出せといわれたら この馬鹿は何を出すのか?多分こいつのプログラムはすべての処理を追いかけて やっと1つのステータスの初期化状態がわかるといったプログラムになってる 恐ろしいほどダサいソースになってるはず
190 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 02:09:50 ID:3ohyM900] >>188 タスクなんて使わないで組めばいいよ タスクを使わないバージョンは前にこのスレでも書いてあげたんだけど 参加してなかったんなら暇なときに比較ソースをあげるよ
191 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 02:27:59 ID:atKK+Qwb] >>188 は、クラスのメソッドにも同じことをしているの?
192 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 02:36:39 ID:cdPek4Sb] クラスのメンバ変数は、自クラス内でグローバルだからな。
193 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 08:40:48 ID:mwRZn/c6] 引数君って発言を見る限りゲームはおろかまともな規模のプログラムを完成させたこともなさそう。 ゲームなり何なりを完成まで作ってみれば、ここにいる人たちの発言も理解できるようになるんだろうけど…
194 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:11:24 ID:aehXa9i/] >189 > 引数無しは引数がないことによるデメリットが生まれるだけでメリットは一つもない > 上のほうで馬鹿が何も考えずに「1000個用意するの?馬鹿じゃね?w」的に煽ってるけど > ぶっちゃけ代わらない 1000個の関数を呼び分けるのに、分岐を使わないのか。 スゲー、ミラクルテクニックだな。
195 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:15:45 ID:aehXa9i/] あるいは、1000個の状態更新関数を、 Task* t; Task_Update0( t, a, b ); Task_Update1( t, b, c, d ); ... Task_Update999( t, zxy, ztt, zbc ); と書いておいて、それぞれのTask_Update#(...)の中で、 void Task_Update0( Task* t, InfoA a, InfoB b ) { if ( t->state != 0 ) return; // do something if state is 0 .... } とかやるつもりなんだろうか?
196 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:20:43 ID:kY8Q/AF4] >>194 いちいち煽らんでよろしい。 先のレスに「1000個の関数を呼び分けるのに、分岐を使わない」とは 一言も書いていない。 仮に1000の関数を省いたとしても、代わりに1000の分岐が生まれるんじゃ 余計に悪くなる、と書いている。 大体、1000の機能を提供するなら1000の関数が必要になるのは 当たり前。そこは問題じゃない。
197 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:28:41 ID:m2Sg/1Dm] 引数君って明らかに知障なんだが、どんなプログラムを書くんだろうか。 ブロック崩しぐらいでいいから書いたソース見てみたいな。
198 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:34:26 ID:aehXa9i/] >196 オマエもバカのお仲間か。 > 仮に1000の関数を省いたとしても、代わりに1000の分岐が生まれるんじゃ > 余計に悪くなる、と書いている。 引数の異なる1000個の関数を、分岐無しで呼び分ける方法を教えてくれ。
199 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:36:29 ID:aehXa9i/] >196 あぁ、自分がこの点に粘着しているのは、引数クンの言う『異なるパラメータが必要な関数は 全て異なる関数として作る』という主張に沿っているだけだから。 引数でしかデータを渡したらいけない。グローバルなものは一切使わない。 まぁ、頑張って考えてみてくれよ。
200 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:39:07 ID:QCME1dhS] ID:xh4G82o4 に聞きたいんだが 具体的に何を非難してるん? 下みたいな関数がアンチパターンだっつってんの?なんで? void moveForward(SomeObject* obj); void SomeObject::moveForward(); それとも単に古典タスクのTCB実装を非難してるん? それなら>>1 を読めよ
201 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:46:22 ID:kY8Q/AF4] >>197 別に奴の主義は間違ってない。つーか、正しい。 ただ、今回のようなプログラムによる動的呼び出しには 組み込めないだけで。 だから、機知外の戯言的な受け取りは誤り。
202 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 12:58:44 ID:m2Sg/1Dm] >>201 引数君はどう見ても知障。 あんたも、どうも言ってることがおかしい。 基地外同士、二人で仲良くやってなよ。
203 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 13:02:37 ID:aehXa9i/] >201 > 別に奴の主義は間違ってない。つーか、正しい。 キチガイは、一匹見たら30匹は居ると思わないといけないのか?
204 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 13:16:25 ID:m2Sg/1Dm] >>203 > キチガイは、一匹見たら30匹は居ると思わないといけないのか? それだ!
205 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 14:11:07 ID:kY8Q/AF4] まったく、 君らは、相手に何を伝えたいの? 自分の主張の正しさか? それとも自分は負けてないってことか? もうちょっと、大人になれよな。 まず、知障だの30匹だの そういった言葉を外すところから始めるんだな。
206 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 14:18:06 ID:aehXa9i/] >205 建設的な意見の一つも出せない池沼クンは、早くググって最適解でも見つけてきてください。
207 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 16:36:26 ID:3ohyM900] ID:xh4G82o4だけど >>200 >>144 と>>160 な レス読まないで書き込んだのか>>144 と>>160 が理解できないのか どっちなんだマジで?
208 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 17:18:05 ID:IBZXm9gK] >>205 今まで何本ゲーム作った?
209 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 17:23:00 ID:IBZXm9gK] >>207 あ、お前も何本ゲーム作った?
210 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 18:20:04 ID:aehXa9i/] >207 オマエは、呼び出し側の実装PGに、『こっちで作った1000個の関数を、状態に応じて正しく呼び分けてくれ』、と 伝えるのか。 スゲー厚顔無恥だな。
211 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 18:21:24 ID:3ohyM900] >>209 カウントに入れるのも微妙なのあるが5本ぐれーか? 中途半端に関わったのも入れると10本だ もう30前半
212 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 18:29:25 ID:3ohyM900] >>210 ステータスが1000個あったらそうなるね 回避は不可能 どう組もうがこれの省略はできない ステータスが1000個あって1000個発動関数がない(もしくは分岐がない)プログラムは なにかと何かのステータスの処理を暗黙に共有してるとかいう恐ろしいことになってる せめて1000個の発動関数の中で共通なら共通なりの関数を呼ぶべきだろ この1000個は絶対に省略できない処理だし、しても意味がない
213 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 18:35:15 ID:aehXa9i/] 引数クンの前提は、 1. 更新関数に渡す情報は、全て引数で渡さないといけない であり、さらに、 いわゆるタスク(でも何でもいい、内部状態を持つ独立した何か)の更新処理について、 2. 1000個の状態があったら、それぞれの状態にあわせて1000個の更新関数を作る 2a. グローバル変数やそれに準ずるものの使用は不可 2b. コンテキストでまとめて、一つの引数として渡すことも不可 と主張し、しかも 3. 1000個の更新関数は、最悪の場合全て異なった引数を取る 3a. 1000個の更新関数は、内部状態に応じて正しく呼び分けなければいけない 3b. >182によると、内部で状態を見て分岐するのも不可 であるそうだ。 これを見て、ID:3ohyM900=ID:xh4G82o4がキチガイでないと思えるヤツは、センス無いとしか 言いようが無い。
214 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 20:13:20 ID:3ohyM900] >>213 いいよ そのまとめで問題ない 全部あってるよ
215 名前:名前は開発中のものです。 [2009/06/07(日) 20:47:03 ID:gdjwroFS] >>46 タスク絡みで読む価値があるのは 三宅さんが書いた黒須さんインタビュー記事だけだな なかなか痛快な内容
216 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 21:22:45 ID:gdjwroFS] >>58 preemptiveでない、協調的なマルチタスキング(マルチスレッディング)は 貧弱ターゲット向けの組み込みシステム、OSではわりと使われてると思う >>59 RTOSのキューも基本的に同じ。というかマルチタスキングするOSのレディキューを 説明するときの概念図は基本的にリング状になってる。 「条件がそろうまでは残る感じ」の周期タスクは別段珍しいものではない
217 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 22:30:17 ID:cdPek4Sb] >>213 をみて、終には擁護していた奴も逃げ出したな。
218 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 22:55:45 ID:cdPek4Sb] とくにありえないのが、 >2b. コンテキストでまとめて、一つの引数として渡すことも不可 で、 ・コンパイラの型チェックの機能が死ぬ ・関数がネストすることを考えると、上位関数の引数の数がとんでもないことになる ・プログラマは大概intな途轍もない数の引数を間違えずに指定する必要がある ・呼び出し元は、呼び出し先モジュールの内部構造に依存したコードを書かされる →モジュール化、カプセル化不可能 ・モジュール化、カプセル化出来てないから、バグがあった場合、 それが呼び出し元のバグなのか、呼び出し先のバグなのか判断が付かない。 ・とりあえず、今まで生きてきたなかで、 そんな仕様のプログラムなりライブラリなりは見たことない。
219 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 23:02:46 ID:cdPek4Sb] matrix_add( &m1_1, &m1_2, &m1_3, &m1_4, &m1_5, &m1_6, &m1_7, &m1_8, &m1_9, &m1_10, &m1_11, &m1_12, &m1_13, &m1_14, &m1_15, &m1_16, m2_1, m2_2, m2_3, m2_4, m2_5, m2_6, m2_7, m2_8, m2_9, m2_10, m2_11, m2_12, m2_13, m2_14, m2_15, m2_16, m3_1, m3_2, m3_3, m3_4, m3_5, m3_6, m3_7, m3_8, m3_9, m3_10, m3_11, m3_12, m3_13, m3_14, m3_15, m3_16); うげげげげげ。
220 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 23:28:53 ID:mwRZn/c6] そーいえば取引先中小デベロッパのプログラマで 変数名からクラス名まで全てをアルファベット1文字で書くのがいたなぁ… class A { int B; void D(float E) { ... } }; とか。 周りがどんなに説得しても「コンパイラにかかる負荷が…」どーのこーの言って けっして屈しないらしい。 普通ならそんな偏屈プログラマ、クビにして終わりなんだが、その中小デベロッパの社長が 人情の人でクビはしない主義らしいからまだプログラマ続けてるらしいけど… 引数君を見てたら彼を思い出した。
221 名前:名前は開発中のものです。 mailto:sage [2009/06/07(日) 23:59:01 ID:aehXa9i/] >214 > いいよ > そのまとめで問題ない > 全部あってるよ こんなキチガイと一緒に仕事したくねぇwwwww
222 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 00:40:53 ID:cRHoD8w8] >>219 それはちがくね? まず ・MATRIX管理構造体の何か? ・MATRIX構造体 の2つがあってMATRIX構造体のほうにまず入れる必要があるんだよね? だったらまずMATRIX構造体にmX_Xの変数を入れる処理がどっかにあるんだよね? ところがそのコードはいきなりMATRIX管理構造体に突っ込む想定をしてるじゃん
223 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 01:52:36 ID:wcKZ/hFx] >>222 何わけの分からないこと言ってるんだ?誰か解読してあげて。 ともかく、例の彼のやりかただと、 例え構造体使ったとしても、関数呼び出すたびに構造体のメンバがバラバラになるんだから、 初めから構造体なんて意味ない。だからきっと使わないのだろう。 こんなかんじで。 some_function( ・・・ &m1_1, &m1_2, &m1_3, &m1_4, &m1_5, &m1_6, &m1_7, &m1_8, &m1_9, &m1_10, &m1_11, &m1_12, &m1_13, &m1_14, &m1_15, &m1_16, m2_1, m2_2, m2_3, m2_4, m2_5, m2_6, m2_7, m2_8, m2_9, m2_10, m2_11, m2_12, m2_13, m2_14, m2_15, m2_16, m3_1, m3_2, m3_3, m3_4, m3_5, m3_6, m3_7, m3_8, m3_9, m3_10, m3_11, m3_12, m3_13, m3_14, m3_15, m3_16 ・・・) { ・・・ matrix_add( &m1_1, &m1_2, &m1_3, &m1_4, &m1_5, &m1_6, &m1_7, &m1_8, &m1_9, &m1_10, &m1_11, &m1_12, &m1_13, &m1_14, &m1_15, &m1_16, m2_1, m2_2, m2_3, m2_4, m2_5, m2_6, m2_7, m2_8, m2_9, m2_10, m2_11, m2_12, m2_13, m2_14, m2_15, m2_16, m3_1, m3_2, m3_3, m3_4, m3_5, m3_6, m3_7, m3_8, m3_9, m3_10, m3_11, m3_12, m3_13, m3_14, m3_15, m3_16); ・・・ }
224 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:00:16 ID:cRHoD8w8] >>223 違うってよく考えろ matrix_addなんて関数があったらそれにmatrix構造体の メンバを突っ込むなんてプログラムスタイルがねーんだよ 無意味なことをやってる おそらくmatrix_addでそんなメンバが用意されてるなんてのは アフォな開発者が多分で便利であろうとでも思って用意したアフォ関数だろ (DirectXでもありだけどなw) 必ず、@「matrix構造体にセットする関数を実行」してから A「matrix管理構造体にセット」する流れになる 自分のプログラムみてみろ絶対にそうなってる なってなかったら無駄プログラム そのスタイルも別にいいっちゃいいけど 構造体の中に内包するものが増えるたびに同じ引数を延々と書かなきゃいけなくなるぜ
225 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:00:41 ID:wcKZ/hFx] >まず >・MATRIX管理構造体の何か? >・MATRIX構造体 >の2つがあって まず、この時点で意味不明なんだが。C言語or日本語が不自由なの? なんでmatrixに管理構造体が必要なの?キャッシュ?メモリプール?何を管理するの?
226 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:03:43 ID:674pJASz] 抽象化の苦手な人間はどこにでもいる
227 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:04:44 ID:cRHoD8w8] >>225 matrix_addってことはmatrix構造体をなにかに登録してるんだよね? って意味でmatrix_addがmatrix構造体の管理下にないって意味で書いた
228 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:05:18 ID:wcKZ/hFx] >必ず、@「matrix構造体にセットする関数を実行」してから >A「matrix管理構造体にセット」する流れになる >自分のプログラムみてみろ絶対にそうなってる >なってなかったら無駄プログラム 意味分からん。ひぃ〜〜助けて。
229 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:06:22 ID:bPMhUw6r] 前々前向きじゃないなあ・・・ 時間があったらソース書くとか言った人も来てないのか・・・
230 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:07:19 ID:wcKZ/hFx] >>227 アフォすぎて話にもならない。 普通 matrix_add っつったら足し算だろ。
231 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:23:19 ID:bPMhUw6r] ゲームでいうタスクシステム(笑)って下手すると引数なし関数が 処理順で積まれてるだけとかそんなんでしょ? OSのような物を設計するわけじゃないんだし、お互いの主張を言い合っても無駄なような。 むしろ言い合うってことはすでに2ケースに対する表現方法が違うんだし その2方式の雛形にでもなるようなのを出してしまえばそれで終わる気がするんだが。
232 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 02:38:00 ID:52Y54V93] 取り敢えず引数君は>>218 の指摘に答えを出したほうがいいよ。 MATRIX管理構造体が何かをまず皆に理解させたりするより絶対手っ取り早いよ?
233 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 05:42:45 ID:ivE9pf3b] 引数君は日本語の不自由な知障だから触らないほうがいいよ。
234 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 06:54:34 ID:cRHoD8w8] >>230 え?w ノードでも追加するのかと思ったw でもだったら matrix_add(&mat,足すヤツ); でよくね? 別に型も誤魔化してないじゃん 俺の言ってること違ったっけ?
235 名前:名前は開発中のものです。 [2009/06/08(月) 08:28:28 ID:rJj1ChuH] なんで全部展開する話になったんだ?
236 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 08:54:31 ID:RKbP76xN] >>235 オブジェクト指向のカプセル化とか隠蔽化を理解できないから。
237 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 08:55:36 ID:nNQXSyqJ] >>220 お前騙されてて オブファスケータ使った後のソースしか見せられてないんじゃね