91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c#編寫中國象棋棋盤的思想

發布時間:2020-08-03 14:56:01 來源:網絡 閱讀:670 作者:qingpan5210 欄目:編程語言

 

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

namespace Chess
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private const int _outterStartLeft = 25;//棋盤的外框距離panel的左邊距
        private const int _outterStartTop = 25;//棋盤的外框距離panel的上邊距
        private const int _distance = 6;//棋盤的內框與外框的距離
        private const int _riverFontFromBorder = 40;//“楚河”或“漢界”距離邊框的長度
        private const int _locationLength = 10;//標示“炮”“卒”位置的線長度
        private const int _locationFromBorder = 2;//標示“炮”“卒”位置的線
        
        //畫筆
        Pen drawOutterRecPen = new Pen(Color.Black, 4);//棋盤外邊框用到的畫筆黑色4pt
        Pen drawInnerRecPen = new Pen(Color.Black, 2);//棋盤內邊框用黑色2pt畫筆
        Pen drawBasicLine = new Pen(Color.Black, 1);//棋盤基線用黑色1pt畫筆
        Pen drawOutterR = new Pen(Color.Red,2);

        //字體
        Font drawRiverFont = new Font("幼圓", 25);

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

            Graphics gh = e.Graphics;//獲取繪制圖形對象
            //畫棋盤邊框

            int _chessBoardWidth = panel1.Width - 2 * _outterStartLeft - 2 * _distance;//棋盤的寬度
            int _chessBoardHeight = panel1.Height - 2 * _outterStartTop - 2 * _distance;//棋盤的高度
            //畫棋盤外邊框
            gh.DrawRectangle(drawOutterRecPen, new Rectangle(new Point(_outterStartLeft, _outterStartTop), new Size(_chessBoardWidth + 2 * _distance, _chessBoardHeight + 2 * _distance)));
            //畫棋盤內邊框
            gh.DrawRectangle(drawInnerRecPen, new Rectangle(new Point(_outterStartLeft + _distance, _outterStartTop + _distance), new Size(_chessBoardWidth, _chessBoardHeight)));


            //畫棋盤

            //畫棋盤線
            int _xStart = _outterStartLeft + _distance;//線的起始x坐標
            int _yStart = _outterStartTop + _distance;//線的起始y坐標
            int gridWidth = (panel1.Width - 2 * _outterStartLeft - 2 * _distance) / 8;
            int gridHeight = (panel1.Height - 2 * _outterStartTop - 2 * _distance) / 9;
            //畫豎線(8列7條線)
            for (int i = 1; i <= 7; i++)
            {
                //分開畫,避開“楚河漢界”一行的豎線
                gh.DrawLine(drawBasicLine, new Point(_xStart + i * gridWidth, _yStart), new Point(_xStart + i * gridWidth, _yStart + 4 * gridHeight));
                gh.DrawLine(drawBasicLine, new Point(_xStart + i * gridWidth, _yStart + 5 * gridHeight), new Point(_xStart + i * gridWidth, _yStart + _chessBoardHeight));
            }
            //畫橫線(9行8條線)
            for (int i = 1; i <= 8; i++)
            {
                gh.DrawLine(drawBasicLine, new Point(_xStart, _yStart + i * gridHeight), new Point(_xStart + _chessBoardWidth, _yStart + i * gridHeight));
            }
            //畫“楚河漢界”
            SizeF fRiver = gh.MeasureString("楚 河", drawRiverFont);
            SizeF fBound = gh.MeasureString("漢 界", drawRiverFont);
            gh.DrawString("楚 河", drawRiverFont, Brushes.Red, new PointF(_xStart + _chessBoardWidth - _riverFontFromBorder - fRiver.Width, _yStart + 4 * gridHeight + (float)(gridHeight - fRiver.Height) / 2));
            gh.DrawString("漢 界", drawRiverFont, Brushes.Red, new PointF(_xStart + _riverFontFromBorder, _yStart + 4 * gridHeight + (float)(gridHeight - fBound.Height) / 2));
            //gh.DrawString("楚 河", drawRiverFont, Brushes.Red, new PointF((_xStart + _chessBoardWidth)/2 - _riverFontFromBorder, _yStart + 4 * gridHeight + (float)(gridHeight - fRiver.Height) / 2));
            //畫將/帥的皇宮
            gh.DrawLine(drawBasicLine, new Point(_xStart + 3 * gridWidth, _yStart), new Point(_xStart + 5 * gridWidth, _yStart + 2 * gridHeight));
            gh.DrawLine(drawBasicLine, new Point(_xStart + 3 * gridWidth, _yStart + 2 * gridHeight), new Point(_xStart + 5 * gridWidth, _yStart));

            gh.DrawLine(drawBasicLine, new Point(_xStart + 3 * gridWidth, _yStart + 7 * gridHeight), new Point(_xStart + 5 * gridWidth, _yStart + _chessBoardHeight));
            gh.DrawLine(drawBasicLine, new Point(_xStart + 3 * gridWidth, _yStart + _chessBoardHeight), new Point(_xStart + 5 * gridWidth, _yStart + 7 * gridHeight));
            //畫“炮”的位置
            for (int i = 0; i <= 1; i++)
            {
                for (int j = 0; j <= 1; j++)
                {
                    gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + gridWidth - _locationLength - _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight - _locationFromBorder+i*5*gridHeight),
                        new Point(_xStart + gridWidth - _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight - _locationFromBorder+i*5*gridHeight),
                        new Point(_xStart + gridWidth - _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight - _locationLength - _locationFromBorder+i*5*gridHeight) });
                    gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + gridWidth - _locationLength - _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight + 2 * _locationFromBorder+i*5*gridHeight),
                        new Point(_xStart + gridWidth - _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight + 2 * _locationFromBorder+i*5*gridHeight),
                        new Point(_xStart + gridWidth - _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight + _locationLength + 2 * _locationFromBorder+i*5*gridHeight) });
                    gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + gridWidth + 2 * _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight + _locationLength + 2 * _locationFromBorder+i*5*gridHeight),
                        new Point(_xStart + gridWidth + 2 * _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight + 2 * _locationFromBorder+i*5*gridHeight),
                        new Point(_xStart + gridWidth + _locationLength + 2 * _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight + 2 * _locationFromBorder+i*5*gridHeight) });
                    gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + gridWidth + 2 * _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight - _locationLength - _locationFromBorder+i*5*gridHeight),
                        new Point(_xStart + gridWidth + 2 * _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight - _locationFromBorder+i*5*gridHeight),
                        new Point(_xStart + gridWidth + _locationLength + 2 * _locationFromBorder + j * 6 * gridWidth, _yStart + 2 * gridHeight - _locationFromBorder+i*5*gridHeight) });

                }
            }
            //畫“卒”的位置
            for (int i = 0; i <= 1; i++)
            {
                for (int j = 0; j <= 2; j++)
                {
                    gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + 2*gridWidth - _locationLength - _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight - _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart + 2*gridWidth - _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight - _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart + 2*gridWidth - _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight - _locationLength - _locationFromBorder+i*3*gridHeight) });
                    gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + 2*gridWidth - _locationLength - _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight + 2 * _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart + 2*gridWidth - _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight + 2 * _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart + 2*gridWidth - _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight + _locationLength + 2 * _locationFromBorder+i*3*gridHeight) });
                    gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + 2*gridWidth + 2 * _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight + _locationLength + 2 * _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart + 2*gridWidth + 2 * _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight + 2 * _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart + 2*gridWidth + _locationLength + 2 * _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight + 2 * _locationFromBorder+i*3*gridHeight) });
                    gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + 2*gridWidth + 2 * _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight - _locationLength - _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart + 2*gridWidth + 2 * _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight - _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart + 2*gridWidth + _locationLength + 2 * _locationFromBorder + j *2 * gridWidth, _yStart + 3 * gridHeight - _locationFromBorder+i*3*gridHeight) });

                }
            }
            for (int i = 0; i <= 1; i++)
            {
                gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + 2 * _locationFromBorder, _yStart + 3 * gridHeight + _locationLength + 2 * _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart  + 2 * _locationFromBorder, _yStart + 3 * gridHeight + 2 * _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart  + _locationLength + 2 * _locationFromBorder, _yStart + 3 * gridHeight + 2 * _locationFromBorder+i*3*gridHeight) });
                gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart  + 2 * _locationFromBorder, _yStart + 3 * gridHeight - _locationLength - _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart  + 2 * _locationFromBorder, _yStart + 3 * gridHeight - _locationFromBorder+i*3*gridHeight),
                        new Point(_xStart  + _locationLength + 2 * _locationFromBorder, _yStart + 3 * gridHeight - _locationFromBorder+i*3*gridHeight) });
            }
            for (int j = 0; j <= 1; j++)
            {
                gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + _chessBoardWidth - _locationLength - 2*_locationFromBorder, _yStart + 3 * gridHeight - _locationFromBorder+j*3*gridHeight),
                        new Point(_xStart + _chessBoardWidth - 2*_locationFromBorder , _yStart + 3 * gridHeight - _locationFromBorder+j*3*gridHeight),
                        new Point(_xStart + _chessBoardWidth - 2*_locationFromBorder, _yStart + 3 * gridHeight - _locationLength - _locationFromBorder+j*3*gridHeight) });
                gh.DrawLines(drawInnerRecPen, new Point[] {
                        new Point(_xStart + _chessBoardWidth - _locationLength - 2*_locationFromBorder , _yStart + 3 * gridHeight + 2 * _locationFromBorder+j*3*gridHeight),
                        new Point(_xStart + _chessBoardWidth - 2*_locationFromBorder, _yStart + 3 * gridHeight + 2 * _locationFromBorder+j*3*gridHeight),
                        new Point(_xStart + _chessBoardWidth - 2*_locationFromBorder, _yStart + 3 * gridHeight + _locationLength + 2 * _locationFromBorder+j*3*gridHeight) });
            }
          
            gh.Flush();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
          
            panel1.Size = new System.Drawing.Size(462, 512);
            panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(205)))), ((int)(((byte)(170)))));
          
            for (int i = 0; i <= 2; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    //gh.DrawEllipse(drawOutterR,);
                }
            }
        }
       
       
      
    }
}
 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临武县| 招远市| 昭苏县| 金门县| 神农架林区| 十堰市| 绩溪县| 容城县| 巴中市| 乐平市| 赤城县| 陆河县| 离岛区| 武穴市| 乌苏市| 偏关县| 南阳市| 武山县| 鄱阳县| 莱西市| 新乡市| 内黄县| 武平县| 渑池县| 岐山县| 海丰县| 松江区| 娄烦县| 柏乡县| 育儿| 彭山县| 高要市| 泸水县| 太康县| 乐业县| 颍上县| 武义县| 保定市| 老河口市| 宁津县| 安新县|