public MainWindow() { InitializeComponent(); #region load settings try { gridSide = int.Parse(ConfigurationManager.AppSettings["gridSide"]); cellNumber = gridSide * gridSide; shotLimit = int.Parse(ConfigurationManager.AppSettings["shotLimit"]); shotAnimationTime = int.Parse(ConfigurationManager.AppSettings["shotAnimationTime"]); animationDuration = new TimeSpan(0, 0, shotAnimationTime).Ticks; shipNumbers = ConfigurationManager.AppSettings["shipNumbers"].Split(',').Select(s => int.Parse(s)).ToArray(); cellImages = new Image[cellNumber]; } catch (Exception) { MessageBox.Show("Invalid configuration file", "Error"); Application.Current.Shutdown(); } #endregion gameController = new GameController(shotLimit, gridSide, shipNumbers); ImageResourcesManager.Initialize(); GameAudioManager.Initialize(); InitializeCells(); InitializeButtons(); UpdateClicksUI(); }