Esempio n. 1
0
        public ValidationReport RunValidations()
        {
            Player currentPlayer = Properties.CurrentPlayer;

            CommandParser.PlayerMoves direction = Properties.Direction;
            Position testPosition = Position.CalculatePosition(currentPlayer.Position, direction);
            int      row          = testPosition.Row;
            int      col          = testPosition.Column;

            if (CollisionWithBorder(testPosition))
            {
                return(new ValidationReport(ValidationStatus.CollisionWithBorder, null, testPosition));
            }

            if (CollisionWithOneSelfTrail(currentPlayer, row, col))
            {
                return(new ValidationReport(ValidationStatus.CollisionWithOneSelfTrail, null, testPosition));
            }

            if (CollisionWithOtherPlayerTrail(row, col))
            {
                return(new ValidationReport(ValidationStatus.CollisionWithOtherPlayerTrail, null, testPosition));
            }

            if (CollisionWithOtherPlayer(row, col))
            {
                Player crashPlayer = Properties.Matrix[testPosition.Row, testPosition.Column].Player;
                return(new ValidationReport(ValidationStatus.CollisionWithOtherPlayer, crashPlayer, testPosition));
            }

            return(new ValidationReport(ValidationStatus.Ok, null, testPosition));
        }
Esempio n. 2
0
 private void MovePlayer(Player currentPlayer, CommandParser.PlayerMoves direction)
 {
     DisableCurrentPlayerCell(currentPlayer.Position);
     currentPlayer.Position = Position.CalculatePosition(currentPlayer.Position, direction);
     UpdateTheMatrix(currentPlayer);
 }