• 大小: 62KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-12
  • 语言: C#
  • 标签: 汉诺塔  Hanio  C#  动画  

资源简介

一个汉诺塔动态移动的C#项目,VS2010开发。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace Hanoi
{
    public partial class Form1 : Form
    {
        int PlateMargin = 10;
        int MaxPlateWidth MinPlateWidth = 50;

        int PlateNumber = 5;
        int PlateHeight MaxPlateHeight = 30;
        int dRadius dRadiusMax = 15;//盘子半径差
        Label[] Plate = null;
        Stack[] stack = new Stack[3];
        bool isMoving = false;
        public Form1()
        {
            InitializeComponent();

        }

        private void Form1_Load(object sender EventArgs e)
        {
            btnStop.Enabled = btnReset.Enabled = false;
            stack[0] = new Stack();
            stack[1] = new Stack();
            stack[2] = new Stack();
            MaxPlateWidth = (lblFloor.Width - PlateMargin * 2) / 3;
            lblA.Left = (int)(lblFloor.Left + PlateMargin + 1.0 * MaxPlateWidth / 2 - lblA.Width / 2.0);
            lblB.Left = (int)(lblFloor.Left + PlateMargin + 3.0 * MaxPlateWidth / 2 - lblB.Width / 2.0);
            lblC.Left = (int)(lblFloor.Left + PlateMargin + 5.0 * MaxPlateWidth / 2 - lblA.Width / 2.0);
            CreatePlate();
            initRun();
        }

        //运行前的初始化工作
        private void initRun()
        {
            stack[0].Clear();
            stack[1].Clear();
            stack[2].Clear();
            for (int i = 0; i < PlateNumber; ++i)
            {
                Plate[i].Left = lblFloor.Left + PlateMargin + i * dRadius;
                Plate[i].Top = lblFloor.Top - (PlateHeight - 1) * (i + 1);
                stack[0].Push(i);
            }
        }

        //动态创建盘子、设置其属性,并显示在窗体上
        private void CreatePlate()
        {
            PlateHeight = lblA.Height / PlateNumber;
            if (PlateHeight > MaxPlateHeight) PlateHeight = MaxPlateHeight;
            dRadius = (int)((MaxPlateWidth - MinPlateWidth) / (PlateNumber - 1.0) / 2);
            if (dRadius > dRadiusMax) dRadius = dRadiusMax;
            if (Plate != null)
            {
                if (PlateNumber != Plate.Length)
                {
                    Label[] tmp = new Label[PlateNumber];
                    Array.Copy(Plate 0 tmp 0 Math.Min(Plate.Length PlateNumber));
                    if (Plate.Length < PlateNumber)
                    {
                        for (int i = Plate.Length; i < PlateNumber; ++i)
                        {
                            tmp[i] = new Label();
                            this.Controls.Add(tmp[i]);
                        }
                    }
                    else
                    {
                        for (int i = PlateNumber; i < Plate.Length; ++i)
                        {
                            this.Controls.Remove(Plate[i]);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        117  2014-12-17 10:35  Hanoi\Hanoi\app.config

     文件      11608  2015-01-25 14:01  Hanoi\Hanoi\bin\Debug\Hanoi.vshost.exe

     文件        117  2014-12-17 10:35  Hanoi\Hanoi\bin\Debug\Hanoi.vshost.exe.config

     文件        490  2010-03-17 22:39  Hanoi\Hanoi\bin\Debug\Hanoi.vshost.exe.manifest

     文件      15872  2015-01-18 18:08  Hanoi\Hanoi\bin\Release\Hanoi.exe

     文件        117  2014-12-17 10:35  Hanoi\Hanoi\bin\Release\Hanoi.exe.config

     文件      28160  2015-01-18 18:08  Hanoi\Hanoi\bin\Release\Hanoi.pdb

     文件      11608  2015-01-18 18:07  Hanoi\Hanoi\bin\Release\Hanoi.vshost.exe

     文件        117  2014-12-17 10:35  Hanoi\Hanoi\bin\Release\Hanoi.vshost.exe.config

     文件        490  2010-03-17 22:39  Hanoi\Hanoi\bin\Release\Hanoi.vshost.exe.manifest

     文件       8602  2015-01-25 13:59  Hanoi\Hanoi\Form1.cs

     文件       8828  2015-01-25 13:59  Hanoi\Hanoi\Form1.Designer.cs

     文件       5817  2015-01-25 13:59  Hanoi\Hanoi\Form1.resx

     文件       3741  2014-12-17 10:35  Hanoi\Hanoi\Hanoi.csproj

     文件       4440  2014-12-12 08:06  Hanoi\Hanoi\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       6025  2015-01-25 14:01  Hanoi\Hanoi\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件       4608  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Debug\TempPE\Properties.Resources.Designer.cs.dll

     文件       6029  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Release\DesignTimeResolveAssemblyReferencesInput.cache

     文件        600  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Release\GenerateResource-ResGen.read.1.tlog

     文件        442  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Release\GenerateResource-ResGen.write.1.tlog

     文件        598  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Release\Hanoi.csproj.FileListAbsolute.txt

     文件      15872  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Release\Hanoi.exe

     文件        180  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Release\Hanoi.Form1.resources

     文件      28160  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Release\Hanoi.pdb

     文件        180  2015-01-18 18:08  Hanoi\Hanoi\obj\x86\Release\Hanoi.Properties.Resources.resources

     文件       4608  2014-12-17 10:35  Hanoi\Hanoi\obj\x86\Release\TempPE\Properties.Resources.Designer.cs.dll

     文件        486  2014-12-11 20:23  Hanoi\Hanoi\Program.cs

     文件       1366  2014-12-11 20:23  Hanoi\Hanoi\Properties\AssemblyInfo.cs

     文件       2849  2014-12-17 10:35  Hanoi\Hanoi\Properties\Resources.Designer.cs

     文件       5612  2014-12-11 20:23  Hanoi\Hanoi\Properties\Resources.resx

............此处省略19个文件信息

评论

共有 条评论