HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0427
Rook二次元配列変数 入力の省略6解決


Rook

リンク

2011/4/27(Wed) 20:10:26|NO.38730

一次元配列変数
	dim 配列,5
配列=1,2,3,4,5
上記のように入力が省略してできるように
二次元で片方を固定して順に代入する方法はありませんか?



この記事に返信する


rinko

リンク

2011/4/27(Wed) 20:32:56|NO.38733

こんな感じでしょうか〜??
私も最初の頃は、こんなことができるって気づかなかったんですよね(^□^;


dim a, 5, 3 // 代入 a.0.0 = 1, 2, 3, 4, 5 a.0.1 = 1, 2, 3, 4, 5 a.0.2 = 1, 2, 3, 4, 5 // テスト repeat 3 i = cnt repeat 5 mes a.cnt.i loop loop



Rook

リンク

2011/4/27(Wed) 20:52:07|NO.38734

これは右側を固定してますよね?
左側を固定する方法はありませんか?



rinko

リンク

2011/4/27(Wed) 21:52:27|NO.38739

参考になるかどうかはわかりませんけども
HSPはC言語とかとはメモリ上の配列の並びが逆らしいので
HSPの「a.0.2」は、C言語の「a.2.0」と、同じような意味になるみたいです〜
なので

dim a, 5, 3 a.0.0 = 1, 2, 3 a.1.0 = 1, 2, 3 a.2.0 = 1, 2, 3 a.3.0 = 1, 2, 3 a.4.0 = 1, 2, 3
みたいなことを、やろうとしても上手くいきませんし
仮にできたとしても、あまり効率のいい代入操作にはならないのではないでしょうか
私もC言語風の並びのほうが慣れているので、左側を固定したい!
と思ったことがありますけど、素直に頭を切り替えて「HSPは逆順!」
を意識して使うようにしています〜♪(*゚▽゚*

「dim a, 5, 3」の格納領域のイメージ図↓
□□□□□, □□□□□, □□□□□

「a.0.1 = 1, 2, 3, 4, 5」のイメージ図↓
□□□□□, 12345, □□□□□

「a.1.0 = 1, 2, 3」のイメージ図↓
□123□, □□□□□, □□□□□
「a.2.0 = 1, 2, 3」のイメージ図↓
□□123, □□□□□, □□□□□

上の図の「a.1.0 = 1, 2, 3」や「a.2.0 = 1, 2, 3」を見て
「この代入は、なんとなくおかしなことをやろうとしているぞ…!?」
ってことをイメージしてもらえたら幸いです〜
(イメージつかみづらかったらごめんなさいっ)


…つまるところ、「a.1.0 = 1, 2, 3」で
□1□□□, □2□□□, □3□□□
みたいな代入ができる代入方法は、少なくともHSP標準では存在しませんので、
左側を固定するのは難しいかな〜ってことです〜〜(=▽=*
もしかしたらマクロとかでできるのかなぁ〜…??



ORZ

リンク

2011/4/27(Wed) 21:57:52|NO.38741

右側を固定して手入力したのちに、左右を交代するコードを書くか
脳内で反転させてコードを書く。例えば敵の座標は(x,y)じゃなくて(y,x)だと脳内補完。
トラブルの温床になるので前者かな。



kitu

リンク

2011/4/28(Thu) 10:05:52|NO.38761

まぁ気持ちはわかる

 主人公.各パーツ色情報.頭部色情報.髪の色 = 255, 0, 0
 主人公.各パーツ色情報.頭部色情報.耳の色 = 255, 0, 255

みたいなことがやりたい場合、HSPだと

 主人公.髪の色.頭部色情報.各パーツ色情報 = 255, 0, 0
 主人公.耳の色.頭部色情報.各パーツ色情報 = 255, 0, 255

っていう書き方しかできないもんね



Rook

リンク

2011/4/28(Thu) 22:20:09|NO.38788

そうですか…
あきらめて逆にします。
ありがとうございました。



ONION software Copyright 1997-2018(c) All rights reserved.