トップページgamedev
1001コメント423KB

タスクシステム総合スレ part7

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/05/07(木) 13:33:06ID:u3YZJr5E
タスクシステムについての議論、相談、質問、雑談などのスレです

part6 http://pc11.2ch.net/test/read.cgi/gamedev/1238725539/
part5 http://pc11.2ch.net/test/read.cgi/gamedev/1234977661/
part4 http://pc11.2ch.net/test/read.cgi/gamedev/1233459490/
part3 http://pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/


・タスクと呼ばれる実装は、非常に多岐に渡ります
 古典タスクシステムについての話題は「>>2」と明示してください
 そうでない場合はカスタム版であることを明示してください

・人を憎んで言語を憎まず
0113名前は開発中のものです。2009/06/05(金) 00:17:01ID:LSp/f/Ff
>>110
はぐらかさないで答えてごらん。
printfやmallocは使えるのかい?
0114名前は開発中のものです。2009/06/05(金) 00:19:27ID:2tFnphs7
>>112
Visual Studio Express Editionがタダで手に入るから、
インストールして適当なGUIプログラム書いてみれ。
0115名前は開発中のものです。2009/06/05(金) 00:21:24ID:/7CplWfL
>>113
元の話と明らかに関係ないじゃん
それのできる・できないが次にどの話題に発展するのかためしに言ってみろよチンカス
0116名前は開発中のものです。2009/06/05(金) 00:24:47ID:2tFnphs7
>>115
サーバークライアントモデルにおける、
サーバーをグローバル変数(システム内で一つ)にすることのメリット云々の話に発展する。
0117名前は開発中のものです。2009/06/05(金) 00:25:08ID:LSp/f/Ff
>>115
元の話と明らかに関係あるんだけど…
少しは脳みそ使ったほうがいいと思うぞ。
0118名前は開発中のものです。2009/06/05(金) 00:27:16ID:/7CplWfL
>>116
printfやmallocの話はどこいったんだよ

そうやって関係ことがわからないから
実装してもまったく意味のないものに力を注ぎ続けて後戻りできなくなっちゃったんじゃないの?君?
ダサいよね
たった1回の間違えを認めないからここまで無意味なことに人生費やして虚しくない?
君のやってることってまったく意味がないんだよ
0119名前は開発中のものです。2009/06/05(金) 00:28:20ID:iV7/c5Cj
>>114
GUIはいいけどここはゲームのタスクシステムの話ですよ
0120名前は開発中のものです。2009/06/05(金) 00:28:53ID:2tFnphs7
たとえば、ゲーム内でスクリプト使うのだって、
スクリプトの入出力を固定化して単純化するところにミソがある。
0121名前は開発中のものです。2009/06/05(金) 00:32:34ID:/7CplWfL
>>120
その「たとえば」って何につながってるのかさっぱりわからないんだけど?w
0122名前は開発中のものです。2009/06/05(金) 00:33:35ID:LSp/f/Ff
>>118
printfやmallocをサービスとして抽象化して話してる例だが…
抽象的な話が理解できるようになるのは小学校3年生ぐらいからで
坊やにはまだ早かったのかもな。
0123名前は開発中のものです。2009/06/05(金) 00:35:46ID:/7CplWfL
>>122
>printfやmallocをサービスとして抽象化して話してる例だが…
は?なんかよくわからない話はじめたけど
なに?サービスって?なんのメリットがあって最終的な目的は何でそういう話をはじめたの?
まず、目的をいってくれない?
君の気まぐれで振る話題についていくほど暇じゃなくて
最終的に導き出したい答えをまずいってくれない?
0124名前は開発中のものです。2009/06/05(金) 00:37:59ID:2tFnphs7
Unixだって、標準入出力を用意して、入出力を固定化したことによる利便性で発展したというのに。
0125名前は開発中のものです。2009/06/05(金) 00:38:06ID:LSp/f/Ff
>>123
坊やは寝る時間だよ。
オネショしないように寝る前にトイレいくんだぞ。
おやすみ。
0126名前は開発中のものです。2009/06/05(金) 00:42:25ID:/7CplWfL
>>125
ハハ、だっせw
逃げたよw
0127名前は開発中のものです。2009/06/05(金) 00:47:01ID:/7CplWfL
最後にもう一回いっておくけど
お前のこれまでやってきたことはなんの意味もない
これまでの人生もいっしょに意味がない

このレスのやりとりでもわかるように
全然脈絡のないことに気まぐれで飛びつくから最終的な答えをだすことができない
なぜそういう行動をとったのか?なぜそういう言動をしたのか?
すべてに理由がない
目的も理由もないから何をやっても無駄
たまたまやったことのメリットを探して他の人に触れ回る
ポリアンナ症候群の末期だな

ぶっちゃけお前技術者向いてないからw
一つ一つ積み上げていった人間に当たるとちっとも歯が立たない

お前のやってきたことなんてしょぼいんだよw
0128名前は開発中のものです。2009/06/05(金) 00:52:53ID:2tFnphs7
自己紹介乙
0129名前は開発中のものです。2009/06/05(金) 01:03:47ID:LSp/f/Ff
ここまでくると痛々しいな。

自分の理解できない話なら無理にからまなければいいのに。
「は?理解できないんですけど」って自分の頭の悪さをわざわざ言いふらさなくても…
0130名前は開発中のものです。2009/06/05(金) 02:09:43ID:sqtpmwaV
引数君ってたしかオブジェクト指向も否定してなかったっけ
つか過疎ってたように見えたけど意外と人いたんだな
0131名前は開発中のものです。2009/06/05(金) 02:16:42ID:ykmxa4wC
>>128
ワロタ
0132名前は開発中のものです。2009/06/05(金) 03:59:45ID:426pRQd2
>ぶっちゃけお前技術者向いてないからw
普通は言われたら傷つく言葉なのに
この子に言われると逆ににやけてしまう不思議
0133名前は開発中のものです。2009/06/05(金) 04:26:28ID:GOddi5PD
引数君、いくらなんでも基地外すぎるだろw
0134名前は開発中のものです。2009/06/05(金) 07:26:02ID:ruoJTJVP
タスクが変更されたかどうかは、
フックするかロギングでいいじゃん。

「同じ引数を与え続ける限り、その関数の動きは変わらない」
故に
「引数を変えたとき、その関数の動きは変わる」
故に、関数は引数によって動きを制御すべきだ、
という論旨で、

即ち、引数によって変更を知ることができる。
ということが言いたいのはわかるけど

凝集度と疎結合を考えたとき、
引数は依存性を高める訳で、
あらゆることを常に引数でコントロールしなければならず、
その依存性を引き離せない。

独立したオブジェクトの自立駆動を考えるなら、
コンストラクト時の引数によって動きを制御し、
その後の引数に頼るべきではないと思うけど。
0135名前は開発中のものです。2009/06/05(金) 08:34:06ID:PGMss8TE
当たり前だろ
引数以外のアクセスを制限するためにやってんだから
こうすることで引数以外の心配をせずに済む
関数の入力と出力もはっきりする
これがデメリットとか言っちゃうの?(笑)
面倒臭いから引数通してないだけだろお前のプログラムって
0136名前は開発中のものです。2009/06/05(金) 09:34:27ID:5cBLdNdX
引数がどうだとかアルゴリズム以前の問題だよ
お前1人だけレベルが桁違いだわマジで
0137名前は開発中のものです。2009/06/05(金) 11:30:37ID:iLixPBxc
やねうらおというキーワードが常に脳内にこびりついてる引数おばけさんは例の人なのかな?
本当に彼は厨とキチガイを引きつける天才だな
0138名前は開発中のものです。2009/06/05(金) 11:37:24ID:iV7/c5Cj
引数可変を想定するなら連絡用の構造体を用意して引数はその構造体のポインタだけにして
とか工夫すればいいし、引数にこだわる人は頭固すぎ、あと挑発に乗りすぎ

みなさん大人げない

0139名前は開発中のものです。2009/06/05(金) 11:48:46ID:ykmxa4wC
>>137
> 本当に彼は厨とキチガイを引きつける天才だな

言い得て妙だな。まあ、氏は東大の大学院に行ける程度の天才(天災?)ではあるんだろうけど。
0140名前は開発中のものです。2009/06/05(金) 12:57:27ID:PGMss8TE
引数の可変なんて想定してないだろ
0141名前は開発中のものです。2009/06/05(金) 20:24:30ID:q/V6VtMh
>106
knuth御大が本にしたら、アンチ派も転向したりするのかな?
0142名前は開発中のものです。2009/06/05(金) 21:52:07ID:k3aCK9Tq
>>135
引数中心のメリットはそこじゃなくて、
型やモジュールの直交性が高まるところにあると思う
なのでオブジェクトを引数に渡すのは上層以外はなるべく避ける
お互いの構造を詳しく記憶しておく必要のあるJavascriptやActionScriptは苦痛だなー
0143名前は開発中のものです。2009/06/05(金) 23:54:01ID:2tFnphs7
もしも、引数君がwin32apiを設計したら。

GetMessage( &dosv, &x86, &win32, &process, &thread, &queue, &msg, NULL, 0, 0 );

めんどくせーし、可読性も落ちる。バグの元だな。
0144名前は開発中のものです。2009/06/06(土) 00:12:45ID:xh4G82o4
>>142
>なのでオブジェクトを引数に渡すのは上層以外はなるべく避ける
は?
単純に引数無しの関数が山盛りのソースでさ

unko();

↑これで呼び出し側から何がわかるの?
この関数を実行することでどの変数を弄る可能性があるのかなんにもわからないじゃん
問題は変更するデータがわからないことなんだよ
プログラムを組む上でこれ以上困難なことってあるか?
この関数を実行することで変更されるデータがまったくわからないんだぞ
何が変更される?
どの変数がバグってる?
すべてがわからない
これを駄目だと思わない脳みそがすでに駄目だろお前等
0145名前は開発中のものです。2009/06/06(土) 00:26:58ID:0TMMUW3y
>>144
引数がないことに対するデメリットはわかります。

でも、あらゆる関数を引数必須にした場合、

classや状態すらつくれないですよね?
あと、
引数必須だとスレッドとか使えないですよ?
スレッドではなくても、
サウンドのストリーミングとか、
割り込みとかはどうするのでしょう?
そういうのはやっぱりなしですか?

何が変更されるか、どの変数がバグっているか
は引数がなくてもオブジェクトの凝集度を高めればわかりますよ。
0146名前は開発中のものです。2009/06/06(土) 00:38:38ID:xh4G82o4
>>145
そんなの必要になるのって限られたところだけだろ?
しかもなんで必要かってもとのシステム作ったやつが引数を頭に入れてねぇから
引数が入らないだけで別に自分で作ったもんなら引数付けられるんだから問題ないじゃん
全体の1%未満の例外もってきて反論してんなよ
引数使えるところは引数つけろよ
だからお前馬鹿だっていうんだぞ
だいたいそーゆー部分はライブラリなりヘルプもちゃんとある部分なんだからいいんだよ
(できればやってほしくはないが)

問題は自作でヘルプも満足にねーのにそんな構造にしちまうところだ
0147名前は開発中のものです。2009/06/06(土) 00:44:48ID:IEIMR7tl
何か長文書いてるけど、
グローバル変数ってことは、プロセスに一つしかないのだから、何が変更されるのかは明確だ。
0148名前は開発中のものです。2009/06/06(土) 00:46:22ID:xh4G82o4
>>147
いや、そういうギャグはもういいからw
0149名前は開発中のものです。2009/06/06(土) 00:49:09ID:IEIMR7tl
引数を設けるということは、それだけ自由度を与えるということ。
必要ないなら削った方が良い。
0150名前は開発中のものです。2009/06/06(土) 00:54:53ID: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);とできるべきだと思ってる
0151名前は開発中のものです。2009/06/06(土) 00:58:05ID:5AeUfGm+
150が噂の引数君か

const修飾子すら知らなさそうだな
本当、話にならないような基地外だわ、こいつは
0152名前は開発中のものです。2009/06/06(土) 00:58:58ID:IEIMR7tl
>>150
そんなプログラム書く人居ないから問題ない。
全体の1%未満の例外もってきて反論しないでほしい。
0153名前は開発中のものです。2009/06/06(土) 01:00:31ID:IEIMR7tl
>ちなみに俺の希望としては
>unko(&chinko);でなくてunko(x,y,z,a,b);とできるべきだと思ってる

>>143
0154名前は開発中のものです。2009/06/06(土) 01:02:48ID:xh4G82o4
>>153
>>144
0155名前は開発中のものです。2009/06/06(土) 01:05:51ID:IEIMR7tl
実際のwin32apiがそうなっていないって時点で、それまでなんだよ。
お前なんかよりはマイクロソフトの社員の方が頭いいからな。
0156名前は開発中のものです。2009/06/06(土) 01:07:34ID:WOc4dWi0
引数さんはもうWin32でプログラム組めないんだね、かわいそうに・・・
0157名前は開発中のものです。2009/06/06(土) 01:09:57ID:xh4G82o4
>>155
なってるじゃん
CreateWindowなんてすげー量の引数じゃん
RegisterClassも強引に引数1つにしてるけどぶっちゃけ何が設定足りないのかわかりずらいだけだよね
0158名前は開発中のものです。2009/06/06(土) 01:13:57ID:IEIMR7tl
大体、システムをシステムたらしめてるデータ群をintやcharレベルで分解していちいち引数で渡していたら、
引数が100個とか200個とかになるぞ。4x4マトリックスですら16個もメンバあるのに。
引数の指定ミスったらどうするんだよ。

オブジェクトや構造体はポインタでやりとりするのが普通だし、
OSのリソースはハンドルでやりとりする。
ファイルにはファイル名がある。

お前みたいなクズにだって親が名前を付けてくれていて、
普段はそれつかってコミュニケーションとってるだろ。
それと同じだ。
0159名前は開発中のものです。2009/06/06(土) 01:14:44ID:IEIMR7tl
>>157
でも一度作ったら、あとはハンドルでやり取りするだろ。
0160名前は開発中のものです。2009/06/06(土) 01:18:28ID:xh4G82o4
まあ、引数を使う理由の1つは>>144
徹底すればプロジェクトでバグ数が1000とか4桁は
絶対にいかないようになるぐらい効果絶大俺オススメ
単純だけどプロの技術ですよ
まあ、これが一番大事かなぁ

後は、引数を通してはいるけど型を誤魔化してるってのもやらないほうがいいぞ
たしかに実装はほんのちょっと楽にはなるが
実行してみるまで何がくるのかわからないプログラムになってしまうぞ
ということはいくらコードレビューなんてやろうともソースを丁寧に整備しようと
そのプログラムは動かしてみるまでどうなってるのかほとんどわからない
プログラムになってしまう
汎用性をつけるっていってもそりゃMSが提供するライブラリならわかるけど
個人が作る関数にそんなもんいらないからはっきりいってやらないほうがいい

>>158
>引数の指定ミスったらどうするんだよ。
コンパイル時にエラーが出るんじゃない(笑)
0161名前は開発中のものです。2009/06/06(土) 01:23:47ID:IEIMR7tl
>>引数の指定ミスったらどうするんだよ。
>コンパイル時にエラーが出るんじゃない(笑)

普通ならコンパイルエラーが出る筈だが、お前のやり方だと、
型として纏まってた筈のデータをintやcharに分解して引数で渡すから、
コンパイラの型チェックを殺してしまう。
0162名前は開発中のものです。2009/06/06(土) 01:26:02ID:QPxFjGuq
void hoge(int x1, int x2, int x3);



{
 hoge(x1, x1, x3);
}
0163名前は開発中のものです。2009/06/06(土) 01:26:24ID:C+Rvd4dM
不毛すぎる

現代版の最強でない、シンプルなタスクシステムの代替アルゴリズムをみんなで考えろよw

最強を考え出すと喧嘩になるから
0164名前は開発中のものです。2009/06/06(土) 01:28:49ID:YPKwIylL
で、結局引数君はprintfやmallocは使えない、と。

あぁ、標準入出力やヒープの概念を理解してないから
なんでグローバル変数と関係があるか、すらわからないか
0165名前は開発中のものです。2009/06/06(土) 01:29:30ID:C+Rvd4dM
>>164
そういうあおりはいらんというに
0166名前は開発中のものです。2009/06/06(土) 01:38:04ID:C+Rvd4dM
前向きな提案したら静かになった
0167名前は開発中のものです。2009/06/06(土) 01:44:47ID:IEIMR7tl
しょうがないな。

シンプルなタスクシステムをお求めなら、型ごとにリストを持つスタイルがお勧め。
01681422009/06/06(土) 02:01:22ID:LkHpnJAV
>>144
全く噛み合わないレス返されても困る。
俺はそんな所にふれてないしな
それともプリミティブとオブジェクトの区別もつかない人?
0169名前は開発中のものです。2009/06/06(土) 02:06:35ID:5AeUfGm+
引数君は知障だから触らないほうがよくね?
0170名前は開発中のものです。2009/06/06(土) 02:08:38ID:C+Rvd4dM
>>169
この際明確な答えを出す方がいい。

リスト、キュー、ソートなどなどのようなのに加えてしまえばいいだけ。

あとは自分なりにそこから派生として考えればいいだけ。
タスクシステムというのだって根本的な部分は動的に変化する
オブジェクトを効率よく管理するためのアルゴリズムでしかないんだし
0171名前は開発中のものです。2009/06/06(土) 02:21:46ID:YPKwIylL
ここはおつむの弱いアンチタスクや引数君みたいなのを隔離して遊んでやるスレ。

まともな話をこのスレで初めてもおつむの弱い子たちのコンプレックスの餌食になるだけだ。

まぁ前スレでフルボッコにされたアンチタスクがゲ製作技術の別スレに逃げ出して
迷惑かけたみたいだから、逃げ出さない程度に加減して遊んでやろう。
0172名前は開発中のものです。2009/06/06(土) 02:23:06ID:C+Rvd4dM
>>171
アンチとは失敬な
名前が嫌いなだけで同様の手法は必要だと思ってるぞw
0173名前は開発中のものです。2009/06/06(土) 09:36:40ID:qdRKJ34Y
>>150がスレの主題に合っているかは知らないが
言っていることは、非常によくわかる。
これは、他人が作ったソースを読むときに
出てくるんであって、俺ソースのメンテナンスだけでは
わからない。
0174名前は開発中のものです。2009/06/06(土) 10:57:01ID:yoFXLlZ9
久しぶりに本家の引数クンが出現してるなぁwww

相変わらずの無能っぷりでワロタwwwww
0175名前は開発中のものです。2009/06/06(土) 11:05:51ID:yoFXLlZ9
>160
ちょっとここでいわゆる『タスク』という言葉を使わせてもらうが、まぁ個々に内部状態を保持した
何かの動作単位だと思ってくれればいいよ。

タスクの内部の状態によって必要なパラメータが変わる場合は、その都度引数を変えた関数を用意
して、呼び出し側が『タスクの内部状態を参照』して呼び出す関数を変更するんですねwww

さすが、引数クンのそのストイックさにシビレル、アコガレルゥwww
0176名前は開発中のものです。2009/06/06(土) 11:21:09ID:yoFXLlZ9
おっと、強調する部分を間違えたw

×呼び出し側が『タスクの内部状態を参照』して
○『呼び出し側がタスクの内部状態を参照』して

こっちの方が通りがいいな。

さあ、引数クンのストイックさにあこがれて引数でパラメータを渡そうと思ってるオコチャマは、
ナニが問題なのかよ〜く考えてみようw
0177名前は開発中のものです。2009/06/06(土) 15:47:20ID:LkHpnJAV
>>175
> タスクの内部の状態によって必要なパラメータが変わる場合は、
問題になるほどこういう状況が発生していいのだろうか…?
それはタスクシステムを使った場合においても破綻するぞ
柔軟性の無い思考を否定するために自らが根本を間違えてしまうのはどうなの?
0178名前は開発中のものです。2009/06/06(土) 17:14:27ID:yoFXLlZ9
>177
例) 状態Aでは外部情報a,b,cを参照して、状態Bでは外部情報a,c,d,eを参照する

なんていうのは、AI作ってれば(AIでなくとも)よくあることだよ。

その際、引数クンはそれぞれ異なった引数を持つ状態更新関数
 UpdateWithStateA( a, b, c )

 UpdateWithStateB( a, c, d, e )
を作成して、外から状態に応じて呼び分けるんだろ。
なにせ『引数しか使っちゃダメ』で、しかも『不必要な情報を引数で渡したらダメ。コンテキストをまとめて
渡すなんてもってのほか、誰がその情報を変更したか分からなくなるよ!!!』なんだからwwwww
0179名前は開発中のものです。2009/06/06(土) 17:24:03ID:5AeUfGm+
> 誰がその情報を変更したか分からなくなるよ!!

これなのだが、分からなくなっていいと思うのだが。
引数君は本当にプログラム1行でも書けるんだろうか…。
0180名前は開発中のものです。2009/06/06(土) 17:42:40ID:LkHpnJAV
>>178
論理的に成り立ってない
君はただの勝ち馬乗りだよ
間違いに間違いでの応酬は無意味
0181名前は開発中のものです。2009/06/06(土) 17:45:47ID:LkHpnJAV
手段が一通りしかないという飛躍した考えは
初期のスレからずっとある

議論にならないのもよくわかる

しかもそういう奴に限って後出しのために含みを残している
これではコードも示せない
0182名前は開発中のものです。2009/06/06(土) 19:08:52ID:xh4G82o4
ID:xh4G82o4だけど

>>178
それであってるよ
ステータスが代わるなら呼び出す関数を替える
仮に

Q.ステータスが1000個あったらどうするか?
A.関数を1000個(および必要なもの)すべてを用意します(使いまわしは絶対にしません)

でFA
仮に引数を共通化して

//1つ目の引数はステータス、2つ目の引数はステータスに必要なデータの束
changeState(int state,void* date);

みたいなもんを使っても内部でswitchかそれに代わるものが絶対に必要になるから
こっちのがいい
もし、こうなっていない・これを面倒だと思うプログラムがあったら
それは非常に危険なコードを抱えてる可能性がある
0183名前は開発中のものです。2009/06/06(土) 19:11:05ID:xh4G82o4
あ、こっちのがってのは関数をステータスの数分用意するほうね
0184名前は開発中のものです。2009/06/06(土) 20:10:44ID:yoFXLlZ9
>182
呼び出す関数が1000個あるということは、呼び出し元が1000箇所か。
頑張って呼び分けてくれwww

それとも、それら上位に一つ関数を作ってそこでコンテキストを受け取って、その中で1000個の
ステータスごとの関数を呼び分けるつもりなのかな?

まぁ、どっちにしてもお疲れさんってことでwww

>178
> 論理的に成り立ってない

wwwww
>182を見習えよwww
0185名前は開発中のものです。2009/06/06(土) 20:11:37ID:yoFXLlZ9
>178じゃ事故レスじゃねぇかwww
>180だwww

>180
>182を見習えよwww
0186名前は開発中のものです。2009/06/06(土) 22:32:13ID:DjY3tAB7
>引数君
君のやり方は認めるから
実際に作った上でどうメリット・デメリットがあったか語ってくれ
0187名前は開発中のものです。2009/06/06(土) 23:19:34ID:qdRKJ34Y
まあ、引数分けはメリットないし、そもそも無理かな?
boost::variantとかで、十分安全に出来ると思うし
そっちで妥協して。
0188名前は開発中のものです。2009/06/07(日) 02:05:11ID:W179Gh2Y
引数君のやり方に従ってコーディングされている
プログラムを逆に見てみたいなぁ。
引数のうちの型が一つ変わっただけで
一体どれだけの修正の手間が掛かって
それをどうやって解消しているのだろう?
今の世にあるコードリファクタリング機構じゃ歯が立たないよ。
ゲーム開発なんて仕様変更は日常茶飯事なのになあ。
0189名前は開発中のものです。2009/06/07(日) 02:08:38ID:3ohyM900
>>186
ID:xh4G82o4だけど

メリットというか引数を無くすことがデメリットであって
メリットなんてない
引数無しは引数がないことによるデメリットが生まれるだけでメリットは一つもない
上のほうで馬鹿が何も考えずに「1000個用意するの?馬鹿じゃね?w」的に煽ってるけど
ぶっちゃけ代わらない
絶対に関数の中で分岐が必要になる
もし、なくしたらバグが止まらない
仮に開発資料でステータスごとの初期化パラメータ一覧を出せといわれたら
この馬鹿は何を出すのか?多分こいつのプログラムはすべての処理を追いかけて
やっと1つのステータスの初期化状態がわかるといったプログラムになってる
恐ろしいほどダサいソースになってるはず
0190名前は開発中のものです。2009/06/07(日) 02:09:50ID:3ohyM900
>>188
タスクなんて使わないで組めばいいよ
タスクを使わないバージョンは前にこのスレでも書いてあげたんだけど
参加してなかったんなら暇なときに比較ソースをあげるよ
0191名前は開発中のものです。2009/06/07(日) 02:27:59ID:atKK+Qwb
>>188は、クラスのメソッドにも同じことをしているの?
0192名前は開発中のものです。2009/06/07(日) 02:36:39ID:cdPek4Sb
クラスのメンバ変数は、自クラス内でグローバルだからな。
0193名前は開発中のものです。2009/06/07(日) 08:40:48ID:mwRZn/c6
引数君って発言を見る限りゲームはおろかまともな規模のプログラムを完成させたこともなさそう。
ゲームなり何なりを完成まで作ってみれば、ここにいる人たちの発言も理解できるようになるんだろうけど…
0194名前は開発中のものです。2009/06/07(日) 12:11:24ID:aehXa9i/
>189
> 引数無しは引数がないことによるデメリットが生まれるだけでメリットは一つもない
> 上のほうで馬鹿が何も考えずに「1000個用意するの?馬鹿じゃね?w」的に煽ってるけど
> ぶっちゃけ代わらない

1000個の関数を呼び分けるのに、分岐を使わないのか。
スゲー、ミラクルテクニックだな。
0195名前は開発中のものです。2009/06/07(日) 12:15:45ID: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
  ....
}

とかやるつもりなんだろうか?
0196名前は開発中のものです。2009/06/07(日) 12:20:43ID:kY8Q/AF4
>>194
いちいち煽らんでよろしい。
先のレスに「1000個の関数を呼び分けるのに、分岐を使わない」とは
一言も書いていない。
仮に1000の関数を省いたとしても、代わりに1000の分岐が生まれるんじゃ
余計に悪くなる、と書いている。

大体、1000の機能を提供するなら1000の関数が必要になるのは
当たり前。そこは問題じゃない。
0197名前は開発中のものです。2009/06/07(日) 12:28:41ID:m2Sg/1Dm
引数君って明らかに知障なんだが、どんなプログラムを書くんだろうか。

ブロック崩しぐらいでいいから書いたソース見てみたいな。
0198名前は開発中のものです。2009/06/07(日) 12:34:26ID:aehXa9i/
>196
オマエもバカのお仲間か。

> 仮に1000の関数を省いたとしても、代わりに1000の分岐が生まれるんじゃ
> 余計に悪くなる、と書いている。

引数の異なる1000個の関数を、分岐無しで呼び分ける方法を教えてくれ。
0199名前は開発中のものです。2009/06/07(日) 12:36:29ID:aehXa9i/
>196
あぁ、自分がこの点に粘着しているのは、引数クンの言う『異なるパラメータが必要な関数は
全て異なる関数として作る』という主張に沿っているだけだから。

引数でしかデータを渡したらいけない。グローバルなものは一切使わない。

まぁ、頑張って考えてみてくれよ。
0200名前は開発中のものです。2009/06/07(日) 12:39:07ID:QCME1dhS
ID:xh4G82o4 に聞きたいんだが

具体的に何を非難してるん?
下みたいな関数がアンチパターンだっつってんの?なんで?

void moveForward(SomeObject* obj);
void SomeObject::moveForward();

それとも単に古典タスクのTCB実装を非難してるん?
それなら>>1を読めよ
0201名前は開発中のものです。2009/06/07(日) 12:46:22ID:kY8Q/AF4
>>197
別に奴の主義は間違ってない。つーか、正しい。
ただ、今回のようなプログラムによる動的呼び出しには
組み込めないだけで。
だから、機知外の戯言的な受け取りは誤り。
0202名前は開発中のものです。2009/06/07(日) 12:58:44ID:m2Sg/1Dm
>>201
引数君はどう見ても知障。

あんたも、どうも言ってることがおかしい。
基地外同士、二人で仲良くやってなよ。
0203名前は開発中のものです。2009/06/07(日) 13:02:37ID:aehXa9i/
>201
> 別に奴の主義は間違ってない。つーか、正しい。

キチガイは、一匹見たら30匹は居ると思わないといけないのか?
0204名前は開発中のものです。2009/06/07(日) 13:16:25ID:m2Sg/1Dm
>>203
> キチガイは、一匹見たら30匹は居ると思わないといけないのか?

それだ!
0205名前は開発中のものです。2009/06/07(日) 14:11:07ID:kY8Q/AF4
まったく、
君らは、相手に何を伝えたいの?
自分の主張の正しさか?
それとも自分は負けてないってことか?
もうちょっと、大人になれよな。
まず、知障だの30匹だの
そういった言葉を外すところから始めるんだな。
0206名前は開発中のものです。2009/06/07(日) 14:18:06ID:aehXa9i/
>205
建設的な意見の一つも出せない池沼クンは、早くググって最適解でも見つけてきてください。
0207名前は開発中のものです。2009/06/07(日) 16:36:26ID:3ohyM900
ID:xh4G82o4だけど

>>200
>>144>>160

レス読まないで書き込んだのか>>144>>160が理解できないのか
どっちなんだマジで?
0208名前は開発中のものです。2009/06/07(日) 17:18:05ID:IBZXm9gK
>>205
今まで何本ゲーム作った?
0209名前は開発中のものです。2009/06/07(日) 17:23:00ID:IBZXm9gK
>>207
あ、お前も何本ゲーム作った?
0210名前は開発中のものです。2009/06/07(日) 18:20:04ID:aehXa9i/
>207
オマエは、呼び出し側の実装PGに、『こっちで作った1000個の関数を、状態に応じて正しく呼び分けてくれ』、と
伝えるのか。

スゲー厚顔無恥だな。
0211名前は開発中のものです。2009/06/07(日) 18:21:24ID:3ohyM900
>>209
カウントに入れるのも微妙なのあるが5本ぐれーか?
中途半端に関わったのも入れると10本だ
もう30前半
0212名前は開発中のものです。2009/06/07(日) 18:29:25ID:3ohyM900
>>210
ステータスが1000個あったらそうなるね
回避は不可能
どう組もうがこれの省略はできない

ステータスが1000個あって1000個発動関数がない(もしくは分岐がない)プログラムは
なにかと何かのステータスの処理を暗黙に共有してるとかいう恐ろしいことになってる
せめて1000個の発動関数の中で共通なら共通なりの関数を呼ぶべきだろ
この1000個は絶対に省略できない処理だし、しても意味がない
■ このスレッドは過去ログ倉庫に格納されています