C#实现的中国象棋程序开发笔记
2009-06-01 08:31:14 来源:WEB开发网3. 接下来就是关键的部分,我曾在这里实现机器自动下棋,但是还是碰到一些困难
棋子移动
/// <summary>
/// 被吃时调用,或吃子时调用
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ChessWordUserControl_Click(object sender, EventArgs e)
{
if (Factory.IsTurnToRedChessWalking)
{
//机器下棋(Red)
if (this.IsRedChess)
{
//红方(机器)
}
else
{
//红方吃掉黑方
this.Eat(false);
return;
}
}
else
{
//用户下棋
if (this.IsRedChess)
{
//黑方吃掉红方
this.Eat(false);
return;
}
else
{
//黑方(用户)
}
}
if (Factory.OldQiZhi != null)
{
Factory.OldQiZhi._move = EChessDraw.Null;
Factory.OldQiZhi.Refresh();
}
Factory.WeiZhi_AL = this.GetNextLocation();
Factory.OldQiZhi = this;
this._move = EChessDraw.Click;
this.Refresh();
}
目前,我在网上查了不少资料,大家都想求一个比较厉害的象棋程序,可目前我的程序是最弱智的,CPU自己不会下。有人告诉我,说需要调用一些已经大师们的下棋残局API,而无需自己写一套规则,我觉得也是,不然写棋的那个人一定是下棋高手,可是我棋艺一般,但我很想写一个比较厉害的程序,让我的象棋以CPU的身份来挑战那些大师,呵呵,就是这样一个想法,目前用C#实现,先不讨论性能,能有人指点实现一下也不错。
如果有人有兴趣,我想把代码放在officelive.com上,其实重要不是代码了,感觉这些程序的算法和思想设计很重要,欢迎高手指点一二。:-)
更多精彩
赞助商链接