トップページ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」と明示してください
 そうでない場合はカスタム版であることを明示してください

・人を憎んで言語を憎まず
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個は絶対に省略できない処理だし、しても意味がない
0213名前は開発中のものです。2009/06/07(日) 18:35:15ID:aehXa9i/
引数クンの前提は、

1. 更新関数に渡す情報は、全て引数で渡さないといけない

であり、さらに、

いわゆるタスク(でも何でもいい、内部状態を持つ独立した何か)の更新処理について、
2. 1000個の状態があったら、それぞれの状態にあわせて1000個の更新関数を作る
2a. グローバル変数やそれに準ずるものの使用は不可
2b. コンテキストでまとめて、一つの引数として渡すことも不可

と主張し、しかも

3. 1000個の更新関数は、最悪の場合全て異なった引数を取る
3a. 1000個の更新関数は、内部状態に応じて正しく呼び分けなければいけない
3b. >182によると、内部で状態を見て分岐するのも不可

であるそうだ。

これを見て、ID:3ohyM900=ID:xh4G82o4がキチガイでないと思えるヤツは、センス無いとしか
言いようが無い。
0214名前は開発中のものです。2009/06/07(日) 20:13:20ID:3ohyM900
>>213
いいよ
そのまとめで問題ない
全部あってるよ
0215名前は開発中のものです。2009/06/07(日) 20:47:03ID:gdjwroFS
>>46
タスク絡みで読む価値があるのは
三宅さんが書いた黒須さんインタビュー記事だけだな
なかなか痛快な内容
0216名前は開発中のものです。2009/06/07(日) 21:22:45ID:gdjwroFS
>>58
preemptiveでない、協調的なマルチタスキング(マルチスレッディング)は
貧弱ターゲット向けの組み込みシステム、OSではわりと使われてると思う

>>59
RTOSのキューも基本的に同じ。というかマルチタスキングするOSのレディキューを
説明するときの概念図は基本的にリング状になってる。
「条件がそろうまでは残る感じ」の周期タスクは別段珍しいものではない
0217名前は開発中のものです。2009/06/07(日) 22:30:17ID:cdPek4Sb
>>213 をみて、終には擁護していた奴も逃げ出したな。
0218名前は開発中のものです。2009/06/07(日) 22:55:45ID:cdPek4Sb
とくにありえないのが、
 >2b. コンテキストでまとめて、一つの引数として渡すことも不可
で、

・コンパイラの型チェックの機能が死ぬ
・関数がネストすることを考えると、上位関数の引数の数がとんでもないことになる
・プログラマは大概intな途轍もない数の引数を間違えずに指定する必要がある
・呼び出し元は、呼び出し先モジュールの内部構造に依存したコードを書かされる
 →モジュール化、カプセル化不可能
・モジュール化、カプセル化出来てないから、バグがあった場合、
 それが呼び出し元のバグなのか、呼び出し先のバグなのか判断が付かない。
・とりあえず、今まで生きてきたなかで、
 そんな仕様のプログラムなりライブラリなりは見たことない。
0219名前は開発中のものです。2009/06/07(日) 23:02:46ID: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);

うげげげげげ。
0220名前は開発中のものです。2009/06/07(日) 23:28:53ID:mwRZn/c6
そーいえば取引先中小デベロッパのプログラマで
変数名からクラス名まで全てをアルファベット1文字で書くのがいたなぁ…
class A { int B; void D(float E) { ... } }; とか。
周りがどんなに説得しても「コンパイラにかかる負荷が…」どーのこーの言って
けっして屈しないらしい。

普通ならそんな偏屈プログラマ、クビにして終わりなんだが、その中小デベロッパの社長が
人情の人でクビはしない主義らしいからまだプログラマ続けてるらしいけど…

引数君を見てたら彼を思い出した。
0221名前は開発中のものです。2009/06/07(日) 23:59:01ID:aehXa9i/
>214
> いいよ
> そのまとめで問題ない
> 全部あってるよ

こんなキチガイと一緒に仕事したくねぇwwwww
0222名前は開発中のものです。2009/06/08(月) 00:40:53ID:cRHoD8w8
>>219
それはちがくね?
まず

・MATRIX管理構造体の何か?
・MATRIX構造体

の2つがあってMATRIX構造体のほうにまず入れる必要があるんだよね?
だったらまずMATRIX構造体にmX_Xの変数を入れる処理がどっかにあるんだよね?

ところがそのコードはいきなりMATRIX管理構造体に突っ込む想定をしてるじゃん
0223名前は開発中のものです。2009/06/08(月) 01:52:36ID: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);
  ・・・
}
0224名前は開発中のものです。2009/06/08(月) 02:00:16ID:cRHoD8w8
>>223
違うってよく考えろ
matrix_addなんて関数があったらそれにmatrix構造体の
メンバを突っ込むなんてプログラムスタイルがねーんだよ
無意味なことをやってる
おそらくmatrix_addでそんなメンバが用意されてるなんてのは
アフォな開発者が多分で便利であろうとでも思って用意したアフォ関数だろ
(DirectXでもありだけどなw)

必ず、@「matrix構造体にセットする関数を実行」してから
A「matrix管理構造体にセット」する流れになる

自分のプログラムみてみろ絶対にそうなってる
なってなかったら無駄プログラム

そのスタイルも別にいいっちゃいいけど
構造体の中に内包するものが増えるたびに同じ引数を延々と書かなきゃいけなくなるぜ
0225名前は開発中のものです。2009/06/08(月) 02:00:41ID:wcKZ/hFx
>まず

>・MATRIX管理構造体の何か?
>・MATRIX構造体

>の2つがあって

まず、この時点で意味不明なんだが。C言語or日本語が不自由なの?
なんでmatrixに管理構造体が必要なの?キャッシュ?メモリプール?何を管理するの?
0226名前は開発中のものです。2009/06/08(月) 02:03:43ID:674pJASz
抽象化の苦手な人間はどこにでもいる
0227名前は開発中のものです。2009/06/08(月) 02:04:44ID:cRHoD8w8
>>225
matrix_addってことはmatrix構造体をなにかに登録してるんだよね?
って意味でmatrix_addがmatrix構造体の管理下にないって意味で書いた
0228名前は開発中のものです。2009/06/08(月) 02:05:18ID:wcKZ/hFx
>必ず、@「matrix構造体にセットする関数を実行」してから
>A「matrix管理構造体にセット」する流れになる

>自分のプログラムみてみろ絶対にそうなってる
>なってなかったら無駄プログラム

意味分からん。ひぃ〜〜助けて。
0229名前は開発中のものです。2009/06/08(月) 02:06:22ID:bPMhUw6r
前々前向きじゃないなあ・・・
時間があったらソース書くとか言った人も来てないのか・・・

0230名前は開発中のものです。2009/06/08(月) 02:07:19ID:wcKZ/hFx
>>227
アフォすぎて話にもならない。
普通 matrix_add っつったら足し算だろ。
0231名前は開発中のものです。2009/06/08(月) 02:23:19ID:bPMhUw6r
ゲームでいうタスクシステム(笑)って下手すると引数なし関数が
処理順で積まれてるだけとかそんなんでしょ?
OSのような物を設計するわけじゃないんだし、お互いの主張を言い合っても無駄なような。
むしろ言い合うってことはすでに2ケースに対する表現方法が違うんだし
その2方式の雛形にでもなるようなのを出してしまえばそれで終わる気がするんだが。
0232名前は開発中のものです。2009/06/08(月) 02:38:00ID:52Y54V93
取り敢えず引数君は>>218の指摘に答えを出したほうがいいよ。
MATRIX管理構造体が何かをまず皆に理解させたりするより絶対手っ取り早いよ?
0233名前は開発中のものです。2009/06/08(月) 05:42:45ID:ivE9pf3b
引数君は日本語の不自由な知障だから触らないほうがいいよ。
0234名前は開発中のものです。2009/06/08(月) 06:54:34ID:cRHoD8w8
>>230
え?w
ノードでも追加するのかと思ったw

でもだったら

matrix_add(&mat,足すヤツ);

でよくね?
別に型も誤魔化してないじゃん
俺の言ってること違ったっけ?
0235名前は開発中のものです。2009/06/08(月) 08:28:28ID:rJj1ChuH
なんで全部展開する話になったんだ?
0236名前は開発中のものです。2009/06/08(月) 08:54:31ID:RKbP76xN
>>235
オブジェクト指向のカプセル化とか隠蔽化を理解できないから。
0237名前は開発中のものです。2009/06/08(月) 08:55:36ID:nNQXSyqJ
>>220
お前騙されてて
オブファスケータ使った後のソースしか見せられてないんじゃね
0238名前は開発中のものです。2009/06/08(月) 21:32:36ID:wcKZ/hFx
>>234
それはそうなんだが、>>213を主張する通称引数君が現れてだな・・・。
>>219は反面教師的な意味で書いたコードなんだ。

ところで今思ったんだけど、
・すべての情報は引数で渡す
・構造体で渡すのは禁止
ってことは、処理に必要な情報は、一時的にでもすべてスタックに乗せる必要があるよな。
スタックオーバーフローとか大丈夫なんだろうか。
画像とか音楽とか、どうやって関数に渡すつもりなんだろう。
0239名前は開発中のものです。2009/06/08(月) 21:57:45ID:cRHoD8w8
>>238
>・構造体で渡すのは禁止
マジで?w
型を誤魔化すなとは言ったが・・・
でもまあ、ある意味それもアリなんだよね
ちょっと複雑な言い分になるけど
0240名前は開発中のものです。2009/06/08(月) 21:58:56ID:ivE9pf3b
構造体渡すの禁止とか言ってる奴、頭おかしいから触らないほうがいいよ。

そいつプログラム1行も書けない。
02412132009/06/08(月) 22:01:21ID:iv6sA5z4
>238
いやいや、幾らなんでもそれは無い…、と信じたい。

『コンテキストとしてまとめたモノがダメ』というのは、『そのコンテキストの中に処理に関係ない情報が
混ざっているのがダメ』という意味らしいから、matrix_addみたいなのは構造体そのまま引渡しできる…、
と信じたい。そして全てが引数で渡される必要があるからといって、全てを代入渡ししなければいけない
ワケではない…、と信じたい。参照渡しを禁止したりはしないだろう…、と信じたい。
0242名前は開発中のものです。2009/06/08(月) 22:23:28ID:dIDrAXVe
どうせこんな言動とプログラミング能力じゃ
社会人としてやっていけないから何も心配することはない。
放っておいても現実に被害を被る事なんてないさ。
そんな能力なんて無いよ。
0243名前は開発中のものです。2009/06/08(月) 23:50:28ID:cRHoD8w8
>>241
その通りだけど
なんか構造体渡し禁止になってるんだよね
余計なものを渡すのが駄目ってことなんだけどね
0244名前は開発中のものです。2009/06/08(月) 23:51:54ID:cRHoD8w8
>>242
そうやって人格否定から入って相手の発言を潰すくせどうにかならんの?
0245名前は開発中のものです。2009/06/09(火) 00:22:09ID:Klhc/GyU
引数君みたいな基地外、まともに相手するだけ無駄。

引数君みたいなプログラムが1行も書けない基地外の議論が
有意義だと思ってる時点で ID:cRHoD8w8も頭おかしい。

プログラムが1行も書けない自称プログラマはすみやかにお引き取りください。
0246名前は開発中のものです。2009/06/09(火) 00:33:30ID:cuID72xD
一行も書けないのはさすがにその人がクズw
0247名前は開発中のものです。2009/06/09(火) 00:33:30ID:MBMwWKo7
>>245
でも面倒臭い(かもしれないイメージが強い)以外に欠点ってないでしょ?
引数無しにするのは「面倒臭い」からでしかないでしょ?
これを諦めたプログラムってやっぱり制御不能になりやすいと思うんだよね

引数は大事だよ
無視してしまったらそもそも制御なんてしなくていいじゃん
ヘッダファイルもマスターヘッダ作って全部インクルードして
構造体も全部そこで定義してすべてをまとめたもん作って
インスタンスホルダーに対して読み書きって作り方ってもう駄目なのわかるじゃん

もうそろそろ汎用化できない処理と汎用化できる処理の判別がついてもいいころだと思うのよ
タスク信者もさ
いつまでもおっさんみたいにそこで足踏みしてるとスキルあがらないぜ
大事なのは書き比べて検証して自分なりの答えを出すことだと思うけどね
引数をなくしても結局手間は変わらないってすぐに理解できる
0248名前は開発中のものです。2009/06/09(火) 00:55:18ID:Klhc/GyU
>>247
> でも面倒臭い(かもしれないイメージが強い)以外に欠点ってないでしょ?

本当にあんた、プログラム、1行でも書けるのか?全然話にならないんだが。

> ヘッダファイルもマスターヘッダ作って全部インクルードして

あ!お前、このスレのpart3当たりに居た、総合ヘッダ君か。通りで言ってることがおかしいと思った。

このスレ、引数君と総合ヘッダ君が居なくなれば、まともなスレなんだろうけどな。
この二人の基地外のせいでレベルが大幅ダウンだよ。
0249名前は開発中のものです。2009/06/09(火) 00:56:29ID:7ufIYPer
つーか前向きになれw
0250名前は開発中のものです。2009/06/09(火) 01:27:18ID:GsDiyf17
引数君と総合ヘッダ君って同一人物じゃなかったの?
0251名前は開発中のものです。2009/06/09(火) 05:02:55ID:X2fb91bq
その人ってそれが駄目って言ってんじゃん
総合ヘッダ君じゃないんでは
0252名前は開発中のものです。2009/06/09(火) 05:42:54ID:Klhc/GyU
>>251
むむ・・そうかも知れん。だとしたらその件についてはID:MBMwWKo7に謝る。スマソ。
0253名前は開発中のものです。2009/06/09(火) 06:42:20ID:MBMwWKo7
>>252
お前、読解力0だろw
0254名前は開発中のものです。2009/06/09(火) 06:44:33ID:SajZ+q78
総合ヘッダ君は、何でもかんでもぶち込んだ総合ヘッダを使うしか方法を知らないから総合ヘッダ君
だったような気がする。公開用のヘッダファイルとプライベートヘッダに分ける方法を知らない。

その意味で行けば、>247も充分総合ヘッダ君と同等だと思うけどね。
0255名前は開発中のものです。2009/06/09(火) 07:07:38ID:MBMwWKo7
>>254
はぁ?
0256名前は開発中のものです。2009/06/09(火) 07:08:40ID:s3lVRyLD
お前らつまらん

0257名前は開発中のものです。2009/06/09(火) 07:26:35ID:7ptmeyyR
馬鹿よりましだろ
0258名前は開発中のものです。2009/06/09(火) 12:43:14ID:4xDwQnN3
人はこんなピンポイントで争えるんだぜ
0259名前は開発中のものです。2009/06/09(火) 19:38:02ID:CxjpUjFg
どっちにしても、
hoge_update( &hoge.x, &hoge.y );
はキモイ
0260名前は開発中のものです。2009/06/09(火) 19:46:12ID:CxjpUjFg
ああ、違った。こうか。
switch( hoge.state )
{
  case: hoge_update_01( &hoge.x, &hoge.y ); break;
  case: hoge_update_02( &hoge.state, &hoge.x, &hoge.y ); break;
  case: hoge_update_03(); break;
  default: break;
}
0261名前は開発中のものです。2009/06/09(火) 19:56:38ID:CxjpUjFg
言っとくが、嫌なのは面倒だからじゃないぞ。
切り分けが悪いからだ。
0262オガワン2009/06/09(火) 20:01:01ID:FN5e4dU7
俺は関数をほぼ使わないプログラミングを心掛けている。その場で
for分で回すようにしてる。
何システムと呼べはいいんだろうか?
関数ってジャンプだから使わないほうが見通しいいもんね。
どのテキストにも始めの方に「関数を使うべし」って書いてあると
おもうけど、それが大きな誤りだと思う。
0263名前は開発中のものです。2009/06/09(火) 21:40:16ID:SajZ+q78
いや、ワシはローカル変数ちゅうモンこそ悪じゃと感じとる。
全部グローバルの方が見通しがいいじゃろ。
0264名前は開発中のものです。2009/06/09(火) 22:20:42ID:peLfYxeX
>>261
いや、面倒だからだろ
仮に一瞬で記述してくれるもん(未来ツール?(笑))があったらわざわざ使わないだろ?

>>263
>>144の問題は気力と体力でぶっちぎる?
0265名前は開発中のものです。2009/06/09(火) 22:21:55ID:iIbCi5/r
お前らはカプセル化と言う言葉をしらんのか!
俺は、たった一つのクラスに総てをカプセル化するプログラミングが至高だ。
0266名前は開発中のものです。2009/06/09(火) 22:48:22ID:SajZ+q78
>264
いやいや、ジョークだからw

古老コボラーっぼく書いてみたんだけど、分かりにくかったか。
勘違いさせてスマン。
0267名前は開発中のものです。2009/06/09(火) 23:29:56ID:CxjpUjFg
>>264
>>260をみて、「状態で分岐する部分」と「状態遷移を行う部分」が別々のところにあるなんて、おかしいと思わないのか?
下手したら、会社間跨るぞ。
0268名前は開発中のものです。2009/06/10(水) 00:47:13ID:wAmVh6WC
>>267
何が言いたいのかさっぱりわからないのでちゃんと
宣言してから詳細な説明に入れよ
説明下手糞だなお前w

俺のはもっとわかりやすかっただろ?
・引数を使わないヤツは駄目だ
・型誤魔化してるヤツも駄目だ
って

お前、まず自分の出した結論をはっきりいえよ
0269名前は開発中のものです。2009/06/10(水) 00:53:06ID:XvIYvkVn
>>267-268
お前ら、基地外同士、仲良くやれよ。
0270名前は開発中のものです。2009/06/10(水) 01:06:36ID:UNU3sz5V
クラス化したら引数なくてもできるんじゃね
■ このスレッドは過去ログ倉庫に格納されています