class TowersOfHanoi::Move
Attributes
destination[R]
origin[R]
Public Class Methods
new(origin: nil, destination: nil)
click to toggle source
# File lib/towers_of_hanoi/move.rb, line 5 def initialize(origin: nil, destination: nil) @origin = origin @destination = destination end
Public Instance Methods
make(board)
click to toggle source
# File lib/towers_of_hanoi/move.rb, line 10 def make(board) if valid?(board) board.tower(destination).add(board.tower(origin).remove) end self end
Private Instance Methods
valid?(board)
click to toggle source
# File lib/towers_of_hanoi/move.rb, line 21 def valid?(board) (1..3) === origin && (1..3) === destination && board.tower(origin).top < board.tower(destination).top end