/ / Множествено картографиране на масиви в масиви - Ruby [затворен] - рубин, масиви, карта, картографиране

Множествено картографиране на масиви в масиви - Ruby [затворен] - рубин, масиви, карта, картографиране

Искам да мина през масив в масив с масиви в тези.

Масивът трябва да съдържа 5 масива, а във всяка от тяхтези масиви са още пет масиви, генерирането на числата е наред, но когато минавам през всяка от масивите, за да ги картографирам с нещо друго, получавам само един масив с 5 масиви в него.

  def random_map
@row = []
@col = []
@map = []
5.times do |row|
5.times do |col|
@c = rand(3)
@d = [@c]
@col << @d
end
@row << @col
@col = []
end
@map << @row
@map.map! do |row|
row.map! do |col|
col.map! do |element|
case(element[0])
when 0
element[0] = "BG"
when 1
element[0] = "B1"
when 2
element[0] = "TR"
end
end
end
end
end

Всеки, който знае какво става с картографирането?

Отговори:

1 за отговор № 1

Не съм положителен, но мисля, че това се опитваш да направиш:

def random_map
Array.new(5) do
Array.new(5) do
Array.new(5) do
%w{BG B1 TR}.sample
end
end
end
end

Изпълнявайки го, генерира масив от 5 маси от 5 маси от 5 струни, избрани случайно от трите струни "BG", "B1", и "TR":

random_map
# => [[["B1", "BG", "BG", "B1", "B1"],
["B1", "B1", "BG", "TR", "B1"],
["B1", "B1", "TR", "TR", "TR"],
["B1", "TR", "TR", "BG", "B1"],
["BG", "TR", "BG", "TR", "TR"]],
[["B1", "TR", "TR", "BG", "TR"],
["BG", "B1", "TR", "BG", "BG"],
["B1", "B1", "BG", "TR", "BG"],
["BG", "BG", "TR", "B1", "B1"],
["B1", "BG", "BG", "BG", "BG"]],
[["B1", "BG", "BG", "B1", "TR"],
["BG", "BG", "B1", "B1", "TR"],
["B1", "BG", "B1", "TR", "TR"],
["BG", "TR", "B1", "B1", "BG"],
["TR", "TR", "BG", "TR", "B1"]],
[["BG", "B1", "BG", "BG", "BG"],
["B1", "B1", "TR", "TR", "B1"],
["BG", "B1", "TR", "B1", "TR"],
["TR", "TR", "TR", "BG", "B1"],
["TR", "B1", "BG", "TR", "BG"]],
[["B1", "B1", "BG", "BG", "TR"],
["TR", "TR", "B1", "BG", "BG"],
["TR", "BG", "B1", "BG", "TR"],
["BG", "B1", "TR", "BG", "TR"],
["B1", "TR", "BG", "B1", "B1"]]]

Аз специално не използвам инстантните променливи @row, @col, @map, @c, или @d защото не е ясно, че в действителност искате да ги поставяте, изглежда, че ги използвате като просто локални променливи.