php mysql网页象棋源码_C# 中国象棋 游戏源码

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

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

【实例截图】

d74fcb27808dec62550d02735d44af5f.png

eec940e667cb57a1d094194630d39667.png

【核心代码】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].Q

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值