コード例 #1
0
ファイル: Hanoi.cs プロジェクト: pgrudzien12/hanoi
 public Hanoi(int biggestRing)
 {
     _biggestRing = biggestRing;
     _left        = new Stake(biggestRing);
     _center      = new Stake(0);
     _right       = new Stake(0);
 }
コード例 #2
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);
        }
コード例 #3
0
ファイル: Stake.cs プロジェクト: pgrudzien12/hanoi
 private void Accept(Stake sourceStake)
 {
     Accept(sourceStake.Take());
 }