最近の作業は

>列挙体で添え字を指定するというのではマズイのでしょうか?文字列を管理する必要もなくなりますし、キーの衝突も防げるので便利だと思うのですが…。

ギク〜。

と、無意味に反応するのはおいておいて、おっしゃる通り、キーとデータの対応は列挙体で概ね解決できます。ちうより、私の場合はさらに退化してマクロで切ってます…。

/* これは ひどい */
#define ENERMY_ENE1	0
#define ENERMY_ENE2	1
#define ENERMY_ENE3	2
#define ENERMY_ENE4	3
#define ENERMY_ENE5	4
#define ENERMY_ENE6	5
#define ENERMY_ENE7	6
#define ENERMY_TAMA1	7

マクロでも問題なく使えますが、マクロは副作用が怖いので、良い子は型チェックのかかる列挙型を使いましょうね〜〜〜。上の例は項番が1から数え上げなのがまた謎ですな。元々は0番にダミーが入ってたからと云う意味があったのですが、いつの間にかそれが無くなって無意味だけが残った感じですね。

じゃあ、何でわざわざ文字列でテーブルアクセスとか考えてるかと云うと…。コンフィグファイルからのデータ拾い上げを実装しようとしてたからなんですね〜。すなわち、ゲームのデータをiniファイルに記述しておいて、データに付与したラベルをキーとして辞書(ハッシュ)に突っ込んで、データを取りだそう、と。。。

…って、実はそのへんのことって、ついこないだkenmoさん(id:kenmo)が既になさっていることなんですががが(http://gamehell.g.hatena.ne.jp/kenmo/20070920)。まあ、kenmoさんはDで書いたので、C++で書いてる私は改めて実装しないとなぁ〜〜〜って事で書いている次第ではありますが。既に他人がやっていることを大車輪しつつ、既存のライブラリに載ってるモジュールを再発明しながら造るという、まさに車輪オブ車輪。再発明の中の再発明ってなわけです。

…と云う負い目から、コソコソしてましたw