Возможно, разбить проблему на несколько частей.
Сначала я создал бы массив, содержащий изображения (расположение изображений), а затем перебрал бы массив с циклом for-in.В этом цикле у вас есть переменная, которая хранит последнюю правую границу последнего созданного изображения (x-position).Эта позиция является начальной позицией для следующего изображения.Для 3 строк вам нужно будет вложить этот цикл в другой, который строит строки (изменяя y-позицию).
Если у вас это работает, не должно быть слишком сложно применять описанные вами правилавыше, что я признаю, я не совсем понял.