【文件属性】:
文件名称:中国象棋单机网络版
文件大小:648KB
文件格式:ZIP
更新时间:2016-01-18 11:04:02
象棋 单机网络 注释版
///
/// 棋子移动
///
///
///
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
IChessItem ic = GetCheckedChild();//获取的棋子的信息赋值给ic
if(ic!=null)//棋子不为空
{
if(ic.type!=Series.Turns) //判断该棋的轮次
return;
int gridX = GetGird(e.X);//目标位置X赋值gridX
int gridY = GetGird(e.Y);//目标位置X赋值gridY
if( ic.MoveItem(gridX,gridY))//移动到目标位置
{
ChangeFlag(ic.type);//轮次,变换为另一方棋子
ic.IsChecked = false;//棋子不被选中
}
}
}
///
/// 吃棋
///
///
///
private void cib_Click(object sender, EventArgs e)
{
IChessItem ic = (IChessItem)sender;//对象赋值给ic
IChessItem icold = GetCheckedChild(Enums.GetOtherType(ic.type));//返回本方棋子的信息赋值给icold
bool ischeck = true;
if(icold!=null ) //吃方的棋子不为空
{
if(icold.type!=Series.Turns) //不为吃方棋子的轮次
{
ic.IsChecked = false;//被吃棋子不被选中
return;
}
if( icold.MoveItem(ic.GridX,ic.GridY))//吃方棋子移动到对方棋子网格坐标
{
ChangeFlag(icold.type);//变换吃方棋子的轮次,改对方棋子出棋
ic.Remove();//吃掉棋子
icold.IsChecked = false;//吃方棋子不被选中
ischeck = false;
}
}
UncheckChild();//清除所选中
if(ischeck && ic.type == Series.Turns)//判断棋子选中和轮次都为真,棋子才被选中
ic.IsChecked = true;//棋子被选中
}
private void miOut_Click(object sender, System.EventArgs e)
{
Application.Exit();//退出
}
///
/// 帅被移除激活的胜利函数
///
///
private void cishuai_WinEvent(IChess.Enums.ChessType winer)
{
InitChess();//胜利后激活重新开始
}