Skip to content

Commit

Permalink
Pieces: remove duplication in #raw_directional_moves
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Tan committed Feb 5, 2013
1 parent e896148 commit 589f054
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 11 deletions.
8 changes: 8 additions & 0 deletions lib/ruby-chess-board/piece.rb
Expand Up @@ -73,5 +73,13 @@ def opponent?(variable)
def ally?(variable) def ally?(variable)
variable.kind_of?(Piece) && variable.color == color variable.kind_of?(Piece) && variable.color == color
end end

# Returns the coordinates of itself in a given game.
# @param [Game] game
# @return [Coordinate]
def coordinates_in_game(game)
board = game.board
board.coordinates_of(self)
end
end end
end end
3 changes: 1 addition & 2 deletions lib/ruby-chess-board/pieces/bishop.rb
Expand Up @@ -2,8 +2,7 @@ module RubyChessBoard
class Bishop < Piece class Bishop < Piece
# @private # @private
def raw_directional_moves(game) def raw_directional_moves(game)
board = game.board position = coordinates_in_game(game)
position = board.coordinates_of(self)


CoordinateCollection.new sets: [ CoordinateCollection.new sets: [
position.relative_coordinate_set(1, 1), position.relative_coordinate_set(1, 1),
Expand Down
3 changes: 1 addition & 2 deletions lib/ruby-chess-board/pieces/king.rb
Expand Up @@ -2,8 +2,7 @@ module RubyChessBoard
class King < Piece class King < Piece
# @private # @private
def raw_directional_moves(game) def raw_directional_moves(game)
board = game.board position = coordinates_in_game(game)
position = board.coordinates_of(self)


CoordinateCollection.new coordinates: [ CoordinateCollection.new coordinates: [
position.relative_coordinate(0, 1), position.relative_coordinate(0, 1),
Expand Down
3 changes: 1 addition & 2 deletions lib/ruby-chess-board/pieces/knight.rb
Expand Up @@ -2,8 +2,7 @@ module RubyChessBoard
class Knight < Piece class Knight < Piece
# @private # @private
def raw_directional_moves(game) def raw_directional_moves(game)
board = game.board position = coordinates_in_game(game)
position = board.coordinates_of(self)


CoordinateCollection.new coordinates: [ CoordinateCollection.new coordinates: [
position.relative_coordinate(1, 2), position.relative_coordinate(1, 2),
Expand Down
2 changes: 1 addition & 1 deletion lib/ruby-chess-board/pieces/pawn.rb
Expand Up @@ -15,7 +15,7 @@ def rank_directions
# @private # @private
def raw_directional_moves(game) def raw_directional_moves(game)
board = game.board board = game.board
position = board.coordinates_of(self) position = coordinates_in_game(game)


collection = CoordinateCollection.new collection = CoordinateCollection.new


Expand Down
3 changes: 1 addition & 2 deletions lib/ruby-chess-board/pieces/queen.rb
Expand Up @@ -2,8 +2,7 @@ module RubyChessBoard
class Queen < Piece class Queen < Piece
# @private # @private
def raw_directional_moves(game) def raw_directional_moves(game)
board = game.board position = coordinates_in_game(game)
position = board.coordinates_of(self)


CoordinateCollection.new sets: [ CoordinateCollection.new sets: [
position.relative_coordinate_set(0, 1), position.relative_coordinate_set(0, 1),
Expand Down
3 changes: 1 addition & 2 deletions lib/ruby-chess-board/pieces/rook.rb
Expand Up @@ -2,8 +2,7 @@ module RubyChessBoard
class Rook < Piece class Rook < Piece
# @private # @private
def raw_directional_moves(game) def raw_directional_moves(game)
board = game.board position = coordinates_in_game(game)
position = board.coordinates_of(self)


CoordinateCollection.new sets: [ CoordinateCollection.new sets: [
position.relative_coordinate_set(0, 1), position.relative_coordinate_set(0, 1),
Expand Down

0 comments on commit 589f054

Please sign in to comment.