资源简介

王红梅的算法书中“棋盘覆盖”算法的C#可视化实现 代码可以运行

资源截图

代码片段和文件信息

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


namespace qiPanFuGaiTemp
{
    public partial class Form1 : Form
    {
        private bool calcFlag = false;//棋盘颜色是否已经计算过了
        private int i = 1;//棋盘上色的时候用于计数
        private int size = 4;//棋盘的边长 默认是4
        private int ptx = 1;//特殊方块的x坐标
        private int pty = 1;//特殊方块的y坐标
        private float unit = 100;//每一个小格子的边长
        private int colorCode = 0;
        private PointF[] chessboardColor;//从chessboardColor[1]开始 每三个一组 是同一个L ([1][2][3]存储着同一个L的坐标)
        private Graphics graphics;
        private Brush[] brushes ={ Brushes.Crimson  Brushes.ForestGreen Brushes.Chartreuse Brushes.IndianRed Brushes.Aqua Brushes.BlueViolet Brushes.Green Brushes.GreenYellowBrushes.BurlyWoodBrushes.Goldenrod};
        private const float CHESSBOARD_SIZE = 512;

        public Form1()
        {
            InitializeComponent();
            graphics = this.CreateGraphics();//得到这个窗口的的图像类
            textBoxSize.Tag = true;
            textBoxX.Tag = true;
            textBoxY.Tag = true;
            chessboardColor = new PointF[size * size];
            chessboardColor[0] = new PointF(11);//第0种颜色 
            timer1.Enabled = false;
            this.buttonPrev.Enabled = false;
            this.buttonNext.Enabled = false;
            
        }

        private void Form1_Shown(object sender EventArgs e)//初始化form视图
        {
            drawframe();
        }


        //  有效参数判断方法:
        //  刚开始设定默认值 并且让3个textBox都为true。之后用2个textChange函数分别检测size和 x y
        //  一旦输入不符合要求就变化背景色 禁用开关。一旦符合要求 就检测3个是否都合格了 合格就绘制出棋盘框架
        //  3个textBox都有数字限定 valided 显示 error data 和 进入若是error data 就置空
        private void textBox_KeyPress(object sender KeyPressEventArgs e)//负责3个textbox只能输入数字
        {
            TextBox lb = (TextBox)sender;
            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8)
            {
                e.Handled = true;
            }
        }


        private void textBox_MouseClick(object sender MouseEventArgs e)//负责3个textBox后 如果是error data 就置空
        {
            TextBox tb = (TextBox)sender;
            if(tb.Text==“error data“)
                tb.Text = ““;
        }

        private void textBox_Validated(object sender EventArgs e)//只负责3个TextBox 根据 tag 显示error data 和背景色
        {
            TextBox tb = (TextBox)sender;
            if ((bool)tb.Tag == false)
            {
                tb.Text = “error data“;
                tb.BackColor = Color.Fuchsia;
            }
        }

       


        private void textBoxSize_TextChanged(object sender EventArgs e)//负责当size变为有效数字的时候  判断三个text是否都有效了 
        {
            this.buttonPrev.Enabled = false;
            this.buttonNext.Enabled = false;
            calcFlag = false;
            TextBox tb = (TextBox)sender;
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-12 02:00  棋盘覆盖\
     文件        1406  2012-05-12 01:27  棋盘覆盖\down2.gif
     文件        1428  2012-05-12 01:54  棋盘覆盖\end.gif
     文件        1403  2012-05-12 01:28  棋盘覆盖\end2.gif
     文件        1438  2012-05-12 01:51  棋盘覆盖\nex.gif
     文件        1436  2012-05-12 01:58  棋盘覆盖\pre.gif
     文件        1395  2012-05-12 01:29  棋盘覆盖\pre2.gif
     目录           0  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\
     文件         931  2012-04-08 22:42  棋盘覆盖\qiPanFuGaiTemp.sln
     文件       19968  2012-05-20 21:44  棋盘覆盖\qiPanFuGaiTemp.suo
     目录           0  2012-05-04 23:09  棋盘覆盖\qiPanFuGaiTemp\bin\
     目录           0  2012-04-08 22:58  棋盘覆盖\qiPanFuGaiTemp\bin\Debug\
     文件       32768  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\bin\Debug\qiPanFuGaiTemp.exe
     文件       32256  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\bin\Debug\qiPanFuGaiTemp.pdb
     文件        5632  2005-12-08 14:51  棋盘覆盖\qiPanFuGaiTemp\bin\Debug\qiPanFuGaiTemp.vshost.exe
     目录           0  2012-05-04 23:09  棋盘覆盖\qiPanFuGaiTemp\bin\Release\
     文件       32768  2012-05-04 23:18  棋盘覆盖\qiPanFuGaiTemp\bin\Release\qiPanFuGaiTemp.exe
     文件       30208  2012-05-04 23:18  棋盘覆盖\qiPanFuGaiTemp\bin\Release\qiPanFuGaiTemp.pdb
     文件        5632  2005-12-08 14:51  棋盘覆盖\qiPanFuGaiTemp\bin\Release\qiPanFuGaiTemp.vshost.exe
     文件       13485  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\Form1.cs
     文件       10180  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\Form1.Designer.cs
     文件       13067  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\Form1.resx
     目录           0  2012-05-04 23:09  棋盘覆盖\qiPanFuGaiTemp\obj\
     目录           0  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\obj\Debug\
     文件         842  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\obj\Debug\qiPanFuGaiTemp.csproj.GenerateResource.Cache
     文件       32768  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\obj\Debug\qiPanFuGaiTemp.exe
     文件        5167  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\obj\Debug\qiPanFuGaiTemp.Form1.resources
     文件       32256  2012-05-20 21:43  棋盘覆盖\qiPanFuGaiTemp\obj\Debug\qiPanFuGaiTemp.pdb
     文件         180  2012-04-08 22:58  棋盘覆盖\qiPanFuGaiTemp\obj\Debug\qiPanFuGaiTemp.Properties.Resources.resources
     目录           0  2012-04-08 23:16  棋盘覆盖\qiPanFuGaiTemp\obj\Debug\Refactor\
     目录           0  2012-04-08 22:42  棋盘覆盖\qiPanFuGaiTemp\obj\Debug\TempPE\
............此处省略16个文件信息

评论

共有 条评论