Class: ChessEngine::Move
- Inherits:
-
Object
- Object
- ChessEngine::Move
- Defined in:
- lib/chess_engine/move.rb
Instance Method Summary collapse
- #commit ⇒ Object
-
#initialize(board, from, to) ⇒ Move
constructor
A new instance of Move.
- #rollback ⇒ Object
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
#commit ⇒ Object
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 |
#rollback ⇒ Object
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 |