class Tictactoe::Boards::Square
Attributes
side_size[RW]
Public Class Methods
new(side_size)
click to toggle source
# File lib/tictactoe/boards/square.rb, line 4 def initialize(side_size) self.side_size = side_size end
Public Instance Methods
lines()
click to toggle source
# File lib/tictactoe/boards/square.rb, line 12 def lines @lines ||= horizontal_lines + vertical_lines + diagonal_lines end
locations()
click to toggle source
# File lib/tictactoe/boards/square.rb, line 8 def locations @locations ||= (0..(side_size * side_size) -1).to_a end
Private Instance Methods
diagonal_lines()
click to toggle source
# File lib/tictactoe/boards/square.rb, line 27 def diagonal_lines descending = (0..side_size - 1).map do |column| column * (side_size + 1) end ascending = (1..side_size).map do |column| column * (side_size - 1) end [descending, ascending] end
horizontal_lines()
click to toggle source
# File lib/tictactoe/boards/square.rb, line 19 def horizontal_lines locations.each_slice(side_size).to_a end
vertical_lines()
click to toggle source
# File lib/tictactoe/boards/square.rb, line 23 def vertical_lines horizontal_lines.transpose end