Мне нужно разместить изображения так, чтобы они не были друг на друге.Я смотрю на матрицу 3х3, поэтому 9 мест.Изображение горизонтальное и занимает 2 места.Я пробовал таким образом (отредактировано):
other_position = [e for e in range(9)]
def find_horizontal_position(avaiable_pos):
myList = avaiable_pos
print(avaiable_pos)
try:
possible_position = [0,1,3,4,6,7] # positions where image is not cut in half
position = random.choice(possible_position)
myList.remove(position)
myList.remove(position + 1)
except ValueError:
return find_horizontal_position(avaiable_pos)
return myList, position
for _ in range(2):
other_position, position = find_horizontal_position(other_position)
print(position)
Иногда он генерирует вывод следующим образом:
1
[0, 3, 4, 5, 6, 7, 8]
[0, 3, 4, 5, 6, 7, 8]
[0, 3, 4, 5, 6, 7, 8]
[0, 3, 4, 5, 6, 7, 8]
[3, 4, 5, 6, 7, 8]
4
[3, 6, 7, 8]
Первое изображение размещается в позиции 1, поэтому 1 и 2 убираются.Второе изображение находится в позиции 4, но, кстати, оно убирает 0 ... Может быть, есть лучший способ сделать это?