基本信息
源码名称:C# 中国象棋 游戏源码
源码大小:2.69M
文件格式:.rar
开发语言:C#
更新时间:2016-12-27
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
编码很简单,没有复杂的函数。
函数简单,有详细的走子和吃子检测。不足之处是画面简约,人工智能尚开发中,敬请期待!
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./////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////