Пример #1
0
        static void SinglePlayerApplyChoice(string str)
        {
            if (str == "0")
            {
                CurrentMenu = MenuType.Main;
                return;
            }

            IArtificialIntelligenceFactory selectedPlugin = null;
            int i = 0;

            foreach (var plugin in AiPlugins)
            {
                if (str == (++i).ToString())
                {
                    selectedPlugin = plugin;
                    break;
                }
            }
            if (selectedPlugin != null)
            {
                CurrentMenu = MenuType.Game;
                IsAiBattle  = false;
                // Set up Game
                CleanupGame();
                CurGame = new LocalGame()
                {
                    AiCommandDelay = AiCommandDelay
                };
                ((LocalGame)CurGame).SetAi(selectedPlugin.CreateInstance());
                CurGame.InitGame();
                CurGame.PropertyChanged           += CurGame_PropertyChanged;
                ((LocalGame)CurGame).SyncRequired += Program_SyncRequired;
            }
        }
Пример #2
0
        static void AiBattleApplyChoice(string str)
        {
            if (str == "0")
            {
                CurrentMenu = MenuType.Main;
                return;
            }

            var spl = str.Split(',');

            if (spl.Length != 2)
            {
                Console.WriteLine("Invalid input");
                Thread.Sleep(1000);
                return;
            }

            IArtificialIntelligenceFactory[] factories = new IArtificialIntelligenceFactory[2];
            for (int n = 0; n < 2; ++n)
            {
                int i = 0;
                foreach (var plugin in AiPlugins)
                {
                    var choice = spl[n].Trim();
                    if (choice == (++i).ToString())
                    {
                        factories[n] = plugin;
                        break;
                    }
                }
            }

            if (factories[0] == null || factories[1] == null)
            {
                Console.WriteLine("Invalid choice");
                Thread.Sleep(1000);
                return;
            }

            CurrentMenu = MenuType.Game;
            IsAiBattle  = true;
            // Set up Game
            CleanupGame();

            CurGame = new LocalGame()
            {
                AiCommandDelay = 1000
            };
            ((LocalGame)CurGame).SetAi(factories[0].CreateInstance(), 1);
            ((LocalGame)CurGame).SetAi(factories[1].CreateInstance(), 2);
            CurGame.InitGame();
            CurGame.PropertyChanged           += CurGame_PropertyChanged;
            ((LocalGame)CurGame).SyncRequired += Program_SyncRequired;

            UpdateUI();
            ++Round;
            Task.Run(async() => await((LocalGame)CurGame).AiPlayer1Move());
        }