ゲームプログラミングにおけるフラグ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
jay
記事: 314
登録日時: 15年前
住所: 大阪市
連絡を取る:

ゲームプログラミングにおけるフラグ

#1

投稿記事 by jay » 13年前

ゲームプログラミングにおいて

例えば”画像を描画するフラグ”をオンかオフかで管理する場合
int型を使って"0"か"1"かで判断する方法と
bool型を使って"true"か"false"かで判断する方法、どちらが一般的なのでしょうか?

僕はほぼ100%前者を使っていますが、これは正解でしょうか?
それともこれも「その時に使われているコーディングルールによる」が正解でしょうか?
オフトピック
なるべく一般的な書き方をしようとすればするほど、こういう細かい所が気になってしまいます
そもそも一般的な書き方とは何なのか…
手元の参考書曰く「書いてはいけない書き方、つまり「間違い」はあっても
プログラムの書き方に絶対の正解はない、らしいですが(それも僕がそう読み取っただけで、そうとハッキリ記述されていた訳でもないですけど)
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: ゲームプログラミングにおけるフラグ

#2

投稿記事 by softya(ソフト屋) » 13年前

正しいか等はそのチームなどのコーディングルールに左右されますが、一般認識としてなるべく誤動作や誤操作しない書き方が望まれます。
なのでintの0/1などそれ以外の値もあり得る書き方よりもboolのtrue/falseの2値しか無い書き方が誤動作や誤操作を産まない書き方と言えます。

ただ、C言語のC90規格にはboolがそもそも無いので知らない人もいる訳です。
C++を知っている前提であればboolで問題がないと言えるでしょう。

【補足】
常に最善のコーディングかを考えるのは良いことですが、それで先に進めなくなる状態なら強引にでも先に進めたほうが良いですよ。
最善のコーディングはプログラミングを続ける限り一生の課題です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

jay
記事: 314
登録日時: 15年前
住所: 大阪市
連絡を取る:

Re: ゲームプログラミングにおけるフラグ

#3

投稿記事 by jay » 13年前

虫の知らせを受け取ったので来てみれば、まさか本当にもう回答が投稿されているとは…(汗)
流石softyaさん、その投稿スピード…尊敬します(尊敬するとこ違うだろう)

本題ですが
やはり基本は「コーディングルールによる」なのですね
そして特にルールが無ければC++で書く限りbool型で問題はなし、と
これで僕が知りたい答えは手に入れることが出来ました

毎度毎度ありがとうございます

オフトピック
あるかどうか分からない正解を求めるよりは、自分なりの正解でいいから先に進む、ですか
確かに先日のクラスの名前の問題やオブジェクト指向プログラミングの手法も然り、こういうのを気にしすぎて作業スピードが落ちているのは実感しています
今はあまり背伸をやり過ぎずに、まずは今作っているモノをシッカリと完成させる事を第一に考えることにします
最善を考えすぎて先に進めなくなる状態なら強引にでも先に進めたほうが良い
これはプログラミングの大先輩からの助言として心に留めておきます
時には「これでいいか」のレベルで妥協しないと完璧主義の罠に嵌まるっ、てどこかで聞いたことがありますしね(笑)
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: ゲームプログラミングにおけるフラグ

#4

投稿記事 by Dixq (管理人) » 13年前

私もboolが正解だと思います。
フラグに限らず、たとえば関数の返り値にint型が使われている場合、
0か1が返ってくるようなケースと、
エラーの時は-1、それ以外は0が返ってくるようなケースがありますが、
いちいち関数リファレンスを見ないと何をキャッチしていいのかわかりません。

何が正解かで困った時は「知らない人にソースコードを渡した時、どちらが早く理解してもらえるか」つまり可読性を基準にしたらいいかもしれません。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: ゲームプログラミングにおけるフラグ

#5

投稿記事 by ISLe » 13年前

C言語でbool型が無い場合だったら、WindowsSDKのBOOLみたいに定義して使ったら良いと思います。
#Win32 APIでは破綻してますけどね。
そのまんまbool,true,falseを定義して使っていけない理由も無いですし。

jay
記事: 314
登録日時: 15年前
住所: 大阪市
連絡を取る:

Re: ゲームプログラミングにおけるフラグ

#6

投稿記事 by jay » 13年前

>Dixqさん
なるほど、そういう基準があるのですね…
場合によってはホントに人に見てもらうのもいいかもですねぇ、プログラマーの知り合いは一杯いますし(笑)

ここの方々だけじゃなくて、先生やクラスメートに意見を聞くことだってできますしね~
”可読性を基準”にする、覚えておきますね
ありがとうございます


>ISLeさん
ゲームプログラミングはC++が主流なので、少なくとも今はC言語の場合を考える必要はないかな、って思いましたが
無ければ定義して使う、そういう対処法を覚えておいて損はないですね

ありがとうございます
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

閉鎖

“C言語何でも質問掲示板” へ戻る