Esempio n. 1
0
        private void MoveLeft(GameSettingsDto gameSettings)
        {
            CardinalDirection[] cardinalDirections = (CardinalDirection[])Enum.GetValues(typeof(CardinalDirection));
            int newIndex = Array.IndexOf((CardinalDirection[])Enum.GetValues(typeof(CardinalDirection)), gameSettings.Turtle.Direction) - 1;

            gameSettings.Turtle.Direction = (newIndex == -1) ? cardinalDirections[cardinalDirections.Length - 1] : cardinalDirections[newIndex];
        }
Esempio n. 2
0
        private void MoveRight(GameSettingsDto gameSettings)
        {
            CardinalDirection[] cardinalDirections = (CardinalDirection[])Enum.GetValues(typeof(CardinalDirection));
            int newIndex = Array.IndexOf(cardinalDirections, gameSettings.Turtle.Direction) + 1;

            gameSettings.Turtle.Direction = (newIndex == cardinalDirections.Length) ? cardinalDirections[0] : cardinalDirections[newIndex];
        }
Esempio n. 3
0
        private void MoveFront(MoveOperation move, GameSettingsDto gameSettings)
        {
            PositionDto position = GetNewFrontPosition(gameSettings.Turtle);

            bool isValidMove = position.X >= 0 && position.X <= gameSettings.GameBoard.Width && position.Y >= 0 && position.Y <= gameSettings.GameBoard.Height;

            if (isValidMove)
            {
                gameSettings.Turtle.Position = position;
            }
        }
Esempio n. 4
0
 private Status GetNewStatus(GameSettingsDto gameSetting)
 {
     if (gameSetting.GameBoard.Mines.Where(m => m.X == gameSetting.Turtle.Position.X && m.Y == gameSetting.Turtle.Position.Y).Any())
     {
         return(Status.MineHit);
     }
     else
     if (gameSetting.Turtle.Position.X == gameSetting.GameBoard.ExitPoint.X && gameSetting.Turtle.Position.Y == gameSetting.GameBoard.ExitPoint.Y)
     {
         return(Status.Success);
     }
     return(Status.StillInDanger);
 }
Esempio n. 5
0
        private void Move(MoveOperation move, GameSettingsDto gameSettings)
        {
            switch (move)
            {
            case MoveOperation.M:
                MoveFront(move, gameSettings);
                break;

            case MoveOperation.R:
                MoveRight(gameSettings);
                break;

            case MoveOperation.L:
                MoveLeft(gameSettings);
                break;
            }
        }
Esempio n. 6
0
 private async Task <List <GameResultDto> > GetGameResults(GameSettingsDto gameSettings)
 {
     try
     {
         return(await _mediator.Send(new GetGameResultsQuery()
         {
             GameSettings = gameSettings
         }));
     }
     catch (Escape.Mines.Application.Common.Exceptions.ValidationException vex)
     {
         var test = vex.Failures.Select(v => v.Value).ToList();
         foreach (var failure in vex.Failures)
         {
             _logger.LogError("Validation Error: " + string.Join(' ', failure.Value));
         }
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, ex.Message);
     }
     return(new List <GameResultDto>());
 }