Skip to content

Instantly share code, notes, and snippets.

@fcheung
Forked from gagaception/image_blur#2
Last active September 23, 2015 20:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fcheung/d8e27a113e684759a84f to your computer and use it in GitHub Desktop.
Save fcheung/d8e27a113e684759a84f to your computer and use it in GitHub Desktop.
class Image
attr_accessor :data
def initialize (data)
@data = data
end
def image_blur
changes = []
@data.each_with_index do |row, row_index|
row.each_with_index do |value, column_index|
if value == 1
changes << [row_index, column_index-1] if column_index > 0
changes << [row_index-1, column_index] if row_index > 0
changes << [row_index+1, column_index] if row_index < @data.size-1
changes << [row_index, column_index + 1] if column_index < row.size - 1
end
end
end
changes.each do |(row_index, column_index)|
@data[row_index][column_index] = 1
end
end
def output
@data.each do |sub|
sub.each do |cell|
print cell
end
puts "\n"
end
end
end
image = Image.new([[0,0,0,0,0,0,0],
[0,1,1,0,0,0,1],
[0,0,0,0,0,0,0]
])
image.image_blur
image.output
test "pixel on left hand side" do
image = Image.new([[0,0,0,0,0,0,0],
[1,0,0,0,0,0,0],
[0,0,0,0,0,0,0]
])
image.image_blur
assert_equal(
[[1,0,0,0,0,0,0],
[1,1,0,0,0,0,0],
[1,0,0,0,0,0,0]],
image.data
)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment