コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
カービィ★KIRBY ◆lWKKTX22SPNG
2019/7/24 9:09
質問
2元以上の配列のリサイズや長さ0宣言について
マップデータ管理用の配列を可変長にしたくて初期サイズを0にしたいと思ってやってみると、2元配列以上では0サイズにできないようでエラーになります。(1元配列の0長さは認められる)
またRESIZEによる長さ変更も、2元配列以上ではできないようです(ヘルプではできるように見えたけど…)

これについて何かいい代替え手段があればと思いますが何かございますでしょうか…?

コメント

アバター
Soybeanman 2019/7/24 12:16 ◆SDLkyXUP6WqK
私が3号の時やったのは1次元文字列配列を使ってマップデータを記述する方法ですね。
マップデータなので0~65535までで充分ですしそれが一番だと思います。
http://petitverse.hosiken.jp/community/petitcom/topic/?read=1223&ukey=1
こちらに似たような質問があったのでこちらの回答も参考まで。
アバター
キルル2 2019/7/24 21:44 ◆rGE712Ruejv7
すでに出ていますが、
2次元配列ではなく文字列の1次元配列を使います
アバター
Na 2019/7/24 21:57 ◆QoELVrBXBQCI
1次元配列でできなくもないのでは...?
DIM A[w,h]
A[x,y]=1
の代わりに、
DIM A[w*h]
A[x+y*w]=1
アバター
しんいち 2019/7/24 22:43 ◆lHy.hAWXbthn
多次元配列は1次元配列のサブセットのようなものだそうで、結局1次元にしといた方がプチコンでは色々便利みたいですね。4では長さ0の多次元配列は宣言できないみたいですが、代入されるまで型が定まらないようなので、例えば下記のように書くことができます。
DIM MAP=MK_MAP(@STAGE1)

MK_MAPは例えばラベルからDATA読んで2次元配列のマップデータ作るDEFで、その2次元配列をRETURNするとか。但し結局MK_MAP内で配列の大きさ決めることになるけど^^;
アバター
ツララ 2019/7/30 8:23 ◆ArUdBYOYME1V
可変長にしたい用途だとしても
初期サイズって別に1でも不都合無いんじゃないんです?
やってることってRND(0)とRND(1)みたいなもんだと思いますけど。
アバター
Na 2019/7/31 17:49 ◆QoELVrBXBQCI
DIM HAGE[0]
RESIZEHAGE 8,9

DEF RESIZEHAGE X,Y
DIM A[X,Y]
HAGE=A
END

こんな感じにもできますね。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -