Class: ChessEngine::Move

Inherits:
Object
  • Object
show all
Defined in:
lib/chess_engine/move.rb

Instance Method Summary collapse

Constructor Details

#initialize(board, from, to) ⇒ Move

Returns a new instance of Move.



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/chess_engine/move.rb', line 3

def initialize(board, from, to)
  @board = board
  @from = from
  @to = to
  @original_squares = []
  @original_squares << {coord: from, piece: board.at(from)}
  @original_squares << {coord: to, piece: board.at(to)}
  if en_passant?
    @en_passant_coord = [to[0], from[1]]
    @original_squares << {coord: @en_passant_coord, piece: board.at(@en_passant_coord)}
  end
end

Instance Method Details

#commitObject



16
17
18
19
20
21
# File 'lib/chess_engine/move.rb', line 16

def commit
  if en_passant?
    @board.set_at(@en_passant_coord, nil)
  end
  @board.move_piece(@from, @to)
end

#rollbackObject



23
24
25
26
27
# File 'lib/chess_engine/move.rb', line 23

def rollback
  @original_squares.each do |square|
    @board.set_at(square[:coord], square[:piece])
  end
end