예제 #1
0
파일: Stake.cs 프로젝트: pgrudzien12/hanoi
        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);
        }
예제 #2
0
파일: Hanoi.cs 프로젝트: pgrudzien12/hanoi
 public void Solve()
 {
     _left.Move(_left.Biggest, _right, _center);
 }