class JustBackgammon::Point
Point
¶ ↑
A point where pieces can land on. Each one has a number.
Attributes
number[R]
@return [Fixnum] the point number and identifier
pieces[R]
@return [Array<Piece>] all the pieces on this point
Public Class Methods
new(pieces: , number:)
click to toggle source
A new instance of Point
.
@param [Array<Hash>] pieces
All the pieces on this point.
@param [Fixnum] number
The point number and identifier.
Example:¶ ↑
# Instantiates a new Point JustBackgammon::Point.new({ pieces: [{player_number: 1}, {player_number: 1}], number: 1 })
# File lib/just_backgammon/point.rb, line 28 def initialize(pieces: , number:) @pieces = JustBackgammon::Piece.load(pieces) @number = number end
Public Instance Methods
as_json()
click to toggle source
A hashed serialized representation of the bar.
@return [Hash]
# File lib/just_backgammon/point.rb, line 105 def as_json { number: number, pieces: pieces.map(&:as_json) } end
blocked?()
click to toggle source
Checks if point has more than one piece.
@return [Boolean]
# File lib/just_backgammon/point.rb, line 73 def blocked? size > 1 end
blot?()
click to toggle source
Checks if point has only one piece.
@return [Boolean]
# File lib/just_backgammon/point.rb, line 80 def blot? size == 1 end
hittable?(player_number)
click to toggle source
# File lib/just_backgammon/point.rb, line 98 def hittable?(player_number) owned_by_opponent?(player_number) && blot? end
home?(player_number)
click to toggle source
Checks if point is a home point for specified player.
@return [Boolean]
# File lib/just_backgammon/point.rb, line 87 def home?(player_number) case player_number when 1 (19..24).include?(number) when 2 (1..6).include?(number) else true end end
owned_by_opponent?(player_number)
click to toggle source
Checks if point has pieces owned by the opponent of the specified player.
@return [Boolean]
# File lib/just_backgammon/point.rb, line 66 def owned_by_opponent?(player_number) pieces.any? { |p| p.player_number != player_number } end
owned_by_player?(player_number)
click to toggle source
Checks if point has pieces owned by the specified player.
@return [Boolean]
# File lib/just_backgammon/point.rb, line 59 def owned_by_player?(player_number) pieces.any? { |p| p.player_number == player_number } end
pop(_=nil)
click to toggle source
Removes a piece and returns it.
@return [Piece,NilClass]
# File lib/just_backgammon/point.rb, line 45 def pop(_=nil) @pieces.pop end
push(piece)
click to toggle source
Adds a piece to the point.
@return [Array<Piece>]
# File lib/just_backgammon/point.rb, line 52 def push(piece) @pieces.push(piece) end