どこかのだれかへ

職業ゲームプログラマ。気になったニュースのピックアップや開発日記などを書いています。

プログラミング

2の累乗かどうかの判定

2の累乗ということは、ビット演算的には1が一つだけの状態です。 2の累乗の場合、 -1すると繰り下がって下位ビットが全部1になるため、AND演算すると0になります。 2の累乗以外なら、 -1しても桁下がり発生しないため、AND演算にすれば1以上になります。 た…

バグ修正でQAコストを考える

開発がマスターアップに近づくと、重要でないバグをスルーする場合があるのですが、 これはバグ修正によって新たなバグを生み出す=エンバグのリスクを回避するためです。 スルーするかしないか、またどういう風に修正対応をするか、判断材料は色々あって、…

初級プログラマによくある「The XY Problem」とは

とある掲示板で「The XY Problem」という単語が目についた。 ぐぐってみるとあまり日本語ではヒットしないのだが、考えとしてはよくあるものだ。 The XY Probremは、端的に言えば、問題の本質を見失っている状態だ。 よくあるコピペがその良い例だ。 アメリ…

今日見たクソース

// ...を確認する bool CheckHoge(); bool TestHoge(); bool CheckHoge() { // 略 } bool TestHoge() { // 略 } 同じようなやつが2つ合って違いが分かりづらかった。

【C++】テンプレート引数の異なるクラスの扱い方

C++で異なるテンプレート引数を関数の引数とかに取るやり方はInlineなら知っていたけど、それをどうやってクラスの外に出せば良いかわからなかったので、メモっておく。

可変リストの選択中項目はIDで持っておくと良い

今日仕事で得た教訓。リストUIがあって、表示中にそのリスト項目が増減する場合があった。僕は最初、選択している項目をインデックスで変数として持っていたが、増減したときこのインデックスは意味を成さなくなってしまう。 これに対応するには更新前に現在…