用c#设计军棋棋盘

这篇博客详细介绍了如何利用C#编程实现军棋棋盘的设计,包括使用不同颜色和粗细的线条绘制棋盘边框,设定12行5列的坐标,连接坐标点,以及填充兵站、行营和山界等元素。
摘要由CSDN通过智能技术生成

完成后的军棋棋盘

 

1.需要的不同颜色不同粗细的三种线条

var pen = new Pen(Color.Red); //3: 
var pen3 = new Pen(Color.Red,3); //3: 
var brush = new SolidBrush(Color.White); //3: 

*白色线条用于绘制棋盘边界

2.确定一共12行5列的坐标点

            double x0, y0,w,h;
            double[,] x = new double[12, 5];
            double[,] y = new double[12, 5];
            x0 = 10 ;
            y0 = 10 ;
            w = 400 ;
            h = w*1331/1000 ;
            double w1 = w / 12.1;
            double h1 = h / 16.6;
            double x1 = 0.75*w1;
            double x2 = 2.65*w1;
            double y1 = 0.55*h1;
            double y2 = 1.2*h1;
            double y3 = 3.5*h1;
            double r = w/20/3*2 ;

3.连线

            graph.FillRectangle(brush, (float)x0, (float)y0, (float)w, (float)h);

            for (int i = 0; i < 12; i++)
            {
                graph.DrawLine(pen, (float)x[i, 0], (float)y[i, 0], (float)x[i, 4], (float)y[i, 4]);
            }
            for (int i = 0; i < 5; i++)
            {
                graph.DrawLine(pen, (float)x[0, i], (float)y[0, i], (float)x[5, i], (float)y[5, i]);
                graph.DrawLine(pen, (float)x[6, i], (float)y[6, i], (float)x[11, i], (float)y[11, i]);
            }
            graph.DrawLine(pen3, (float)x[1, 0], (float)y[1, 0], (float)x[10, 0], (float)y[10, 0]);
            graph.DrawLine(pen, (float)x[5, 2], (float)y[5, 2], (float)x[6, 2], (float)y[6, 2]);
            graph.DrawLine(pen3, (float)x[1, 4], (float)y[1, 4], (float)x[10, 4], (float)y[10, 4]);
            graph.DrawLine(pen3, (float)x[1, 0], (float)y[1, 0], (float)x[1, 4], (float)y[1, 4]);
            graph.DrawLine(pen3, (float)x[10, 0], (float)y[10, 0], (float)x[10, 4], (float)y[10, 4]);
            graph.DrawLine(pen3, (float)x[5, 0], (float)y[5, 0], (float)x[5, 4], (float)y[5, 4]);
            graph.DrawLine(pen3, (float)x[6, 0], (float)y[6, 0], (float)x[6, 4], (float)y[6, 4]);

            graph.DrawLine(pen, (float)x[1, 0], (float)y[1, 0], (float)x[5, 4], (float)y[5, 4]);
            graph.DrawLine(pen, (float)x[3, 0], (float)y[3, 0], (float)x[5, 2], (float)y[5, 2]);
            graph.DrawLine(pen, (float)x[1, 2], (float)y[1, 2], (float)x[3, 4], (float)y[3, 4]);
            graph.DrawLine(pen, (float)x[5, 0], (float)y[5, 0], (float)x[1, 4], (float)y[1, 4]);
            graph.DrawLine(pen, (float)x[3, 0], (float)y[3, 0], (float)x[1, 2], (float)y[1, 2]);
            graph.DrawLine(pen, (float)x[5, 2], (float)y[5, 2], (float)x[3, 4], (float)y[3, 4]);

            graph.DrawLine(pen, (float)x[6, 0], (float)y[6, 0], (float)x[10, 4], (float)y[10, 4]);
            graph.DrawLine(pen, (float)x[10, 0], (float)y[10, 0], (float)x[6, 4], (float)y[6, 4]);
            graph.DrawLine(pen, (float)x[8, 0], (float)y[8, 0], (float)x[6, 2], (float)y[6, 2]);
            graph.DrawLine(pen, (float)x[8, 0], (float)y[
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值