实例介绍
【实例简介】编码很简单,没有复杂的函数。
函数简单,有详细的走子和吃子检测。不足之处是画面简约,人工智能尚开发中,敬请期待!
【实例截图】

【核心代码】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.///////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
标签: 象棋
相关软件
网友评论
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


支持(0) 盖楼(回复)