Backup/HanoiData.cs

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;

namespace Hanoi
{
    class HanoiData
    {
        public Dictionary<string, List<int>> diskList = new Dictionary<string, List<int>>();
        public int diskCount;
        
        public HanoiData(int diskCount)
        {
            this.diskCount = diskCount;

            diskList.Add("x", new List<int>());
            diskList.Add("y", new List<int>());
            diskList.Add("z", new List<int>());

            for (int i = 0; i < diskCount; i++)
            {
                diskList["x"].Add(i);
            }
        }

        public void Move(string sourceStick, string targetStick)
        {
            try
            {
                diskList[targetStick].Insert(0, diskList[sourceStick][0]);
                diskList[sourceStick].RemoveAt(0);
            }
            catch
            {
            }
        }

        public List<Step> GenerateSteps()
        {
            List<Step> stepList = new List<Step>();
            GenerateSteps(stepList, diskCount, "x", "y", "z");
            return stepList;
        }

        private void GenerateSteps(List<Step> stepList, int index,string startStick, string middleStick, string endStick)
        {            
            if (index == 1)
            {
                stepList.Add(new Step(startStick, endStick));
            }
            else
            {
                GenerateSteps(stepList, index-1, startStick, endStick, middleStick);
                stepList.Add(new Step(startStick, endStick));
                GenerateSteps(stepList, index - 1, middleStick, startStick, endStick);
            }
        }
    }

    public class Step
后面还有 11 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。