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)); }
private void MovePlayer(Player currentPlayer, CommandParser.PlayerMoves direction) { DisableCurrentPlayerCell(currentPlayer.Position); currentPlayer.Position = Position.CalculatePosition(currentPlayer.Position, direction); UpdateTheMatrix(currentPlayer); }