示例#1
0
        /// <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");
            }
        }
示例#2
0
        /// <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());
            }
        }