sample_map.hsp

sample\basic\sample_map.hsp » Plain Format

;
;	sample_map.hsp — 連想配列 (MAP) サンプル
;
;	dimmap 命令で連想配列を作成し、map("key") でアクセスします。
;

	; --- 連想配列を作成 ---
	dimmap config

	; --- 値の設定 ---
	config("title") = "My Application"
	config("width") = "800"
	config("height") = "600"
	config("fullscreen") = "0"

	; --- 値の読み取り ---
	mes "title = " + config("title")
	mes "size = " + config("width") + " x " + config("height")

	; --- エントリ数 ---
	mes "エントリ数: " + mapcount(config)

	; --- キーの存在確認 ---
	if hasmap(config, "title") {
		mes "title キーは存在します"
	}
	if hasmap(config, "debug") == 0 {
		mes "debug キーは存在しません"
	}

	; --- 全キーの列挙 ---
	mes ""
	mes "--- 全エントリ ---"
	n = mapcount(config)
	repeat n
		k = mapkey(config, cnt)
		mes k + " = " + config(k)
	loop

	; --- エントリの削除 ---
	delmap config, "fullscreen"
	mes ""
	mes "fullscreen を削除: 残り " + mapcount(config) + " エントリ"

	; --- 値の上書き ---
	config("width") = "1920"
	mes "width を上書き: " + config("width")

	; --- 全クリア ---
	mapclear config
	mes "mapclear 後: " + mapcount(config) + " エントリ"

	; --- 変数名による動的キーアクセス ---
	dimmap scores
	repeat 5
		key = "player" + cnt
		scores(key) = "" + (cnt * 100 + 50)
	loop
	mes ""
	mes "--- 動的キー ---"
	repeat mapcount(scores)
		k = mapkey(scores, cnt)
		mes k + " = " + scores(k)
	loop

	mes ""
	mes "連想配列サンプル完了"