へにっくすの掲示板日記

関数が一つしかないなんて。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

関数が一つしかないなんて。

投稿記事 by へにっくす » 11年前

以下の投稿。

http://dixq.net/forum/viewtopic.php?f=3&t=14959

ソースを見てみると、WinMain一つだけですね。
C言語初めて一年ですか…
このままいくと、最長不倒関数(ググってくださいw)になってしまう。

今は200行ぐらいですが、私なら耐えられません。
多くても100行ぐらいですよね?

アバター
せんちゃ
記事: 50
登録日時: 14年前

Re: 関数が一つしかないなんて。

投稿記事 by せんちゃ » 11年前

ゲーム部分のロジックを書いてると一つの関数に処理を完結させた方が直しやすいと感じることもあり、200行超えることがあります。
たとえばパズルゲームの連鎖判定とか、パネル移動だとか、シューティングのコリジョンだとかはかなり泥臭かったです。
メニュー項目やらシステム的な部分やらは必然的に一つ一つのメソッドが短くなるのですが、
10年以上のキャリアの人でもゲーム部分を書くとみんな行数が長くなってしまうのを見るとちょっと面白いです

だがコピペコードで一つの関数内を1000行以上にしてるやつ。てめぇはダメだ!
ちなみに件のトピックのようなコードを書く人を現場でよく見かけるのはここだけの話です。
最後に編集したユーザー せんちゃ on 2014年4月18日(金) 09:18 [ 編集 2 回目 ]

アバター
せんちゃ
記事: 50
登録日時: 14年前

Re: 関数が一つしかないなんて。

投稿記事 by せんちゃ » 11年前

すいません、携帯から投稿していてバックボタンを押したら二重に投稿してしまいました(^-^;
最後に編集したユーザー せんちゃ on 2014年4月18日(金) 07:55 [ 編集 2 回目 ]

アバター
usao
記事: 1889
登録日時: 12年前

Re: 関数が一つしかないなんて。

投稿記事 by usao » 11年前

その程度の長さで全部書いてあるだけならまぁかわいい方じゃないすかね……

今まさに
int main() が 54行目で,mainの終わりの } が540行目にあるコードを渡されて悶絶しているのですがw

main()しか無くて全部書いてある というわけではなくて,
なんつーか 十数個のソースファイルに分かれているが その分けた基準がよくわからないタイプ というかなんというか.
あと,どうやら「class = (構造体+メンバ関数)」ということになってる異界で書かれた模様..

別のコードに「ここから必要な機能部分を移植」して一本にしなくてはならないのですが,必要な部分ってどこどこなんですかねコレ.
とりあえずmainに埋め込まれた怒涛の処理群が新規だってことはわかるのですが,切り出せってか…
(ちなみにmainを眺めただけでメモリリークが10カ所くらいはありますよー)

アバター
せんちゃ
記事: 50
登録日時: 14年前

Re: 関数が一つしかないなんて。

投稿記事 by せんちゃ » 11年前

よく読むと入力制御と更新部分と描画部分をしっかり分けて書いてるのでそれぞれ関数化するだけでだいぶ変わってきそうな印象を感じます。
わざわざ各処理のスコープを書いているあたり関数化の概念そのものは知っていてもおかしくなさそうです。
ひょっとしたらテストコードなのかもしれません。
1年でこれなら将来的には優秀な人になりそうな気がしております。
最後に編集したユーザー せんちゃ on 2014年4月18日(金) 10:59 [ 編集 1 回目 ]

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前

Re: 関数が一つしかないなんて。

投稿記事 by Hiragi(GKUTH) » 11年前

俺のことですね、もう5年近くやっているはずなのに投稿者さんより汚い俺ですね。
なんというか、もうちょっとちゃんと組めるようになりたい。

naohiro19
記事: 256
登録日時: 14年前

Re: 関数が一つしかないなんて。

投稿記事 by naohiro19 » 11年前

同じような処理をする場合は、普通は関数やクラスに機能をまとめたほうが
ソースコードでコメントを読まなくても関数名だけで理解ができます。

これが大規模のMMORPGだと1つの関数では済まされません。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: 関数が一つしかないなんて。

投稿記事 by へにっくす » 11年前

> せんちゃさん
スコープの使い方を見て、なぜ関数化しないんだ!と思ったのが最初の印象。
テスト用コード・・・うーんそれでも個人的にはいや(笑)
まあ確かに将来が楽しみだとは思う。

> usaoさん
メモリリークが見てバレバレということに、同情がわいてきました(笑)
お察しいたします。
頑張って解析して移植してください・・・m(__;)m

> Hiragi(GKUTH)さん
今まで、main関数一つで組んできたわけじゃないですよね?
それで5年??
(^^;
※少なくとも、今回の話題はそういうネタです。

> naohiro19さん
そのように組むのが理想的ですね。
MMORPGって何ですか。無知ですみません。

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前

Re: 関数が一つしかないなんて。

投稿記事 by Hiragi(GKUTH) » 11年前

>>へにっくすさん
(^^;
さすがにmain関数一つで組んできたわけではありませんが、なんというか、プログラムを組んで「遊んでるだけ」ですので...
もうそろそろ本格的に始めたいと思う今日このごろでございます。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: 関数が一つしかないなんて。

投稿記事 by へにっくす » 11年前

> Hiragi(GKUTH)さん
本格的に始めたい。
と思ってるだけじゃ時間は過ぎるばかりですよ。
何か課題を設けないと。
授業か部活でプログラミング講座みたいなのがあればいいんですけどねえ。