From Ruby quiz #117 (much fun)
#bad code by me, interesting bits shamelessly stolen from Dave B.
neighborhood=[@grid[x0][y0], @grid[x0][y1], @grid[x1][y0],
@grid[x1][y1]]
where each element of @grid[][] is a string, x1 = x0+1, and y1=y0+1
is there a way to do the following:
@grid[x0][y0], @grid[x0][y1], @grid[x1][y0], @grid[x1][y1] =
@grid[x1][y0],
@grid[x0][y0], @grid[x1][y1], @grid[x0][y1]
in a more readable way
I thought
*neighborhood = @grid[x1][y0], @grid[x0][y0], @grid[x1][y1],
@grid[x0][y1]
would be equivalent, but it isn’t.
On Mar 11, 2007, at 20:24 , Albert Ng wrote:
[x1][y0],
@grid[x0][y0], @grid[x1][y1], @grid[x0][y1]
in a more readable way
I thought
*neighborhood = @grid[x1][y0], @grid[x0][y0], @grid[x1][y1], @grid
[x0][y1]
would be equivalent, but it isn’t.
Did you have a look at my code?
I used this:
2.times do |y|
2.times do |x|
class_eval “def xy#{x}#{y}; @grid[@x + #{x}, @y + #{y}]; end”
class_eval “def xy#{x}#{y}=(v); @grid[@x + #{x}, @y + #{y}] = v;
end”
end
end
To allow me to write the rotations as
def ccw90
self.xy00, self.xy10, self.xy01, self.xy11 = xy10, xy11, xy00,
xy01
end
def cw90
self.xy00, self.xy10, self.xy01, self.xy11 = xy01, xy00, xy11,
xy10
end
Might be an idea?
/Christoffer
that’s neat, I’ll keep it in mind