とりあえずどんだけ不格好でも良いので動くのを作ってケリをつけよう!ということでベクターにて使えそうなのをお気楽Schemeさんで探す。
ふうむ・・要素の交換か・・これで左右のキー入力に対して左右どちらかの要素と入れ替えるということをすれば左右の移動は出来そうだな?ただ上下がなぁ・・
ふうむ・・これでベクター内での特定の記号の場所を返して変数に入れて処理すれば・・?
ガーン!こっちは「配列(多次元・・と言うか2次元)」が欲しいんだけど!?ベクターって1次元の配列のことを言うのか。じゃあベクターじゃなくてLispお得意のリストを使うのでやっぱり良くないのかな?
と、思って逆引きSchemeでリストの出来ることを見たら、やっぱり無理っぽい。Setcar! とかSetcdr! とかあるけど、狙った場所の要素を置き換えるのは無理っぽいなぁ・・その点でいうとvector-set! はなぜか任意の場所を置き換えられるものがあるようなので、やっぱりVectorか~・・。
という訳でまずはVector関連の挙動を確認するか・・
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
ふーん、なるほどね・・リストと変わらんな・・。じゃあシンボルに入れ子で格納出来るのかな?これが出来れば・・
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
はいはい、これだと駄目ですよね。リストのときには (list a b c)とかでリストの入れ子に出来たけど・・そもそもベクターに入れ子ってあるんかいな?(それが二次元配列だと思うんだけど)。
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
ホッ・・ベクターの入れ子自体はある模様
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
なるほど(vector g h)で変数?として入れ子に出来てる。よしよし・・あとは、このvmapから特定の文字列を検索して、出来れば(2.3)とかって形で返してくれる関数があれば・・
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
お気楽さんのところからvector探索系のコードをお借りして来まして・・vector-positonで探索実験。よしよし・・ただ問題は入れ子になった状態で使うとどうなるかなんだよな~・・
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
ですよね~!けど二次元配列の中から特定の文字列が一発で探せたらすごく便利なので・・ちょっと頑張って自作に挑戦するか・・