예제 #1
0
        private void singleplayer(object sender, RoutedEventArgs e)
        {
            logText.AppendText(DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss]"));
            logText.AppendText("切换为AI对战,请点击构建棋盘开始游戏\n");
            logText.AppendText(DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss]"));
            logText.AppendText("本AI采用极小化极大值搜索+Alpha-Beta剪枝算法+启发式评估函数+算杀单元构成\n");
            logText.AppendText(DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss]"));
            logText.AppendText("搜索深度" + AiConfig.searchDeep.ToString() + " 节点数量上限" + AiConfig.countLimit.ToString() + " 算杀深度" + AiConfig.vcxDeep.ToString() + "\n");
            ai = new Ai();
            ai.start();
            pan.Children.Clear();
            Button btn = pan.FindName("drawButton") as Button;

            if (btn != null)
            {
                pan.UnregisterName("drawButton");
            }
            addButton();
            mainboard.clearPiece();
            isAi  = true;
            color = true;
        }
예제 #2
0
 private void downPiece(int X, int Y)
 {
     if (!isWinBool)
     {
         if (color)
         {
             mainboard.pieceNum[X, Y] = 1;
             addBlack(X * 40 + 10, Y * 40 + 10);
             var win = isWin(X, Y);
             if (win == true)
             {
                 logText.AppendText(DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss]"));
                 logText.AppendText("游戏结束,黑棋胜利\n");
                 if (isAi)
                 {
                     ai = new Ai();
                     ai.start();
                 }
                 mainboard.clearPiece();
                 addButton();
                 isWinBool = true;
                 color     = true;
             }
             else
             {
                 color = false;
             }
         }
         else
         {
             mainboard.pieceNum[X, Y] = 2;
             addWhite(X * 40 + 10, Y * 40 + 10);
             var win = isWin(X, Y);
             if (win == true)
             {
                 logText.AppendText(DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss]"));
                 logText.AppendText("游戏结束,白棋胜利\n");
                 if (isAi)
                 {
                     ai = new Ai();
                     ai.start();
                 }
                 mainboard.clearPiece();
                 addButton();
                 isWinBool = true;
                 color     = true;
             }
             else
             {
                 color = true;
                 if (isAi)
                 {
                     isWaiting = true;
                     var down = ai.turn(X, Y);
                     downPiece(down[0], down[1]);
                     isWaiting = false;
                 }
             }
         }
     }
 }