アカウント名:
パスワード:
でも最近の環境でこのようなバグが発生することは少ないのかしら?
# FORTRANでメモリの利用領域を適当に拡縮させてフラグ調整してた程度の経験しかないのでAC
32-bitや64-bitのカウンタでオーバーフロー起こすことはあまりないけど(と油断するからバグるのだが)ビットシフトだとやりがち。
厄介なのは、意図的にオーバーフローさせて上位ビットを0や1に固定するイディオムもあるので、意図的なのかバグなのか見た目では判断しづらいところ。
32bitカウンタなんて100Mhzクロックで回したら1分しないでオーバーフローを起こすけどね。
32ビット60Hzだと2年と3ヶ月ちょっとで一周する。
1/60秒毎の割り込みで++されるuint32_tなグローバルなカウンターを用意して、画面のフェード処理とか色んな演出の進度はそれで管理する、という仕様のゲーム作成に参加してた事がある。
これ、カウンターが一周回ると表示が乱れるよな、と気になって計算して、2年以上ならまあいいじゃん、という設計なのかと納得した。一応、20フレームでフェードアウトする予定が2年3ヶ月かけてのフェードアウトに引き延ばされてしまうような不具合もおきかねないんだけど。
うちが編み出した特殊なテクニックってことは無かろうから、2年と3ヶ月か、int32_tなら1年と1ヶ月ちょっとの間、動作指せ続けると何かが起こってしまうゲームは結構あるんじゃないかな。
こんなげーむにまじになっちゃってどうするの -
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
プログラミングの初歩で学んでおきたいバグ (スコア:0)
でも最近の環境でこのようなバグが発生することは少ないのかしら?
# FORTRANでメモリの利用領域を適当に拡縮させてフラグ調整してた程度の経験しかないのでAC
Re: (スコア:1)
// とかいいつつバッファオーバーランでいろいろやらかすのもまた乙
Re:プログラミングの初歩で学んでおきたいバグ (スコア:0)
32-bitや64-bitのカウンタでオーバーフロー起こすことはあまりないけど(と油断するからバグるのだが)
ビットシフトだとやりがち。
厄介なのは、意図的にオーバーフローさせて上位ビットを0や1に固定するイディオムもあるので、
意図的なのかバグなのか見た目では判断しづらいところ。
Re: (スコア:0)
32bitカウンタなんて100Mhzクロックで回したら
1分しないでオーバーフローを起こすけどね。
Re: (スコア:0)
32ビット60Hzだと2年と3ヶ月ちょっとで一周する。
1/60秒毎の割り込みで++されるuint32_tなグローバルなカウンターを用意して、画面のフェード処理とか色んな演出の進度はそれで管理する、という仕様のゲーム作成に参加してた事がある。
これ、カウンターが一周回ると表示が乱れるよな、と気になって計算して、2年以上ならまあいいじゃん、という設計なのかと納得した。一応、20フレームでフェードアウトする予定が2年3ヶ月かけてのフェードアウトに引き延ばされてしまうような不具合もおきかねないんだけど。
うちが編み出した特殊なテクニックってことは無かろうから、2年と3ヶ月か、int32_tなら1年と1ヶ月ちょっとの間、動作指せ続けると何かが起こってしまうゲームは結構あるんじゃないかな。
Re: (スコア:0)
こんなげーむにまじになっちゃってどうするの -