From: "Mike Mr." Date: 2008-09-22T04:47:51+09:00 Subject: Instance variable acting like class variable? I've written a Node class that I'm using to write a few programs for in a course. class Node # A node represents a spot on the grid. It knows its # location and parent node, the total cost so far, and # the directions take to get to current location attr_reader :row, :col, :cost, :direction, :parent, :collected def initialize(row, col, cost, direction=nil, parent=nil) @row = row @col = col @cost = (parent.nil? ? 0.0 : parent.cost) + cost.to_i @direction = (parent.nil?) ? "" : parent.direction + direction @parent = parent @collected = (parent.nil?) ? [] : parent.collected.to_a end def to_s "row:#{@row} col:#{@col} cost:#{@cost}" end def location [@row, @col] end def add_collected @collected = @collected << [[@row, @col]] end end The problem is with #add_collected. When it is called its updating @collected for all instances of Node. @collected is suppose to be an array of arrays. I'm not sure why it's behaving the way that it is. I'm still a bit new to ruby. Can anyone give me some insight on why its behaving the way that it is please. Thanks. -- Posted via http://www.ruby-forum.com/.