class BitmapCompiler::Core::Bitmap
Bitmap
entity
Constants
- MAX_WIDTH
- MIN_WIDTH
- STANDARD_COLOR
Attributes
cells[R]
height[R]
width[R]
Public Class Methods
new(width, height, cells: nil)
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 11 def initialize(width, height, cells: nil) @height = Integer(height) @width = Integer(width) @cells = cells clear if cells.nil? end
Public Instance Methods
change_pixel(row, column, color)
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 19 def change_pixel(row, column, color) return false unless valid_coordinate?(row, column) cells[row - 1][column - 1] = color end
clear()
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 25 def clear @cells = initialize_matrix end
initialize_matrix()
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 29 def initialize_matrix Array.new(width) { Array.new(height) { STANDARD_COLOR } } end
print()
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 33 def print ''.tap do |output| (0..cells[0].length - 1).each do |column_index| (0..cells.length - 1).each do |row_index| output << cells[row_index][column_index] end output << "\n" end end end
valid_column_index?(column)
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 59 def valid_column_index?(column) column.between?(1, height) end
valid_coordinate?(row, column)
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 55 def valid_coordinate?(row, column) valid_row_index?(row) && valid_column_index?(column) end
valid_horizontal_line_coordinates?(column, start_row, end_row)
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 50 def valid_horizontal_line_coordinates?(column, start_row, end_row) valid_row_index?(end_row) && valid_row_index?(start_row) && valid_column_index?(column) && start_row <= end_row end
valid_row_index?(row)
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 63 def valid_row_index?(row) row.between?(1, width) end
valid_vertical_line_coordinates?(row, start_column, end_column)
click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 45 def valid_vertical_line_coordinates?(row, start_column, end_column) valid_row_index?(row) && valid_column_index?(start_column) && valid_column_index?(end_column) && start_column <= end_column end