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]; }
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]; }
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; } }
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); }
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; } }
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>()); }