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