Exemplo n.º 1
0
        public void Start()
        {
            try
            {
                _logger.LogInformation($"Запущен сервис игры {nameof(GameManagerService)}");

                //Вытягивание настроек из конфига
                IConfiguration    appConfiguration  = new ConfigurationBuilder().AddJsonFile("gameboardsettigs.json").Build();
                GameBoardSettings gameBoardSettings = new GameBoardSettings();
                appConfiguration.Bind(gameBoardSettings);

                //Добавление змейку в центр поля
                Point middlePoint = new Point(gameBoardSettings.GameBoardSize.Width / 2, gameBoardSettings.GameBoardSize.Height / 2);
                Snake snake       = new Snake(middlePoint, gameBoardSettings.InitialSnakeLength);

                //Добавление еды на поле
                Food food = new Food();
                food.GenerateFood(snake.Points, gameBoardSettings.GameBoardSize);

                //Создание игры
                this.Game = new GameManager(snake, food, gameBoardSettings, Direction.Top, _logger);

                //запуск таймера для совершения шагов в игре
                this._timer = new Timer(
                    DoWork,
                    null,
                    TimeSpan.FromMilliseconds(gameBoardSettings.TimeUntilNextTurnMilliseconds),
                    TimeSpan.FromMilliseconds(gameBoardSettings.TimeUntilNextTurnMilliseconds));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Ошибка при старте {nameof(GameManagerService)}");
            }
        }
Exemplo n.º 2
0
 public void Setup()
 {
     this.mockLogger   = new Mock <ILogger>();
     gameBoardSettings = new GameBoardSettings
     {
         GameBoardSize = new Size {
             Height = 20, Width = 20
         },
         InitialSnakeLength            = 2,
         TimeUntilNextTurnMilliseconds = 600,
     };
 }
Exemplo n.º 3
0
        public void GameBoardSettings_ShouldReturnCorrectSettings()
        {
            //Arrange
            GameManager gameManager = new GameManager(
                new Snake(),
                new Food(),
                this.gameBoardSettings,
                Direction.Top,
                this.mockLogger.Object);

            //Act
            GameBoardSettings resultBoard = gameManager.GameBoardSettings;

            //Assert
            Assert.AreEqual(this.gameBoardSettings.GameBoardSize.Height, resultBoard.GameBoardSize.Height);
            Assert.AreEqual(this.gameBoardSettings.GameBoardSize.Width, resultBoard.GameBoardSize.Width);
            Assert.AreEqual(this.gameBoardSettings.InitialSnakeLength, resultBoard.InitialSnakeLength);
            Assert.AreEqual(this.gameBoardSettings.TimeUntilNextTurnMilliseconds, resultBoard.TimeUntilNextTurnMilliseconds);
        }