On May 21, 2007, at 1:58 PM, Yossef Mendelssohn wrote: > On May 21, 9:26 am, "doug meyer" <doug.me... / sigeps.org> wrote: >> Hey, >> Did anyone else run into the problem of trying to setup your >> square using: >> Array.new(size, Array.new(size)) >> that was annoying! And I wasted too much time with formating the >> output. > > If you're talking about the problem I think you're talking about, > that's the reason I dismissed that approach out of hand. > > irb(main):001:0> x = Array.new(5, Array.new(5,0)) > => [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, > 0], [0, 0, 0, 0, 0]] > irb(main):002:0> x[2][2] = 5 > => 5 > irb(main):003:0> x > => [[0, 0, 5, 0, 0], [0, 0, 5, 0, 0], [0, 0, 5, 0, 0], [0, 0, 5, 0, > 0], [0, 0, 5, 0, 0]] > > Those references will get you if you're not careful. But it's very easy to fix: => [[nil, nil, nil, nil, nil], [nil, nil, nil, nil, nil], [nil, nil, nil, nil, nil], [nil, nil, nil, nil, nil], [nil, nil, nil, nil, nil]] >> square[2][2] = 5 => 5 >> square => [[nil, nil, nil, nil, nil], [nil, nil, nil, nil, nil], [nil, nil, 5, nil, nil], [nil, nil, nil, nil, nil], [nil, nil, nil, nil, nil]] James Edward Gray II