2011/09/30(金) [n年前の日記]
#1 [prog] 地形アタリ処理をリファクタリング中
地形マップと、マップ用画像を大幅に変更したので、地形アタリコードを定数定義にしたり等。
[ ツッコむ ]
#2 [prog] Rubyでテーブルジャンプをするにはどう記述したらいいのか
アタリコードが 0x00〜0x1f まであって、それぞれについて処理内容を変えたい。
一般的には case 〜 when 〜 end を使って書くのがフツーだろうけど。調べてみたら Ruby の場合、 case 〜 when 〜 end は if 文の羅列になるらしい。…最悪。比較要素が多くて、後のほうでヒットしたら、処理が遅くなるではないか。もちろん、柔軟な比較判定が出来るというメリットはあるだろうけど、処理速度的にはあまり褒められたものじゃない。
こういう場合はテーブルジャンプで処理するのが妥当なはず。しかし、書き方が分からない。関数テーブル? メソッドテーブル? を作って処理を呼ぶような形にしたいのだが。
一般的には case 〜 when 〜 end を使って書くのがフツーだろうけど。調べてみたら Ruby の場合、 case 〜 when 〜 end は if 文の羅列になるらしい。…最悪。比較要素が多くて、後のほうでヒットしたら、処理が遅くなるではないか。もちろん、柔軟な比較判定が出来るというメリットはあるだろうけど、処理速度的にはあまり褒められたものじゃない。
こういう場合はテーブルジャンプで処理するのが妥当なはず。しかし、書き方が分からない。関数テーブル? メソッドテーブル? を作って処理を呼ぶような形にしたいのだが。
◎ 変数のスコープもよくわからない。 :
if 〜 end の中で宣言?した変数は、その中でのみ有効なのかと思いきや、外部に出ても有効らしい。…しっくりこない。これでは、使い捨ての変数に確保した領域がどんどん無意味に溜まっていくのでは。…メソッドを抜けたタイミングで全部解放されるから気にしなくてもいいのだろうか。そのへん、よくわからん。
[ ツッコむ ]
以上、1 日分です。