Class: SudokuItem
- Inherits:
-
Object
- Object
- SudokuItem
- Defined in:
- lib/sudoku_item.rb
Instance Method Summary collapse
-
#initialize(sudoku, value) ⇒ SudokuItem
constructor
A new instance of SudokuItem.
- #position ⇒ Object
- #related ⇒ Object
- #related_horizontal ⇒ Object
- #related_in_box ⇒ Object
- #related_vertical ⇒ Object
- #same_box?(item) ⇒ Boolean
- #set(value) ⇒ Object
- #set? ⇒ Boolean
- #to_i ⇒ Object
- #to_s ⇒ Object
- #x ⇒ Object
- #y ⇒ Object
Constructor Details
#initialize(sudoku, value) ⇒ SudokuItem
Returns a new instance of SudokuItem.
5 6 7 8 |
# File 'lib/sudoku_item.rb', line 5 def initialize sudoku, value @sudoku = sudoku set value end |
Instance Method Details
#position ⇒ Object
22 23 24 25 26 |
# File 'lib/sudoku_item.rb', line 22 def position @position || @sudoku.each_with_position do |element, x, y| return (@position = x.to_i, y.to_i) if element == self end end |
#related ⇒ Object
28 29 30 |
# File 'lib/sudoku_item.rb', line 28 def ( + + ).uniq end |
#related_horizontal ⇒ Object
40 41 42 |
# File 'lib/sudoku_item.rb', line 40 def @sudoku.find_all {|item| (item.y == self.y) && (item != self)} end |
#related_in_box ⇒ Object
32 33 34 |
# File 'lib/sudoku_item.rb', line 32 def @sudoku.find_all {|item| (same_box? item) && (item != self)} end |
#related_vertical ⇒ Object
36 37 38 |
# File 'lib/sudoku_item.rb', line 36 def @sudoku.find_all {|item| (item.x == self.x) && (item != self)} end |
#same_box?(item) ⇒ Boolean
44 45 46 |
# File 'lib/sudoku_item.rb', line 44 def same_box? item (self.x / 3) == (item.x / 3) && (self.y / 3) == (item.y / 3) end |
#set(value) ⇒ Object
18 19 20 |
# File 'lib/sudoku_item.rb', line 18 def set value @value = value.to_i.zero? ? nil : value.to_i unless set? end |
#set? ⇒ Boolean
48 49 50 |
# File 'lib/sudoku_item.rb', line 48 def set? not @value.nil? end |
#to_i ⇒ Object
52 53 54 |
# File 'lib/sudoku_item.rb', line 52 def to_i @value.to_i end |
#to_s ⇒ Object
56 57 58 |
# File 'lib/sudoku_item.rb', line 56 def to_s set? ? @value.to_s : ' ' end |
#x ⇒ Object
10 11 12 |
# File 'lib/sudoku_item.rb', line 10 def x position.first end |
#y ⇒ Object
14 15 16 |
# File 'lib/sudoku_item.rb', line 14 def y position.last end |