2dマップを作成していて、空の値であらかじめ入力しています。Elixirのループでマップを作成する方法
私はエリクサーでは動作しませんが、これは私がやろうとしていることです。
def empty_map(size_x, size_y) do
map = %{}
for x <- 1..size_x do
for y <- 1..size_y do
map = Map.put(map, {x, y}, " ")
end
end
end
それから私は、私は2次元配列としてそれをやって試してみましたが、キーがで動作するように簡単になりますように私は、座標touplesとフラットなマップを考える
def create_room(map, {from_x, from_y}, {width, height}) do
for x in from_x..(from_x + width) do
for y in from_x..(from_x + width) do
if # first line, or last line, or first col, or last col
map = Map.replace(map, x, y, '#')
else
map = Map.replace(map, x, y, '.')
end
end
end
end
のように、そのマップ上に図形を描画します。
私は再帰を使用するはずですが、私は実際にはエレガントにそれを行う方法の良いアイデアを持っていないとこのシナリオは今後も続くと私はこれを行う簡単な/普遍的な方法を見ていない。
ちょうど私が必要なもの、感謝! Btwに 'end 'のビットで括弧を取り除く方法がありますか? – hakunin
はい、 'reduce(' reduce 'と' end) 'を' end'で置き換えることができます。議論が長くても、私はそれらを書くのが好きですが、オプションです。 – Dogbert