I'm trying to change a specific coordinate, but an array is getting all updated.
The goal is to change the fixed attribute to a single coordinate.
class Case
attr_accessor :fixed
def initialize
self.fixed = false
end
def fixed?
!!fixed
end
end
def display(arr)
5.times do |x|
5.times do |y|
print arr[x][y].fixed?
print ' '
end
puts
end
end
# Defining array
arr = Array.new(5){ Array.new(5, Case.new) }
# Displaying the arrays
display(arr)
# Changing value of a single coord
arr[2][3].fixed = true
# Displaying the arrays
display(arr)
Here is the result for the first display call
false false false false false
false false false false false
false false false false false
false false false false false
false false false false false
And second display
false false false false false
false false false false false
true true true true true
false false false false false
false false false false false
The expected result is:
false false false false false
false false false false false
false false false true false
false false false false false
false false false false false