【发布时间】:2019-01-24 17:10:08
【问题描述】:
我正在创建一个 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
然后我将在该地图上绘制形状,例如
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
我尝试将其作为 2D 数组进行,但我认为以坐标 touples 作为键的平面地图更易于使用。
我知道我应该使用递归,但我真的不知道如何优雅地做到这一点,而且这种情况不断出现,我还没有看到一个简单/通用的方法来做到这一点。
【问题讨论】:
标签: elixir