private bool IsOutOfBound(FieldCoordinate newPosition)
        {
            if (newPosition.X < 0 || newPosition.X > map.Tiles.Columns)
                return true;
            if (newPosition.Y < 0 || newPosition.Y > map.Tiles.Rows)
                return true;

            return false;
        }
 private FieldCoordinate Move(Direction direction, FieldCoordinate fieldCoordinate)
 {
     switch (direction)
     {
         case Direction.Down:
             return new FieldCoordinate(fieldCoordinate.X, fieldCoordinate.Y + 1);
         case Direction.Left:
             return new FieldCoordinate(fieldCoordinate.X - 1, fieldCoordinate.Y);
         case Direction.Right:
             return new FieldCoordinate(fieldCoordinate.X + 1, fieldCoordinate.Y);
         case Direction.Up:
             return new FieldCoordinate(fieldCoordinate.X, fieldCoordinate.Y - 1);
     }
     return default(FieldCoordinate);
 }
 private bool IsBlocked(FieldCoordinate newPosition)
 {
     return !map.Tiles[newPosition.Y, newPosition.X].IsAccessable;
 }
 public void PlaceSprite(int spriteId, FieldCoordinate fieldCoordinate)
 {
     sprites[spriteId] = fieldCoordinate;
 }