private DecDirections GetOppositeDirection(DecDirections direction) { switch (direction) { case DecDirections.Right: return DecDirections.Left; case DecDirections.Left: return DecDirections.Right; case DecDirections.Up: return DecDirections.Down; case DecDirections.Down: return DecDirections.Up; } return DecDirections.Left; }
/// <summary> /// This method replaces two identical code parts /// </summary> private Point MoveTo(Point currentPoint, DecDirections direction) { Point result = currentPoint; switch (direction) { case DecDirections.Down: result.Y++; break; case DecDirections.Up: result.Y--; break; case DecDirections.Left: result.X--; break; case DecDirections.Right: result.X++; break; } return result; }
private DecDirections GetNeighborDirection(DecDirections direction, int number) { switch (direction) { case DecDirections.Right: if (number == 1) return DecDirections.Up; else return DecDirections.Down; case DecDirections.Left: if (number == 1) return DecDirections.Up; else return DecDirections.Down; case DecDirections.Up: if (number == 1) return DecDirections.Left; else return DecDirections.Right; case DecDirections.Down: if (number == 1) return DecDirections.Left; else return DecDirections.Right; } return DecDirections.Left; }