Я пытаюсь заполнить многомерный массив в рубине, прочитав из файла. Вот код:Заполнение массива рубинов из файла
class Maze
attr_accessor :array
def initialize(filename)
handler = File.open(filename,"r")
@array = Array.new(10,Array.new(10))
n = 0;
i = 0;
while(line = handler.gets) do
i = 0
line.chomp.each_char do |char|
p char
@array[n][i] = char
i += 1
end #iterator over character in every line
n += 1
end #iterator over file lines
handler.close
end #constructor
end #class
a = Maze.new("maze.txt")
p a.array
Вот содержание файла:
##########
# #
# #### #
# # # #
@ # # ?
# # # #
# # #
# #### #
# #
##########
Однако эта строка кода (последняя строка кода)
p a.array
Напечатает массив 10 на 10, но с символами «#». Нет пробелов или «?». Важно отметить, что
p char
В блоке, где я присваиваю массив значениями, печатаются правильные символы. Он печатает пробелы в нужное время и вопросительные знаки и т. Д. Я знаю, что это что-то очень простое, но это подтачивает меня, и я думаю, что мне нужно свежую пару глаз, чтобы посмотреть его.
Почему массив имеет только Символы «#». Почему не все другие персонажи, такие как «", "@", "?" в моем массиве? Является ли присвоившей в моем коде неправильно закодирован
Что вы хотите сказать? – sawa
Почему массив имеет только символы «#». Почему не все другие персонажи, такие как «", "@", "?" в моем массиве? Является ли присвоение в моем коде ошибочно закодированным? – Bula
Поместите свой комментарий в свой вопрос, так как он определяет, что вы пытаетесь сделать. –