在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#游戏开发 → C# 中国象棋 游戏源码

C# 中国象棋 游戏源码

C#游戏开发

下载此实例
  • 开发语言:C#
  • 实例大小:2.69M
  • 下载次数:611
  • 浏览次数:4133
  • 发布时间:2016-12-27
  • 实例类别:C#游戏开发
  • 发 布 人:TouckyChow
  • 文件格式:.rar
  • 所需积分:0
 相关标签: 象棋

实例介绍

【实例简介】编码很简单,没有复杂的函数。

函数简单,有详细的走子和吃子检测。不足之处是画面简约,人工智能尚开发中,敬请期待!

【实例截图】

【核心代码】C#


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.Drawing.Design;
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////By Toucky!  QQ:648702035.///////////////////////////////////////////
//////////////包含走子、吃子检测,不包含人机对弈的人工智能,这是下一步的目标。////////////////////////
///////////////C#开发的第一个程序,画面质量改善中。Visual C#2010编译通过。///////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

namespace uim
{
    public partial class Form1 : Form
    {
        bool Flag = false, FlagCanGo = false, FlagCanEat = false, RedTurn=false,GreenTurn=false;
        Point OldPosin, NewPosin;
        public int m;
        public int[][] ArrayQiPan = new int[10][]
                           {
                             new int[9]{1,2,3,4,5,6,7,8,9},
                             new int[9]{0,0,0,0,0,0,0,0,0} ,
                             new int[9]{0,10,0,0,0,0,0,11,0},
                             new int[9]{12,0,13,0,14,0,15,0,16},
                             new int[9]{0,0,0,0,0,0,0,0,0},
                             new int[9]{0,0,0,0,0,0,0,0,0},
                             new int[9]{17,0,18,0,19,0,20,0,21},
                             new int[9]{0,22,0,0,0,0,0,23,0},
                             new int[9]{0,0,0,0,0,0,0,0,0},
                             new int[9]{24,25,26,27,28,29,30,31,32}
                           };
        struct QiPanDot{ 
                           public Point QiPanP;
                           public Label QiPanL;
                           public bool Dead;
                       };
       QiPanDot[] QiPanDraw = new QiPanDot[33];
       public Form1()
        {
            InitializeComponent();
        }
        public void DrawQiPan()
        {
            ArrayQiPan = new int[10][]
                           {
                             new int[9]{1,2,3,4,5,6,7,8,9},
                             new int[9]{0,0,0,0,0,0,0,0,0} ,
                             new int[9]{0,10,0,0,0,0,0,11,0},
                             new int[9]{12,0,13,0,14,0,15,0,16},
                             new int[9]{0,0,0,0,0,0,0,0,0},
                             new int[9]{0,0,0,0,0,0,0,0,0},
                             new int[9]{17,0,18,0,19,0,20,0,21},
                             new int[9]{0,22,0,0,0,0,0,23,0},
                             new int[9]{0,0,0,0,0,0,0,0,0},
                             new int[9]{24,25,26,27,28,29,30,31,32}
                           };
            for (Int16 i = 0; i < 10; i  )
               for(Int16 j=0;j<9;j  ) 
                {     
                    
                   switch (ArrayQiPan[i][j])
                    {
                        case 1: QiPanDraw[0].QiPanP = new Point(picBoxBgn.Location.X - lblRedMaLeft.Width / 2, picBoxBgn.Location.Y - lblRedMaLeft.Height / 2);
                            QiPanDraw[0].QiPanL = lblRedJvLeft; QiPanDraw[0].QiPanL.Location = QiPanDraw[0].QiPanP; QiPanDraw[0].QiPanL.Show(); break;
                        case 2: QiPanDraw[1].QiPanP = new Point(picBoxBgn.Location.X   lblRedMaLeft.Width / 2, picBoxBgn.Location.Y - lblRedMaLeft.Height / 2);
                            QiPanDraw[1].QiPanL = lblRedMaLeft; QiPanDraw[1].QiPanL.Location = QiPanDraw[1].QiPanP; QiPanDraw[1].QiPanL.Show(); break;
                        case 3: QiPanDraw[2].QiPanP = new Point(picBoxBgn.Location.X   3 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y - lblRedMaLeft.Height / 2);
                            QiPanDraw[2].QiPanL = lblRedXiangLeft; QiPanDraw[2].QiPanL.Location = QiPanDraw[2].QiPanP; QiPanDraw[2].QiPanL.Show(); break;
                        case 4: QiPanDraw[3].QiPanP = new Point(picBoxBgn.Location.X   5 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y - lblRedMaLeft.Height / 2);
                            QiPanDraw[3].QiPanL = lblRedShiLeft; QiPanDraw[3].QiPanL.Location = QiPanDraw[3].QiPanP; QiPanDraw[3].QiPanL.Show(); break;
                        case 5: QiPanDraw[4].QiPanP = new Point(picBoxBgn.Location.X   7 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y - lblRedMaLeft.Height / 2);
                            QiPanDraw[4].QiPanL = lblRedShuai; QiPanDraw[4].QiPanL.Location = QiPanDraw[4].QiPanP; QiPanDraw[4].QiPanL.Show(); break;
                        case 6: QiPanDraw[5].QiPanP = new Point(picBoxBgn.Location.X   9 * lblRedMaRight.Width / 2, picBoxBgn.Location.Y - lblRedMaRight.Height / 2);
                            QiPanDraw[5].QiPanL = lblRedShiRight; QiPanDraw[5].QiPanL.Location = QiPanDraw[5].QiPanP; QiPanDraw[5].QiPanL.Show(); break;
                        case 7: QiPanDraw[6].QiPanP = new Point(picBoxBgn.Location.X   11 * lblRedMaRight.Width / 2, picBoxBgn.Location.Y - lblRedMaRight.Height / 2);
                            QiPanDraw[6].QiPanL = lblRedXiangRight; QiPanDraw[6].QiPanL.Location = QiPanDraw[6].QiPanP; QiPanDraw[6].QiPanL.Show(); break;
                        case 8: QiPanDraw[7].QiPanP = new Point(picBoxBgn.Location.X   13 * lblRedMaRight.Width / 2, picBoxBgn.Location.Y - lblRedMaRight.Height / 2);
                            QiPanDraw[7].QiPanL = lblRedMaRight; QiPanDraw[7].QiPanL.Location = QiPanDraw[7].QiPanP; QiPanDraw[7].QiPanL.Show(); break;
                        case 9: QiPanDraw[8].QiPanP = new Point(picBoxBgn.Location.X   15 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y - lblRedMaLeft.Height / 2);
                            QiPanDraw[8].QiPanL = lblRedJvRight; QiPanDraw[8].QiPanL.Location = QiPanDraw[8].QiPanP; QiPanDraw[8].QiPanL.Show(); break;
                        case 10: QiPanDraw[9].QiPanP = new Point(picBoxBgn.Location.X   lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   3 * lblRedMaLeft.Height / 2);
                            QiPanDraw[9].QiPanL = lblRedPaoLeft; QiPanDraw[9].QiPanL.Location = QiPanDraw[9].QiPanP; QiPanDraw[9].QiPanL.Show(); break;
                        case 11: QiPanDraw[10].QiPanP = new Point(picBoxBgn.Location.X   13 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   3 * lblRedMaLeft.Height / 2);
                            QiPanDraw[10].QiPanL = lblRedPaoRight; QiPanDraw[10].QiPanL.Location = QiPanDraw[10].QiPanP; QiPanDraw[10].QiPanL.Show(); break;
                        case 12: QiPanDraw[11].QiPanP = new Point(picBoxBgn.Location.X - lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   5 * lblRedMaLeft.Height / 2);
                            QiPanDraw[11].QiPanL = lblRedBing1; QiPanDraw[11].QiPanL.Location = QiPanDraw[11].QiPanP; QiPanDraw[11].QiPanL.Show(); break;
                        case 13: QiPanDraw[12].QiPanP = new Point(picBoxBgn.Location.X   3 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   5 * lblRedMaLeft.Height / 2);
                            QiPanDraw[12].QiPanL = lblRedBing2; QiPanDraw[12].QiPanL.Location = QiPanDraw[12].QiPanP; QiPanDraw[12].QiPanL.Show(); break;
                        case 14: QiPanDraw[13].QiPanP = new Point(picBoxBgn.Location.X   7 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   5 * lblRedMaLeft.Height / 2);
                            QiPanDraw[13].QiPanL = lblRedBing3; QiPanDraw[13].QiPanL.Location = QiPanDraw[13].QiPanP; QiPanDraw[13].QiPanL.Show(); break;
                        case 15: QiPanDraw[14].QiPanP = new Point(picBoxBgn.Location.X   11 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   5 * lblRedMaLeft.Height / 2);
                            QiPanDraw[14].QiPanL = lblRedBing4; QiPanDraw[14].QiPanL.Location = QiPanDraw[14].QiPanP; QiPanDraw[14].QiPanL.Show(); break;
                        case 16: QiPanDraw[15].QiPanP = new Point(picBoxBgn.Location.X   15 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   5 * lblRedMaLeft.Height / 2);
                            QiPanDraw[15].QiPanL = lblRedBing5; QiPanDraw[15].QiPanL.Location = QiPanDraw[15].QiPanP; QiPanDraw[15].QiPanL.Show(); break;
                        case 17: QiPanDraw[16].QiPanP = new Point(picBoxBgn.Location.X - lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   11 * lblRedMaLeft.Height / 2);
                            QiPanDraw[16].QiPanL = lblGreenBing1; QiPanDraw[16].QiPanL.Location = QiPanDraw[16].QiPanP; QiPanDraw[16].QiPanL.Show(); break;
                        case 18: QiPanDraw[17].QiPanP = new Point(picBoxBgn.Location.X   3 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   11 * lblRedMaLeft.Height / 2);
                            QiPanDraw[17].QiPanL = lblGreenBing2; QiPanDraw[17].QiPanL.Location = QiPanDraw[17].QiPanP; QiPanDraw[17].QiPanL.Show(); break;
                        case 19: QiPanDraw[18].QiPanP = new Point(picBoxBgn.Location.X   7 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   11 * lblRedMaLeft.Height / 2);
                            QiPanDraw[18].QiPanL = lblGreenBing3; QiPanDraw[18].QiPanL.Location = QiPanDraw[18].QiPanP; QiPanDraw[18].QiPanL.Show(); break;
                        case 20: QiPanDraw[19].QiPanP = new Point(picBoxBgn.Location.X   11 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   11 * lblRedMaLeft.Height / 2);
                            QiPanDraw[19].QiPanL = lblGreenBing4; QiPanDraw[19].QiPanL.Location = QiPanDraw[19].QiPanP; QiPanDraw[19].QiPanL.Show(); break;
                        case 21: QiPanDraw[20].QiPanP = new Point(picBoxBgn.Location.X   15 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   11 * lblRedMaLeft.Height / 2);
                            QiPanDraw[20].QiPanL = lblGreenBing5; QiPanDraw[20].QiPanL.Location = QiPanDraw[20].QiPanP; QiPanDraw[20].QiPanL.Show(); break;
                        case 22: QiPanDraw[21].QiPanP = new Point(picBoxBgn.Location.X   lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   13 * lblRedMaLeft.Height / 2);
                            QiPanDraw[21].QiPanL = lblGreenPaoLeft; QiPanDraw[21].QiPanL.Location = QiPanDraw[21].QiPanP; QiPanDraw[21].QiPanL.Show(); break;
                        case 23: QiPanDraw[22].QiPanP = new Point(picBoxBgn.Location.X   13 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   13 * lblRedMaLeft.Height / 2);
                            QiPanDraw[22].QiPanL = lblGreenPaoRight; QiPanDraw[22].QiPanL.Location = QiPanDraw[22].QiPanP; QiPanDraw[22].QiPanL.Show(); break;
                        case 24: QiPanDraw[23].QiPanP = new Point(picBoxBgn.Location.X - lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaLeft.Height / 2);
                            QiPanDraw[23].QiPanL = lblGreenJvLeft; QiPanDraw[23].QiPanL.Location = QiPanDraw[23].QiPanP; QiPanDraw[23].QiPanL.Show(); break;
                        case 25: QiPanDraw[24].QiPanP = new Point(picBoxBgn.Location.X   lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaLeft.Height / 2);
                            QiPanDraw[24].QiPanL = lblGreenMaLeft; QiPanDraw[24].QiPanL.Location = QiPanDraw[24].QiPanP; QiPanDraw[24].QiPanL.Show(); break;
                        case 26: QiPanDraw[25].QiPanP = new Point(picBoxBgn.Location.X   3 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaLeft.Height / 2);
                            QiPanDraw[25].QiPanL = lblGreenXiangLeft; QiPanDraw[25].QiPanL.Location = QiPanDraw[25].QiPanP; QiPanDraw[25].QiPanL.Show(); break;
                        case 27: QiPanDraw[26].QiPanP = new Point(picBoxBgn.Location.X   5 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaLeft.Height / 2);
                            QiPanDraw[26].QiPanL = lblGreenShiLeft; QiPanDraw[26].QiPanL.Location = QiPanDraw[26].QiPanP; QiPanDraw[26].QiPanL.Show(); break;
                        case 28: QiPanDraw[27].QiPanP = new Point(picBoxBgn.Location.X   7 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaLeft.Height / 2);
                            QiPanDraw[27].QiPanL = lblGreenJiang; QiPanDraw[27].QiPanL.Location = QiPanDraw[27].QiPanP; QiPanDraw[27].QiPanL.Show(); break;
                        case 29: QiPanDraw[28].QiPanP = new Point(picBoxBgn.Location.X   9 * lblRedMaRight.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaRight.Height / 2);
                            QiPanDraw[28].QiPanL = lblGreenShiRight; QiPanDraw[28].QiPanL.Location = QiPanDraw[28].QiPanP; QiPanDraw[28].QiPanL.Show(); break;
                        case 30: QiPanDraw[29].QiPanP = new Point(picBoxBgn.Location.X   11 * lblRedMaRight.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaRight.Height / 2);
                            QiPanDraw[29].QiPanL = lblGreenXiangRight; QiPanDraw[29].QiPanL.Location = QiPanDraw[29].QiPanP; QiPanDraw[29].QiPanL.Show(); break;
                        case 31: QiPanDraw[30].QiPanP = new Point(picBoxBgn.Location.X   13 * lblRedMaRight.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaRight.Height / 2);
                            QiPanDraw[30].QiPanL = lblGreenMaRight; QiPanDraw[30].QiPanL.Location = QiPanDraw[30].QiPanP; QiPanDraw[30].QiPanL.Show(); break;
                        case 32: QiPanDraw[31].QiPanP = new Point(picBoxBgn.Location.X   15 * lblRedMaLeft.Width / 2, picBoxBgn.Location.Y   17 * lblRedMaLeft.Height / 2);
                            QiPanDraw[31].QiPanL = lblGreenJvRight; QiPanDraw[31].QiPanL.Location = QiPanDraw[31].QiPanP; QiPanDraw[31].QiPanL.Show(); break;
                        default: QiPanDraw[32].QiPanP = new Point(0, 0); QiPanDraw[32].QiPanL = new Label(); QiPanDraw[32].QiPanL.Location = QiPanDraw[32].QiPanP; QiPanDraw[32].QiPanL.Show(); break;
                    } 
               }
        }
        private void btn_Start_Click(object sender, EventArgs e)
        {
            DrawQiPan();
            RedTurn = true;
            picRedTurn.Visible = true;
         }

        private void picBoxBgn_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                if ((PointToClient(MousePosition).X - picBoxBgn.Location.X) % lblRedJvLeft.Width < lblRedJvLeft.Width / 3)
                {
                    NewPosin.X = (PointToClient(MousePosition).X - picBoxBgn.Location.X) / lblRedJvLeft.Width * lblRedJvLeft.Width - lblRedJvLeft.Width / 2   picBoxBgn.Location.X; lblShow.Text  = "X"   (PointToClient(MousePosition).X / lblRedJvLeft.Width).ToString()   "\b";
                }
                else if ((PointToClient(MousePosition).X - picBoxBgn.Location.X) % lblRedJvLeft.Width > 2 * lblRedJvLeft.Width / 3)
                {
                    NewPosin.X = (PointToClient(MousePosition).X - picBoxBgn.Location.X) / lblRedJvLeft.Width * lblRedJvLeft.Width   lblRedJvLeft.Width / 2   picBoxBgn.Location.X; lblShow.Text  = "X"   (PointToClient(MousePosition).X / lblRedJvLeft.Width).ToString()   "\b";
                }
                else { MessageBox.Show("横坐标位置不够准确。是放左边一点,还是放右边一点呢,亲^_^"); goto go; }
                if ((PointToClient(MousePosition).Y - picBoxBgn.Location.Y) % lblRedJvLeft.Height < lblRedJvLeft.Height / 3)
                {
                    NewPosin.Y = (PointToClient(MousePosition).Y - picBoxBgn.Location.Y) / lblRedJvLeft.Height * lblRedJvLeft.Height - lblRedJvLeft.Height / 2   picBoxBgn.Location.Y; lblShow.Text  = "Y"   (PointToClient(MousePosition).Y / lblRedJvLeft.Height).ToString()   "\n";
                }
                else if ((PointToClient(MousePosition).Y - picBoxBgn.Location.Y) % lblRedJvLeft.Height > 2 * lblRedJvLeft.Height / 3)
                {
                    NewPosin.Y = (PointToClient(MousePosition).Y - picBoxBgn.Location.Y) / lblRedJvLeft.Height * lblRedJvLeft.Height   lblRedJvLeft.Height / 2   picBoxBgn.Location.Y; lblShow.Text  = "Y"   (PointToClient(MousePosition).Y / lblRedJvLeft.Height).ToString()   "\n";
                }
                else { MessageBox.Show("纵坐标位置不够准确。是放上边一点,还是放下边一点呢,亲^_^"); goto go; }
                CanGo(m, OldPosin, NewPosin);
                if (FlagCanGo&&CanGo_Shuai(m,QiPanDraw[4].QiPanP,QiPanDraw[27].QiPanP,NewPosin))
                {
                    Flag = !Flag;
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1; 
                    ArrayQiPan[x_old][y_old] = 0;
                    this.QiPanDraw[m].QiPanP = NewPosin;
                    this.QiPanDraw[m].QiPanL.Location = NewPosin; 
                    if (m <16)
                    for (int i = 16; i < 32; i  ) 
                        {
                            CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                            if (!QiPanDraw[i].Dead && FlagCanEat)
                            {
                                MessageBox.Show("不能这样走到空位!红方被将军。");
                                ArrayQiPan[x_new][y_new] = 0;
                                ArrayQiPan[x_old][y_old] = m  1;
                                QiPanDraw[m].QiPanP = OldPosin;
                                QiPanDraw[m].QiPanL = QiPanDraw[32].QiPanL;
                                QiPanDraw[m].QiPanL.Location = OldPosin;
                                goto go;
                            }
                        }                       
                    else
                        for (int i = 15; i>=0; i--)
                        {
                            CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                            if (!QiPanDraw[i].Dead && FlagCanEat)
                            {
                                MessageBox.Show("不能这样走到空位!绿方被将军。");
                                ArrayQiPan[x_new][y_new] = 0;
                                ArrayQiPan[x_old][y_old] = m  1;
                                QiPanDraw[m].QiPanP = OldPosin;
                                QiPanDraw[m].QiPanL = QiPanDraw[32].QiPanL;
                                QiPanDraw[m].QiPanL.Location = OldPosin;
                                goto go;
                            }
                        }  
                    if (m < 16) 
                    {
                        RedTurn = false; GreenTurn = true;
                        for (int i = 15; i >= 0; i--)
                        {
                            CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                            if (!QiPanDraw[i].Dead&&FlagCanEat) MessageBox.Show("将军!");
                         }
                    }
                    else 
                    { 
                        RedTurn = true; GreenTurn = false;
                        for (int i = 16; i < 32; i  )
                        {
                            CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                            if (!QiPanDraw[i].Dead&&FlagCanEat) MessageBox.Show("将军!");
                         }
                    }
                    if (RedTurn) picRedTurn.Visible = true;
                    else picRedTurn.Visible = false;
                    if (GreenTurn) picGreenTurn.Visible = true;
                    else picGreenTurn.Visible = false;
                }
                else
                {
                    QiPanDraw[m].QiPanP= OldPosin;
                    QiPanDraw[m].QiPanL=QiPanDraw[32].QiPanL;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    MessageBox.Show("不能这样走到空位!");
                }
               go:;
             }
        }
        private void lblRedShuai_Click(object sender, EventArgs e)
        {
            
            if (Flag )
            {
                QiPanDraw[32].QiPanP = lblRedShuai.Location;
                QiPanDraw[32].QiPanL = lblRedShuai;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat)
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[4].Dead = true;
                    lblRedShuai.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = false;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = false;
                    QiPanDraw[32].QiPanL.Refresh();
                    MessageBox.Show("恭喜绿方赢了,哈哈!");
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else 
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedShuai;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedShuai.Location;
                    m = 4;
                 }
             }
        }

        private void lblRedJvLeft_Click(object sender, EventArgs e)
        {
            
            if (Flag )
            {
                QiPanDraw[32].QiPanP = lblRedJvLeft.Location;
                QiPanDraw[32].QiPanL = lblRedJvLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0; 
                    QiPanDraw[0].Dead = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m  1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    if (m ==27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                            if (Total==0)
                            {
                                MessageBox.Show("不能这样吃子!");
                                ArrayQiPan[x_new][y_new] = 0;
                                ArrayQiPan[x_old][y_old] = m   1;
                                QiPanDraw[0].Dead = false;
                                goto go1;
                            }
                    }
                    lblRedJvLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                 }
            }
            else 
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedJvLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedJvLeft.Location;
                    m = 0;
                 }
            }
        }

        private void lblRedMaLeft_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedMaLeft.Location;
                QiPanDraw[32].QiPanL= lblRedMaLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[1].Dead = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[1].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedMaLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedMaLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedMaLeft.Location;
                    m = 1;
                 }
            }
        }
        private void lblRedXiangLeft_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP= lblRedXiangLeft.Location;
                QiPanDraw[32].QiPanL = lblRedXiangLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[2].Dead = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    } 
                    lblRedXiangLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedXiangLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedXiangLeft.Location;
                    m = 2;
                }
            }
        }
        private void lblRedShiLeft_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP= lblRedShiLeft.Location;
                QiPanDraw[32].QiPanL= lblRedShiLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[3].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[3].Dead =false;
                            goto go1;
                        }
                    } 
                    lblRedShiLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                 }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedShiLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedShiLeft.Location;
                    m = 3;
                }
            }
        }
        private void lblRedPaoLeft_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedPaoLeft.Location;
                QiPanDraw[32].QiPanL = lblRedPaoLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[9].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[9].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedPaoLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
              }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedPaoLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedPaoLeft.Location;
                    m = 9;
                }
            }
        }
        private void lblRedJvRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedJvRight.Location;
                QiPanDraw[32].QiPanL = lblRedJvRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[8].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[8].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedJvRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedJvRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedJvRight.Location;
                    m = 8;
                }
            }

        }
        private void lblRedMaRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedMaRight.Location;
                QiPanDraw[32].QiPanL = lblRedMaRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[7].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[7].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedMaRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedMaRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedMaRight.Location;
                    m = 7;
                }
            }
        }
        private void lblRedXiangRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedXiangRight.Location;
                QiPanDraw[32].QiPanL= lblRedXiangRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[6].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[6].Dead = false;
                            goto go1;
                        }
                    } 
                    lblRedXiangRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedXiangRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedXiangRight.Location;
                    m = 6;
                }
            }
        }
        private void lblRedShiRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP= lblRedShiRight.Location;
                QiPanDraw[32].QiPanL = lblRedShiRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[5].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[5].Dead = false;
                            goto go1;
                        }
                    } 
                    lblRedShiRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedShiRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedShiRight.Location;
                    m = 5;
                }
            }
          }
        private void lblRedPaoRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedPaoRight.Location;
                QiPanDraw[32].QiPanL = lblRedPaoRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[10].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[10].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedPaoRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedPaoRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedPaoRight.Location;
                    m = 10;
                }
            }
        }
        private void lblRedBing1_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedBing1.Location;
                QiPanDraw[32].QiPanL = lblRedBing1;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[11].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[11].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedBing1.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedBing1;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedBing1.Location;
                    m = 11;
                }
            }
        }
        private void lblRedBing2_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedBing2.Location;
                QiPanDraw[32].QiPanL = lblRedBing2;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[12].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[12].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedBing2.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedBing2;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedBing2.Location;
                    m = 12;
                }
             }
        }
        private void lblRedBing3_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedBing3.Location;
                QiPanDraw[32].QiPanL= lblRedBing3;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[13].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[13].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedBing3.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedBing3;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedBing3.Location;
                    m = 13;
                }
            }
        }
        private void lblRedBing4_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedBing4.Location;
                QiPanDraw[32].QiPanL = lblRedBing4;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[14].Dead = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[14].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedBing4.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedBing4;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedBing4.Location;
                    m = 14;
                }
            }
        }
        private void lblRedBing5_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblRedBing5.Location;
                QiPanDraw[32].QiPanL = lblRedBing5;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y ) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[15].Dead = true;
                    for (int i = 15; i >=0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[15].Dead = false;
                            goto go1;
                        }
                    }
                    if (m == 27 && QiPanDraw[32].QiPanP.X == QiPanDraw[4].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[32].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   i][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go1;
                        }
                    }
                    lblRedBing5.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = true; GreenTurn = false;
                    picRedTurn.Visible = true;
                    picGreenTurn.Visible = false;
                    for (int i = 16; i < 32; i  )
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go1: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (RedTurn)
                {
                    QiPanDraw[32].QiPanL = lblRedBing5;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblRedBing5.Location;
                    m = 15;
                }
            }
        }
        private void lblGreenJiang_Click(object sender, EventArgs e)
        {

            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenJiang.Location;
                QiPanDraw[32].QiPanL= lblGreenJiang;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat)
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[27].Dead = true;
                    lblGreenJiang.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    MessageBox.Show("恭喜红方赢了,哈哈!");
                    RedTurn = false ; GreenTurn = false;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = false;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenJiang;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenJiang.Location;
                    m = 27;
                }
            }
        }

        private void lblGreenJvLeft_Click(object sender, EventArgs e)
        {
           if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenJvLeft.Location;
                QiPanDraw[32].QiPanL= lblGreenJvLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat&&CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[23].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[23].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenJvLeft.Hide();
                    Flag = !Flag; 
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenJvLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenJvLeft.Location;
                    m = 23;
                }
            }
        }

        private void lblGreenMaLeft_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP= lblGreenMaLeft.Location;
                QiPanDraw[32].QiPanL = lblGreenMaLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[24].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[24].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenMaLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                } 
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenMaLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenMaLeft.Location;
                    m = 24;
                }
            }
        }
        private void lblGreenXiangLeft_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP= lblGreenXiangLeft.Location;
                QiPanDraw[32].QiPanL= lblGreenXiangLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            goto go2;
                        }
                    } 
                    QiPanDraw[25].Dead = true;
                    lblGreenXiangLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                } 
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenXiangLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenXiangLeft.Location;
                    m = 25;
                }
             }
        }
        private void lblGreenShiLeft_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenShiLeft.Location;
                QiPanDraw[32].QiPanL= lblGreenShiLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            goto go2;
                        }
                    } 
                    QiPanDraw[26].Dead = true;
                    lblGreenShiLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenShiLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenShiLeft.Location;
                    m = 26;
                }
            }
        }
        private void lblGreenPaoLeft_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP= lblGreenPaoLeft.Location;
                QiPanDraw[32].QiPanL= lblGreenPaoLeft;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[21].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[21].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenPaoLeft.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenPaoLeft;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenPaoLeft.Location;
                    m = 21;
                }
            }
        }
        private void lblGreenJvRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenJvRight.Location;
                QiPanDraw[32].QiPanL= lblGreenJvRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[31].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[31].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenJvRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenJvRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenJvRight.Location;
                    m = 31;
                }
             }
        }
        private void lblGreenMaRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenMaRight.Location;
                QiPanDraw[32].QiPanL = lblGreenMaRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[30].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[30].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenMaRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenMaRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenMaRight.Location;
                    m = 30;
                }
            }
        }
        private void lblGreenXiangRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenXiangRight.Location;
                QiPanDraw[32].QiPanL = lblGreenXiangRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            goto go2;
                        }
                    } 
                    QiPanDraw[29].Dead = true;
                    lblGreenXiangRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                } 
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenXiangRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenXiangRight.Location;
                    m = 29;
                }
            }
        }
        private void lblGreenShiRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenShiRight.Location;
                QiPanDraw[32].QiPanL = lblGreenShiRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            goto go2;
                        }
                    } 
                    QiPanDraw[28].Dead = true;
                    lblGreenShiRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenShiRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenShiRight.Location;
                    m = 28;
                }
            }
        }
        private void lblGreenPaoRight_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenPaoRight.Location;
                QiPanDraw[32].QiPanL = lblGreenPaoRight;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[22].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[22].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenPaoRight.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
             }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenPaoRight;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenPaoRight.Location;
                    m = 22;
                }
            }
        }
        private void lblGreenBing1_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenBing1.Location;
                QiPanDraw[32].QiPanL = lblGreenBing1;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[16].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[16].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenBing1.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenBing1;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenBing1.Location;
                    m = 16;
                }
            }
        }
        private void lblGreenBing2_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenBing2.Location;
                QiPanDraw[32].QiPanL = lblGreenBing2;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[17].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[17].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenBing2.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenBing2;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenBing2.Location;
                    m = 17;
                }
            }
        }
        private void lblGreenBing3_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenBing3.Location;
                QiPanDraw[32].QiPanL = lblGreenBing3;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[18].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[18].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenBing3.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                        {
                            CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                            if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                        }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenBing3;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenBing3.Location;
                    m = 18;
                }
            }
        }
        private void lblGreenBing4_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenBing4.Location;
                QiPanDraw[32].QiPanL = lblGreenBing4;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[19].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[19].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenBing4.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenBing4;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenBing4.Location;
                    m = 19;
                }
            }
        }
        private void lblGreenBing5_Click(object sender, EventArgs e)
        {
            if (Flag)
            {
                QiPanDraw[32].QiPanP = lblGreenBing5.Location;
                QiPanDraw[32].QiPanL= lblGreenBing5;
                CanEat(m, OldPosin, QiPanDraw[32].QiPanP);
                if (FlagCanEat && CanEat_Shuai(m, QiPanDraw[4].QiPanP, QiPanDraw[27].QiPanP, QiPanDraw[32].QiPanP))
                {
                    int x_new = (NewPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (NewPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                        x_old = (OldPosin.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (OldPosin.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
                    ArrayQiPan[x_new][y_new] = m 1;
                    ArrayQiPan[x_old][y_old] = 0;
                    QiPanDraw[20].Dead = true;
                    for (int i = 31; i > 15; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[4].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[20].Dead = false;
                            goto go2;
                        }
                    }
                    if (m == 4 && QiPanDraw[32].QiPanP.X == QiPanDraw[27].QiPanP.X)
                    {
                        int Total = 0;
                        for (int i = 1; i < (QiPanDraw[27].QiPanP.Y - QiPanDraw[32].QiPanP.Y) / lblRedJvLeft.Height; i  )
                            Total  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/ 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - i][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/ 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                        if (Total == 0)
                        {
                            MessageBox.Show("不能这样吃子!");
                            ArrayQiPan[x_new][y_new] = 0;
                            ArrayQiPan[x_old][y_old] = m   1;
                            QiPanDraw[0].Dead = false;
                            goto go2;
                        }
                    }
                    lblGreenBing5.Hide();
                    Flag = !Flag;
                    QiPanDraw[m].QiPanP = QiPanDraw[32].QiPanP;
                    QiPanDraw[m].QiPanL.Location = QiPanDraw[32].QiPanL.Location;
                    RedTurn = false; GreenTurn = true;
                    picRedTurn.Visible = false;
                    picGreenTurn.Visible = true;
                    for (int i = 15; i >= 0; i--)
                    {
                        CanEat(i, QiPanDraw[i].QiPanP, QiPanDraw[27].QiPanP);
                        if (!QiPanDraw[i].Dead && FlagCanEat) MessageBox.Show("将军!");
                    }
                go2: ;
                }
                else
                {
                    Flag = false;
                    QiPanDraw[m].QiPanP = OldPosin;
                    MessageBox.Show("不能这样吃子!");
                }
            }
            else
            {
                if (GreenTurn)
                {
                    QiPanDraw[32].QiPanL = lblGreenBing5;
                    Flag = QiPanDraw[32].QiPanL.Capture;
                    OldPosin = lblGreenBing5.Location;
                    m = 20;
                }
            }
        }
        private void CanGo(int p, Point P_old,Point P_new)
        {
            switch (p)
            {
                case 4: int t_Sum_Shuai_Jiang =0;
                        CanEat(16, QiPanDraw[16].QiPanP, NewPosin); if (!QiPanDraw[16].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(17, QiPanDraw[17].QiPanP, NewPosin); if (!QiPanDraw[17].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(18, QiPanDraw[18].QiPanP, NewPosin); if (!QiPanDraw[18].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(19, QiPanDraw[19].QiPanP, NewPosin); if (!QiPanDraw[19].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(20, QiPanDraw[20].QiPanP, NewPosin); if (!QiPanDraw[20].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(21, QiPanDraw[21].QiPanP, NewPosin); if (!QiPanDraw[21].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(22, QiPanDraw[22].QiPanP, NewPosin); if (!QiPanDraw[22].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(23, QiPanDraw[23].QiPanP, NewPosin); if (!QiPanDraw[23].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(31, QiPanDraw[31].QiPanP, NewPosin); if (!QiPanDraw[31].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(24, QiPanDraw[24].QiPanP, NewPosin); if (!QiPanDraw[24].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(30, QiPanDraw[30].QiPanP, NewPosin); if (!QiPanDraw[30].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        if (QiPanDraw[27].QiPanP.X == NewPosin.X)
                        {
                            for (int t_Shuai_Jiang = 1; t_Shuai_Jiang < (QiPanDraw[27].QiPanP.Y - NewPosin.Y) / lblRedJvLeft.Height; t_Shuai_Jiang  )
                                t_Sum_Shuai_Jiang  = ArrayQiPan[(QiPanDraw[27].QiPanP.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y ) / lblRedJvLeft.Height -t_Shuai_Jiang][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                            if (t_Sum_Shuai_Jiang != 0) FlagCanGo = true;
                            else { FlagCanGo = false; break; }
                        }
                        if (P_new.X >= picBoxBgn.Location.X   5 * lblRedMaLeft.Width / 2 && P_new.X <= picBoxBgn.Location.X   9 * lblRedMaLeft.Width / 2&& P_new.Y <= picBoxBgn.Location.Y   3 * lblRedMaLeft.Height / 2 
                             && (Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && P_old.Y == P_new.Y || P_old.X == P_new.X && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height))     FlagCanGo = true;
                        else FlagCanGo = false; break;
                case 27: int t_Sum_Jiang_Shuai = 0; 
                        CanEat(15, QiPanDraw[15].QiPanP, NewPosin); if (!QiPanDraw[15].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(14, QiPanDraw[14].QiPanP, NewPosin); if (!QiPanDraw[14].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(13, QiPanDraw[13].QiPanP, NewPosin); if (!QiPanDraw[13].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(12, QiPanDraw[12].QiPanP, NewPosin); if (!QiPanDraw[12].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(11, QiPanDraw[11].QiPanP, NewPosin); if (!QiPanDraw[11].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(10, QiPanDraw[10].QiPanP, NewPosin); if (!QiPanDraw[10].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(9, QiPanDraw[9].QiPanP, NewPosin); if (!QiPanDraw[9].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(8, QiPanDraw[8].QiPanP, NewPosin); if (!QiPanDraw[8].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(0, QiPanDraw[0].QiPanP, NewPosin); if (!QiPanDraw[0].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(7, QiPanDraw[7].QiPanP, NewPosin); if (!QiPanDraw[7].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        CanEat(1, QiPanDraw[1].QiPanP, NewPosin); if (!QiPanDraw[1].Dead&&FlagCanEat) {FlagCanGo = false; break;}
                        if (QiPanDraw[4].QiPanP.X == NewPosin.X)
                        {
                            for (int t_Shuai_Jiang = 1; t_Shuai_Jiang < (NewPosin.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; t_Shuai_Jiang  )
                                t_Sum_Jiang_Shuai  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   t_Shuai_Jiang][(QiPanDraw[4].QiPanP.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                            if (t_Sum_Jiang_Shuai != 0) FlagCanGo = true;
                            else { FlagCanGo = false; break; }
                        }
                        if (P_new.X >= picBoxBgn.Location.X   5 * lblRedMaLeft.Width / 2 && P_new.X <= picBoxBgn.Location.X   9 * lblRedMaLeft.Width / 2&& P_new.Y >= picBoxBgn.Location.Y   13 * lblRedMaLeft.Height / 2 
                              && (Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && P_old.Y == P_new.Y || P_old.X == P_new.X && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height))         FlagCanGo = true;
                        else FlagCanGo = false; break;
                case 0: 
                case 8: 
                case 23:
                case 31: int cc_Jv = 0, c_Jv;
                        if( P_new.X == P_old.X||P_new.Y == P_old.Y)
                            cc_Jv = (P_new.X == P_old.X ? (P_new.Y - P_old.Y) / lblRedJvLeft.Height : (P_new.X - P_old.X) / lblRedJvLeft.Width);
                        for (c_Jv = Math.Abs(cc_Jv); c_Jv > 0; c_Jv--)
                            {
                                if (cc_Jv > 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   c_Jv][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanGo = false; break; }
                                else if (cc_Jv > 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   c_Jv] != 0) { FlagCanGo = false; break; }
                                else if (cc_Jv < 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - c_Jv][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanGo = false; break; }
                                else if (cc_Jv < 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - c_Jv] != 0) { FlagCanGo = false; break; }
                                else FlagCanGo = true;
                            }
                        break;
                case 1: 
                case 7:
                case 24:
                case 30: if (Math.Abs(P_old.X - P_new.X) == 2 * lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height
                          || Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == 2 * lblRedJvLeft.Height)
                         {
                            if (P_new.X - P_old.X == lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanGo = false; break; }
                            else if (P_new.X - P_old.X == lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanGo = false; break; }
                            else if (P_old.X - P_new.X == lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanGo = false; break; }
                            else if (P_old.X - P_new.X == lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanGo = false; break; }
                            else if (P_new.Y - P_old.Y == lblRedJvLeft.Height && P_new.X - P_old.X == 2 * lblRedJvLeft.Width && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanGo = false; break; }
                            else if (P_new.Y - P_old.Y == lblRedJvLeft.Height && P_old.X - P_new.X == 2 * lblRedJvLeft.Width && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanGo = false; break; }
                            else if (P_old.Y - P_new.Y == lblRedJvLeft.Height && P_new.X - P_old.X == 2 * lblRedJvLeft.Width && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanGo = false; break; }
                            else if (P_old.Y - P_new.Y == lblRedJvLeft.Height && P_old.X - P_new.X == 2 * lblRedJvLeft.Width && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanGo = false; break; }
                            else FlagCanGo = true;
                        }
                        else FlagCanGo = false;
                        break;
                case 2:
                case 6: if (P_new.Y <= picBoxBgn.Location.Y   4 * lblRedJvLeft.Height && Math.Abs(P_old.X - P_new.X) == 2 * lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == 2 * lblRedJvLeft.Height)
                       if (P_new.X - P_old.X == 2 * lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanGo = false; break; }
                       else if (P_new.X - P_old.X == 2 * lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanGo = false; break; }
                       else if (P_old.X - P_new.X == 2 * lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanGo = false; break; }
                       else if (P_old.X - P_new.X == 2 * lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanGo = false; break; }
                       else FlagCanGo = true;
                       else FlagCanGo = false;
                        break;
                case 25: 
                case 29: if (P_new.Y > picBoxBgn.Location.Y   4* lblRedJvLeft.Height && Math.Abs(P_old.X - P_new.X) == 2 * lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == 2 * lblRedJvLeft.Height)
                        if (P_new.X - P_old.X == 2 * lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanGo = false; break; }
                        else if (P_new.X - P_old.X == 2 * lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanGo = false; break; }
                        else if (P_old.X - P_new.X == 2 * lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanGo = false; break; }
                        else if (P_old.X - P_new.X == 2 * lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanGo = false; break; }
                        else FlagCanGo = true;
                        else FlagCanGo = false; 
                        break;
                case 3: 
                case 5: if (P_new.X < picBoxBgn.Location.X  11* lblRedJvLeft.Width/2 && P_new.X>= picBoxBgn.Location.X  5* lblRedJvLeft.Width/2&&P_new.Y <picBoxBgn.Location.Y  5* lblRedJvLeft.Height/2 && Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height)
                         FlagCanGo = true;
                         else FlagCanGo = false;
                         break;
                case 26: 
                case 28: if (P_new.X < picBoxBgn.Location.X  11*lblRedJvLeft.Width/2 && P_new.X>= picBoxBgn.Location.X  5* lblRedJvLeft.Width/2&&P_new.Y > picBoxBgn.Location.Y   12* lblRedJvLeft.Height/2 && Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height)
                         FlagCanGo = true;
                         else FlagCanGo = false;
                         break;
                case 9: 
                case 10: 
                case 21:
                case 22: int cc_Pao = 0, c_Pao;
                         if (P_new.X == P_old.X || P_new.Y == P_old.Y)
                             cc_Pao = (P_new.X == P_old.X ? (P_new.Y - P_old.Y) / lblRedJvLeft.Height : (P_new.X - P_old.X) / lblRedJvLeft.Width);
                         for (c_Pao = Math.Abs(cc_Pao); c_Pao > 0; c_Pao--)
                         {
                             if (cc_Pao > 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanGo = false; break; }
                             else if (cc_Pao > 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   c_Pao] != 0) { FlagCanGo = false; break; }
                             else if (cc_Pao < 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanGo = false; break; }
                             else if (cc_Pao < 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - c_Pao] != 0) { FlagCanGo = false; break; }
                             else FlagCanGo = true;
                         }
                         break;
                case 11: 
                case 12: 
                case 13: 
                case 14:
                case 15: if (P_old.X == P_new.X && P_new.Y -P_old.Y == lblRedJvLeft.Height) FlagCanGo = true;
                        else if (P_old.Y >picBoxBgn.Location.Y  4* lblRedJvLeft.Height && P_old.Y == P_new.Y && Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width) FlagCanGo = true;
                        else FlagCanGo = false;
                        break;
                case 16: 
                case 17:
                case 18: 
                case 19: 
                case 20:    if (P_old.X == P_new.X && P_old.Y - P_new.Y == lblRedJvLeft.Height) FlagCanGo = true;
                            else if (P_old.Y <= picBoxBgn.Location.Y   4 * lblRedJvLeft.Height && P_old.Y == P_new.Y && Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width) FlagCanGo = true;
                            else FlagCanGo = false;
                            break;
                default: break;
            }
        }

        private void CanEat(int p, Point P_old, Point P_new)
        {

            int x_new = (P_new.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_new = (P_new.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width,
                x_old = (P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height, y_old = (P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width;
            if ((ArrayQiPan[x_new][y_new] <=16 && p>= 16) || (ArrayQiPan[x_new][y_new] >  16 && p< 16))
            switch (p)
            {
                case 4:
                case 27: int t_Sum_Shuai_Jiang=0;
                        if (QiPanDraw[4].QiPanP.X == QiPanDraw[27].QiPanP.X)
                        {
                            for (int t_Shuai_Jiang = 1; t_Shuai_Jiang < (QiPanDraw[27].QiPanP.Y - QiPanDraw[4].QiPanP.Y) / lblRedJvLeft.Height; t_Shuai_Jiang  )
                                t_Sum_Shuai_Jiang  = ArrayQiPan[(QiPanDraw[4].QiPanP.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   t_Shuai_Jiang][(QiPanDraw[27].QiPanP.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
                            if (t_Sum_Shuai_Jiang != 0) FlagCanEat = true;
                            else { FlagCanEat = false; break; }
                        }
                        if ((P_new.X >= picBoxBgn.Location.X   5 * lblRedJvLeft.Width / 2 && P_new.X <= picBoxBgn.Location.X   9 * lblRedJvLeft.Width / 2
                              && (P_new.Y <= picBoxBgn.Location.Y   3 * lblRedJvLeft.Height / 2 || P_new.Y >= picBoxBgn.Location.Y   13 * lblRedJvLeft.Height / 2))
                              && (Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && P_old.Y == P_new.Y || P_old.X == P_new.X && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height)) FlagCanEat = true;
                    else FlagCanEat = false; break;
                case 0:
                case 8:
                case 23:
                case 31: int cc_Jv = 0, c_Jv,T_Jv=0,T_Jv_Shuai=0;
                    if (P_new.X == P_old.X || P_new.Y == P_old.Y)
                    cc_Jv = (P_new.X == P_old.X ? (P_new.Y - P_old.Y) / lblRedJvLeft.Height : (P_new.X - P_old.X) / lblRedJvLeft.Width);
                    for (c_Jv = Math.Abs(cc_Jv); c_Jv > 0; c_Jv--)
                        {
                            if (cc_Jv > 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   c_Jv][(P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0)
                            { T_Jv  ; T_Jv_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   c_Jv][(P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width]; }
                            else if (cc_Jv > 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   c_Jv] != 0)
                            { T_Jv  ; T_Jv_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   c_Jv]; }
                            else if (cc_Jv < 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - c_Jv][(P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0)
                            { T_Jv  ; T_Jv_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - c_Jv][(P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width]; }
                            else if (cc_Jv < 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - c_Jv] != 0)
                            { T_Jv  ; T_Jv_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - c_Jv]; }
                         }
                    if (T_Jv == 1)  FlagCanEat = true; 
                    else FlagCanEat= false;
                    break;  
                case 1:
                case 7:
                case 24:
                case 30: if (Math.Abs(P_old.X - P_new.X) == 2 * lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height
                          || Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == 2 * lblRedJvLeft.Height)
                   {
                       if (P_new.X - P_old.X == lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanEat = false; break; }
                        else if (P_new.X - P_old.X == lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanEat = false; break; }
                        else if (P_old.X - P_new.X == lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanEat = false; break; }
                        else if (P_old.X - P_new.X == lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0) { FlagCanEat = false; break; }
                        else if (P_new.Y - P_old.Y == lblRedJvLeft.Height && P_new.X - P_old.X == 2 * lblRedJvLeft.Width && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanEat = false; break; }
                        else if (P_new.Y - P_old.Y == lblRedJvLeft.Height && P_old.X - P_new.X == 2 * lblRedJvLeft.Width && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanEat = false; break; }
                        else if (P_old.Y - P_new.Y == lblRedJvLeft.Height && P_new.X - P_old.X == 2 * lblRedJvLeft.Width && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanEat = false; break; }
                        else if (P_old.Y - P_new.Y == lblRedJvLeft.Height && P_old.X - P_new.X == 2 * lblRedJvLeft.Width && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanEat = false; break; }
                        else FlagCanEat = true;
                    }
                    else FlagCanEat = false;
                    break;
                case 2:
                case 6: if (P_new.Y <= picBoxBgn.Location.Y   4 * lblRedJvLeft.Height && Math.Abs(P_old.X - P_new.X) == 2 * lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == 2 * lblRedJvLeft.Height)
                    {
                        if (P_new.X - P_old.X == 2 * lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanEat = false; break; }
                        else if (P_new.X - P_old.X == 2 * lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanEat = false; break; }
                        else if (P_old.X - P_new.X == 2 * lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanEat = false; break; }
                        else if (P_old.X - P_new.X == 2 * lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanEat = false; break; }
                        else FlagCanEat = true;
                    }
                    else FlagCanEat = false;
                    break;
                case 25:
                case 29: if (P_new.Y > picBoxBgn.Location.Y   4 * lblRedJvLeft.Height && Math.Abs(P_old.X - P_new.X) == 2 * lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == 2 * lblRedJvLeft.Height)
                        if (P_new.X - P_old.X == 2 * lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanEat = false; break; }
                        else if (P_new.X - P_old.X == 2 * lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   1] != 0) { FlagCanEat = false; break; }
                        else if (P_old.X - P_new.X == 2 * lblRedJvLeft.Width && P_new.Y - P_old.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanEat = false; break; }
                        else if (P_old.X - P_new.X == 2 * lblRedJvLeft.Width && P_old.Y - P_new.Y == 2 * lblRedJvLeft.Height && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - 1][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - 1] != 0) { FlagCanEat = false; break; }
                        else FlagCanEat = true;
                    else FlagCanEat = false;
                    break;
                case 3:
                case 5: if (P_new.X < picBoxBgn.Location.X   11 * lblRedJvLeft.Width / 2 && P_new.X >= picBoxBgn.Location.X   5 * lblRedJvLeft.Width / 2 && P_new.Y < picBoxBgn.Location.Y   5 * lblRedJvLeft.Height / 2 && Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height)
                        FlagCanEat = true;
                    else FlagCanEat = false;
                    break;
                case 26:
                case 28: if (P_new.X < picBoxBgn.Location.X   11 * lblRedJvLeft.Width / 2 && P_new.X >= picBoxBgn.Location.X   5 * lblRedJvLeft.Width / 2 && P_new.Y > picBoxBgn.Location.Y   12 * lblRedJvLeft.Height / 2 && Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width && Math.Abs(P_old.Y - P_new.Y) == lblRedJvLeft.Height)
                        FlagCanEat = true;
                    else FlagCanEat = false;
                    break;
                case 9:
                case 10: int cc_Pao = 0, c_Pao, T_Pao = 0, T_Pao_Shuai = 0;
                        if (P_new.X == P_old.X || P_new.Y == P_old.Y)
                            cc_Pao = (P_new.X == P_old.X ? (P_new.Y - P_old.Y) / lblRedJvLeft.Height : (P_new.X - P_old.X) / lblRedJvLeft.Width);
                        for (c_Pao = Math.Abs(cc_Pao); c_Pao > 0; c_Pao--)
                        {
                            if (cc_Pao > 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0)
                            { T_Pao  ; T_Pao_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width]; }
                            else if (cc_Pao > 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   c_Pao] != 0)
                            { T_Pao  ; T_Pao_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   c_Pao]; }
                            else if (cc_Pao < 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0)
                            { T_Pao  ; T_Pao_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width]; }
                            else if (cc_Pao < 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - c_Pao] != 0)
                            { T_Pao  ; T_Pao_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - c_Pao]; }
                         }
                        if (T_Pao ==2)          FlagCanEat = true;
                        else FlagCanEat = false;
                       break;
                case 21:
                case 22: cc_Pao = T_Pao =T_Pao_Shuai = 0;
                        if (P_new.X == P_old.X || P_new.Y == P_old.Y)
                            cc_Pao = (P_new.X == P_old.X ? (P_new.Y - P_old.Y) / lblRedJvLeft.Height : (P_new.X - P_old.X) / lblRedJvLeft.Width);
                        for (c_Pao = Math.Abs(cc_Pao)-1; c_Pao > 0; c_Pao--)
                        {
                            if (cc_Pao > 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0)
                            { T_Pao  ;               T_Pao_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width]; }
                            else if (cc_Pao > 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   c_Pao] != 0)
                            { T_Pao  ;                    T_Pao_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width   c_Pao]; }
                            else if (cc_Pao < 0 && P_new.X == P_old.X && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width] != 0)
                            { T_Pao  ;                    T_Pao_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height - c_Pao][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width]; }
                            else if (cc_Pao < 0 && P_new.Y == P_old.Y && ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - c_Pao] != 0)
                            { T_Pao  ;                    T_Pao_Shuai  = ArrayQiPan[(P_old.Y   lblRedJvLeft.Height/2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height][(P_old.X   lblRedJvLeft.Width/2 - picBoxBgn.Location.X) / lblRedJvLeft.Width - c_Pao]; }
                        }
                        if (T_Pao == 1) FlagCanEat = true;
                        else FlagCanEat= false;
                        break;
                case 11:
                case 12:
                case 13:
                case 14:
                case 15: if (P_old.X == P_new.X && P_new.Y - P_old.Y == lblRedJvLeft.Height) FlagCanEat = true;
                    else if (P_old.Y > picBoxBgn.Location.Y   4 * lblRedJvLeft.Height && P_old.Y == P_new.Y && Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width) FlagCanEat = true;
                    else FlagCanEat = false;
                    break;
                case 16:
                case 17:
                case 18:
                case 19:
                case 20: if (P_old.X == P_new.X && P_old.Y - P_new.Y == lblRedJvLeft.Height) FlagCanEat = true;
                    else if (P_old.Y <= picBoxBgn.Location.Y   4 * lblRedJvLeft.Height && P_old.Y == P_new.Y && Math.Abs(P_old.X - P_new.X) == lblRedJvLeft.Width) FlagCanEat = true;
                    else FlagCanEat = false;
                    break;
                default: break;
            }
            else FlagCanEat = false;
        }

        private bool CanGo_Shuai(int p,Point P_Shuai,Point P_Jiang,Point NewPoint)
        {
            int t_T = 0;
            if (QiPanDraw[p].QiPanP.X == P_Shuai.X && P_Shuai.X == P_Jiang.X)
                for (int t = 1; t < (P_Jiang.Y - P_Shuai.Y) / lblRedJvLeft.Height; t  )
                    t_T  = ArrayQiPan[(P_Shuai.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   t][(P_Shuai.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width]; 
            if ((t_T == p   1) && QiPanDraw[p].QiPanP.X!= NewPoint.X) return false; 
            else return true;
        }
        private bool CanEat_Shuai(int p, Point P_Shuai, Point P_Jiang, Point NewPoint)
        {
            int t_T = 0;
            if (QiPanDraw[p].QiPanP.X == P_Shuai.X && P_Shuai.X == P_Jiang.X)
                for (int t = 1; t < (P_Jiang.Y - P_Shuai.Y) / lblRedJvLeft.Height; t  )
                    t_T  = ArrayQiPan[(P_Shuai.Y   lblRedJvLeft.Height / 2 - picBoxBgn.Location.Y) / lblRedJvLeft.Height   t][(P_Shuai.X   lblRedJvLeft.Width / 2 - picBoxBgn.Location.X) / lblRedJvLeft.Width];
            if ((t_T == p   1)&& QiPanDraw[p].QiPanP.X != NewPoint.X ) return false;
            else return true;
        }

        private void btnWin_Click(object sender, EventArgs e)
        {
            int p = 0;
            for(int k=0;k<32;k  )
                if (QiPanDraw[k].Dead) p  ; MessageBox.Show("死了的子有"   p   "个。"); 
        }
    }
}
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////By Toucky!  QQ:648702035.///////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

标签: 象棋

实例下载地址

C# 中国象棋 游戏源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 ox_fly 发表于: 2019-06-10 09:08 42
先下载学习一下

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警