スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ruby]ゲーム用に,多次元配列を作って初期化する方法

ゲームにはよく多次元配列を利用しますが,その中身を0ですべて初期化したい時,C言語だとこうかきます.

stage[4][4] = { 0 };


これで配列の中身は,
{ { 0, 0, 0, 0},
{ 0, 0, 0, 0},
{ 0, 0, 0, 0},
{ 0, 0, 0, 0} }

となるのですが,Rubyではこうはいきません.どうやらデフォルトでRubyは一次元配列しか扱えないらしく,宣言する場合,

1.一次元の配列を先に宣言する.
2.作成した配列の各要素内に,新規で配列を作る.

という作業を行わなければなりません.まあ,

stage = 
[[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]

と宣言してもいいのですが,必要な配列の要素数が増えてきた場合,これは非常にめんどくさくてよろしくない.

で,どうするかというと,
stage = Array.new( 4, nil )
stage.each_index { |y|
stage[y] = Array.new( 4, 0 )
}

こんな感じでしょうか.
一次元目の配列を作成し,中身をnilとしています.いや,別に何か入れてもいいんですけど,この辺はお好みで.

配列の操作は,言語によって結構挙動が違うので,いろいろ試してみないと分からないことも多いですねぇ.

テーマ : ブックレビュー - ジャンル : 小説・文学

コメント
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。