概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C 二次元配列
2006年08月03日 (木) | 編集 |
今までやってきたのは列のみ(あるいは行のみかもしらん)の配列だが、二次元配列だと行と列がある、例えば表のようなデータを扱う為に便利らしい。

配列の中では最大に面倒そうな定義だが、ま、面白そうでもあるので頑張るとしよう。
表ってーと例えば下のようなのだな

表1 各メンバーとその特性値
番号名前クラスHPSTRINTPIEVITAGILUC
1隊長936181818151719
2桐崎修道士1005191817181819
3アリシア錬金術士1407181818191819
4栃木狩人954181918181818
5ティー神女585141918122422
6ウェル司教1214171918191819

これは最近(つっても3ヶ月程度以前からだが)遊んでいるWizardryXTHっていうゲームのマイキャラのリストなんだが、AGIとLUCKがそんなに高くない上、本職には盗賊技能において遠く及ばない狩人を罠解除に使ってたから頻繁に失敗するのは当然…

ってそれはどうでもいい。

ちまちまとタグ使って書いたんだが随分と面倒臭かった。
ただ、便利っちゃー便利なのでこれはこれで後で別件としてまとめておこう。

ってこれも別の話か。


とにかく、表1はキャラとパラメータという2つの要素から成り立っており、これは添字が2つある配列、つまり2次元配列として以下のように表現出来る。ああ、タグ書くの面倒臭いんで表現する領域は表1の水色の部分だけに限定するぜ。

sta[0][0]sta[0][1]sta[0][2]sta[0][3]sta[0][4]sta[0][5]
sta[1][0]sta[1][1]sta[1][2]sta[1][3]sta[1][4]sta[1][5]
sta[2][0]sta[2][1][sta[2][2]sta[2][3]sta[2][4]sta[2][5]
sta[3][0]sta[3][1]sta[3][2]sta[3][3]sta[3][4]sta[3][5]
sta[4][0]sta[4][1]sta[4][2]sta[4][3]sta[4][4]sta[4][5]
sta[5][0]sta[5][1]sta[5][2]sta[5][3]sta[5][4]sta[5][5]

int 配列名[行要素][列要素];

と宣言する。
上記の例の場合はint sta[6][6]になる。例えば隊長のINTの値はsta[0][1]=17だな。配列は基底が0から始まるので、隊長は番号では1だがデータは0の行に入ることに注意だ。
また、2次元配列も例によって宣言時にデータを初期化出来る。

int_string_squ_test.jpg
こんな感じ

ちなみに宣言時に初期化を行った場合、1次元配列の宣言時の初期化と同様、sta[6][6]の最初の[6]の部分は省略出来る。が、後ろの[6]、列要素の分は省略出来ない。

以上、形式終わり。
後は今回も実際にやってみよう。
表1のそれぞれのキャラの特性値を初期化データとして与え、合計を求めて表示してみる。

int_string_squ_test2.jpgint_string_squ_test3.jpg
こんな感じ

ううむ隊長弱い。隊長なのに。やはり侍は村正がないと駄目なのか。
フェイアティーレもヴァルキリーの癖に脆過ぎる。後列に下げたのでそうそう被弾はしないが、やはり君主がいないと不安感が消えないな。


まとめよう

配列は2次元配列で列要素と行要素を扱うことが出来る
データ型 配列名[行要素][列要素] で宣言する
宣言時に初期化するときはやはりstaticをつける。行要素は省略可能
カレーに舞茸は合わないと思う


以上。何かと面白かった配列もこれで終わりだ。
後は例題や練習問題をこなして慣れていくとしよう。
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。