データ構造


Game Maker Language リファレンス > 組み込み関数 用途別 > データ構造

データ構造

特殊なデータ構造を扱うための関数群。なお、これら関数のプレフィクス「ds_」は「Data structures」の頭文字をとったものとなります。

スタック

スタックデータ構造は、LIFO(後入れ先出し)構造で、値をプッシュし、スタックからそれらをポップすることでそれらを再び削除することができます

生成・破棄


初期化・コピー

  • ds_stack_clear():スタックからすべてのデータを消去します
  • ds_stack_copy():指定のスタックを別のスタックにコピーします

サイズチェック

  • ds_stack_size():指定したスタックに格納された値の数を返します
  • ds_stack_empty():指定のスタックが空であるかどうかを返します

要素の追加・削除・取得

  • ds_stack_push():スタックの一番上に、指定の値を積みます
  • ds_stack_pop():スタックの一番上から指定の値を取り出します
  • ds_stack_top():スタックの一番上にある値を取得します

文字列への変換(保存用)


キュー

キューはスタックにやや似ていますが、FIFO(先入れ先出し)で動作します。最初のキューに入れられた値は、除去するのも最初のものとなります

生成・破棄

初期化・コピー

サイズチェック


要素の追加・削除・取得

文字列への変換(保存用)

リスト

リストは、特定の順序で値のコレクションを格納します。リストの終端に値を追加するか、リストのどこか途中に値を挿入することができます。またインデックスを使用して値にアクセスできるます。また、昇順または降順のいずれかで、要素を並べ替えることができます

GameMaker:Studio v1.4 からリスト操作のシンタックスシュガーが用意されました。 次のように略記できます。

// 指定した位置の値を取得
var val = ds_list_find_value(list_id, pos);
↓
var val = list_id[| pos];

// 指定した位置の値を置き換え
ds_list_replace(list_id, pos, val);
↓
list_id[| pos] = val;

生成・破棄

初期化・コピー

サイズチェック


要素の追加・削除・取得

要素の検索

ソート・シャッフル

  • ds_list_sort():リストに格納されている値をソートします
  • ds_list_shuffle():リストに格納されている値をシャッフルします

文字列への変換

  • ds_list_write():ds_listを文字列に変換する
  • ds_list_read():ds_list_writeによって変換されたds_list文字列をもとに戻します

マップ

マップは、キーと値から成るペアを格納することができます

GameMaker:Studio v1.4 からマップ操作のシンタックスシュガーが用意されました。 次のように略記できます。

// マップの値を取得
var val = ds_map_find_value(map_id, key);
↓
var val = map_id[? key];

// マップの値を変更
ds_map_replace(map_id, key, val);
↓
map_id[? key] = val;

二番目の例について補足:[? ] 表記での代入は ds_map_replace() と同じように働きます。 ds_map_replace()は名前の印象に反して置き換え(replace)でなく新規追加でも使えます。これらに対して ds_map_add() は既に同じ key が格納されていたら失敗します。

生成・破棄


初期化・コピー

サイズチェック

  • ds_map_size():ds_mapのサイズを取得します
  • ds_map_empty():ds_mapに何も格納されていないかどうかチェックします

要素の追加・削除

破棄・存在チェック

  • ds_map_exists():ds_mapが存在しているかどうかチェックします

要素の検索

文字列への変換(保存用)

優先度付きキュー

優先度付きキューの値には、それぞれ優先度が格納されている。あなたはすぐに最小・最大の優先度の値を見つけることができます

生成・破棄


初期化・コピー

サイズチェック

要素の追加・削除

文字列への変換(保存用)

グリッド

グリッドは、扱いやすい2次元配列です。整数の幅と高さを持ち、あなたがそれのセル座標(X方向とY方向ともに0で始まる)を与えることで、グリッド内のセルの値を設定したり取得することができます

GameMaker:Studio v1.4 から値の取得と設定のシンタックスシュガーが用意されました。 次のように略記できます。

// 値の取得
var val = ds_grid_get(grid_id, xpos, ypos);
↓
var val = grid_id[# xpos, ypos];

// 値の設定
ds_grid_set(grid_id, xpos, ypos, val);
↓
grid_id[# xpos, ypos] = val;

生成・破棄

コピー・リサイズ・初期化

幅・高さ取得

値の設定

値の設定(領域指定)

値の設定(中心と半径で指定)

指定のds_gridの領域を別のds_gridの領域へ移す

値の取得

統計の取得(領域指定)

統計の取得(中心と半径で指定)

値の検索(領域指定)

値の検索(中心と半径指定)

シャッフル

文字列への変換(保存用)

  • ds_grid_write():ds_gridを保存用に文字列に変換します
  • ds_grid_read():ds_grid_writeでds_gridから変換した文字列を設定します

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2017-05-13 2016-10-01 2017-01-22 2017-01-14 2016-12-25 2016-12-02 2016-10-09 2016-09-25 2016-09-21 2016-08-29 2016-06-21 2016-02-23 2016-02-10 2016-01-18 2015-10-30 2015-10-20
  • データ構造
2015-06-23 2015-06-20 2015-06-19 2015-06-10 2015-06-09 2015-06-07 2015-06-05 2015-06-03

人気の10件

今日の10件



これまでの訪問者: 3583
今日の訪問者: 1
昨日の訪問者: 3
閲覧者: 3