程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#實現的中國象棋程序開發筆記(3)

C#實現的中國象棋程序開發筆記(3)

編輯:關於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