Class: TicTacToe::Board
- Inherits:
-
Object
- Object
- TicTacToe::Board
- Defined in:
- lib/tic_tac_toe_mchliakh/board/board.rb
Instance Attribute Summary collapse
-
#lines ⇒ Object
readonly
Returns the value of attribute lines.
-
#squares ⇒ Object
readonly
Returns the value of attribute squares.
-
#winner ⇒ Object
readonly
Returns the value of attribute winner.
Instance Method Summary collapse
- #game_over? ⇒ Boolean
-
#initialize(saved = nil) ⇒ Board
constructor
A new instance of Board.
- #serialize ⇒ Object
- #square(number) ⇒ Object
- #square_taken ⇒ Object
- #three_in_a_row(player) ⇒ Object
Constructor Details
#initialize(saved = nil) ⇒ Board
Returns a new instance of Board.
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 5 def initialize(saved=nil) setup do if saved saved.map.with_index do |s, n| squares << Square.new(self, n + 1, s) end else 9.times {|n| squares << Square.new(self, n + 1) } end end end |
Instance Attribute Details
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
3 4 5 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 3 def lines @lines end |
#squares ⇒ Object (readonly)
Returns the value of attribute squares.
3 4 5 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 3 def squares @squares end |
#winner ⇒ Object (readonly)
Returns the value of attribute winner.
3 4 5 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 3 def winner @winner end |
Instance Method Details
#game_over? ⇒ Boolean
25 26 27 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 25 def game_over? !!@game_over end |
#serialize ⇒ Object
38 39 40 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 38 def serialize squares.map(&:serialize) end |
#square(number) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 17 def square(number) unless 1.upto(9).include?(number) raise RangeError, 'Choose a number between 1 and 9' end squares[number - 1] end |
#square_taken ⇒ Object
29 30 31 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 29 def square_taken game_over if squares.all_taken? end |
#three_in_a_row(player) ⇒ Object
33 34 35 36 |
# File 'lib/tic_tac_toe_mchliakh/board/board.rb', line 33 def three_in_a_row(player) @winner = player game_over end |