Пример #1
0
        public static void Main(string[] args)
        {
            Printer.Start();
            Printer.AddToPrinter("Hello World");
            var board = new Board();

            board.PrintBoardToPrinter();
            PlayerAbstract white       = new RandomAI(board, Color.White);
            PlayerAbstract black       = new AlphaBetaSimple(board, Color.Black);
            var            gamesResult = GameLoop.Games(board, white, black, 1, boardPrint: true);
            var            count       = gamesResult.Length;

            Printer.AddToPrinter("Number of games played: " + count);
            var tmp = gamesResult.Count(a => a.Item1 == Color.Black);

            Printer.AddToPrinter(tmp + " wins for black (" + tmp / (double)count * 100d + "%) (" + black.Name + ")");
            tmp = gamesResult.Count(a => a.Item1 == Color.White);
            Printer.AddToPrinter(tmp + " wins for white (" + tmp / (double)count * 100d + "%) (" + white.Name + ")");
            tmp = gamesResult.Count(a => a.Item1 == Color.NoColor);
            Printer.AddToPrinter(tmp + " draws (" + tmp / (double)count * 100d + "%)");
            Printer.AddToPrinter(gamesResult.Average(a => a.Item2) + " average number of turns needed");
            Printer.AddToPrinter(
                gamesResult.Average(a => a.Item3) + "ms need on average for white (" + white.Name + ")");
            Printer.AddToPrinter(
                gamesResult.Average(a => a.Item4) + "ms need on average for black (" + black.Name + ")");

            Thread.Sleep(1000);
            Console.ReadLine();
        }
Пример #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            var tmp = new Board();

            if (Board == null)
            {
                Board = new List <Board>();
            }
            Board.Clear();
            trackBar1.SetRange(0, 1);
            _current = 0;
            Board.Add(tmp);
            PlayerAbstract whitePlayer =
                new AlphaBetaSimple(tmp, Chess.Basic.Color.White, 2, BoardEval.SimpleTable);
            PlayerAbstract blackPlayer =
                new AlphaBetaSimple(tmp, Chess.Basic.Color.Black, 2, BoardEval.Table);
//            PlayerAbstract whitePlayer = new RandomAI(tmp, Chess.Basic.Color.White);
//            PlayerAbstract blackPlayer = new Greedy1Ply(tmp, Chess.Basic.Color.Black);

            var result = GameLoop.Game(tmp, whitePlayer, blackPlayer, this);

            labelBlack.Text = blackPlayer.Name + " " + result.Item4 + "ms";
            labelWhite.Text = whitePlayer.Name + " " + result.Item3 + "ms";
            MessageBox.Show(result.Item1 == Chess.Basic.Color.NoColor ? "Draw" : "Winner is " + result.Item1);
        }