多次元配列の中身をごっそり書き換えたい!
最近テトリス作りを行なっています。今日どはまりした多次元配列の入れ替えがやっと理解できたので今のうちにメモしておきます。
--- 多次元配列
多次元配列とは二次元以上の配列のこと。
[1,2,3,4]
これが一次元配列です。
[[1,2],[3,4]]
これが二次元配列です。
[
[[1,2,3],[1,2,3],[1,2,3]],
[[1,2,3],[1,2,3],[1,2,3]],
[[1,2,3],[1,2,3],[1,2,3]]
]
これが三次元配列です。
イメージしやすいものを用意しました、、、
テトリスは二次元配列です。
そして、、、、
ルービックキューブが三次元配列!
どうでしょうか、イメージつきますかね笑
--- 二次元配列を入れかえる(??)
今日は別のテトリミノを表示する部分を作ってみました。
テトリミノを表示する配列
[ [0,1,0,0],
[1,1,1,0] ] // T字のテトリミノです
を別の二次元配列に組み替えたいわけです。
ちなみにテトリスのブロックのことをテトリミノというそうです笑可愛い名前
--- 配列の中身をループ文で出して、一つずつ突っ込む
悩んだ割には思ったより簡単だった、、
--- 失敗例
push してslice
この場合だとpush した段階で、三つめの配列の中に、二つめの配列全部入っちゃうのでダメでした。
[ [0,1,0,0],
[1,1,1,0],
[[1,1,1,1],[0,0,0,0] ]
こんな感じですね笑
他にもfor 文を一回だけ回して、[1,1,1,1] という配列ごと置き換えようとするもダメ、、、
思ったより解明が難しかったです。
--- 余談ですが、、
バイト二連勤の間、家に帰らずに近くのカフェにこもることで三時間ほど短縮できることに気づき、今日実行してみたのですが
「、、、めちゃくちゃいい!!!」
もはやコードを強制的にかけるので時間短縮&自分を強制させられるので案外ありですね笑
いい気づきです笑
お疲れ様でした。