首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實作中國象棋程式開發筆記(三)

     編輯:關於C語言

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 上,其實重要不是程式碼了,感覺這些程式的演算法和思想設計很重要,歡迎高手指點一二。:-)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved