/// <summary>Task 4 Lesson 2 /// Сделать проверку на задание размера экрана в классе Game. /// Если высота или ширина (Width, Height) больше 1000 или принимает отрицательное значение, /// выбросить исключение ArgumentOutOfRangeException(). /// Инициализация игровой логики</summary> /// <param name="form">Игровая форма</param> public static void Initialize(Form form) { Width = form.Width; Height = form.Height; __Context = BufferedGraphicsManager.Current; Graphics g = form.CreateGraphics(); __Buffer = __Context.Allocate(g, new Rectangle(0, 0, Width, Height)); __GameLog.LogGameStart(_Counter); __GameLogFile.LogGameStart(_Counter); __GameLog.Flush(); __GameLogFile.Flush(); __Timer = new Timer { Interval = __TimerInterval }; __Timer.Tick += OnTimerTick; __Timer.Start(); form.KeyDown += OnFormKeyDown; if (Width >= 1000 || Width < 0) { throw new ArgumentOutOfRangeException("Ширина экрана должна быть не меньше 0 и не больше 1000"); } if (Height >= 1000 || Height < 0) { throw new ArgumentOutOfRangeException("Высота экрана должна быть не меньше 0 и не больше 1000"); } }
/// <summary> /// Starts the game. /// </summary> public void Start() { Init(); while (!GameFinished) { ConsoleLog(); // Day phase. DayStart(); if (Day == 0) { if (gameSetting.TalkOnFirstDay) { Whisper(); Talk(); } } else // Day > 0 { Talk(); } // Night phase. Night(); if (GameLogger != null) { GameLogger.Flush(); } } ConsoleLog(); Finish(); if (ShowConsoleLog) { Console.WriteLine("Winner:" + GetWinner()); } }