مشكلتك هي أن محتويات متغير arr الخاص بك يتم الكتابة عليها مع كل تكرار: arr[k]
الكتابة فوق كل ما هو هناك بالفعل. يجب أن يكون متغير ARR محليًا إلى الكتلة بدلاً من ذلك:
mat = []
2.times do # avoid for... use iterators instead
row = []
2.times do
row << rand.to_s
end
mat << row
end