예제 #1
0
        public void PlayAndShow(ChessGame game)
        {
            var boardDrawer   = new BoardDrawer();
            var numberOfMoves = 0;

            while (game.MoveKnight())
            {
                boardDrawer.Draw(game.Board, game.Knight.CurrentPosition);
                numberOfMoves++;
                Thread.Sleep(300);
            }

            Console.WriteLine();
            Console.WriteLine($"Возможных ходов для коня больше нет. Конь походил {numberOfMoves} раз");
        }
예제 #2
0
        static void Main(string[] args)
        {
            var random        = new Random();
            var startPosition = new Point(random.Next(0, 8), random.Next(0, 8));
            var knight        = new Knight(startPosition);
            var consoleUi     = new UserInterface();

            IBestMoveFinder algorithm = new EvaluationFunction();
            var             game      = new ChessGame(knight, algorithm);

            consoleUi.PlayAndShow(game);
            Console.WriteLine("Это был алгоритм, использующий функцию оценки.");
            Console.WriteLine("Нажмите на любую клавишу 2 раза, чтобы запустить следующий алгоритм.");

            Console.ReadKey();
            Console.ReadKey();

            algorithm = new RandomMoveTaker();
            knight.CurrentPosition = startPosition;
            game = new ChessGame(knight, algorithm);
            consoleUi.PlayAndShow(game);
            Console.WriteLine("Это был алгоритм, выбирающий случайный ход.");
        }