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; }
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; } } } } }