public virtual void Move(Ring ringToMove, Stake targetStake, Stake temporaryStake) { if (CanTake(ringToMove)) { targetStake.Accept(this); return; } Move(ringToMove.Smaller(), temporaryStake, targetStake); targetStake.Accept(this); temporaryStake.Move(ringToMove.Smaller(), targetStake, this); }
public void Solve() { _left.Move(_left.Biggest, _right, _center); }