Я работал над программой, чтобы выяснить все основные формы соединения цветов в игре.
Я видел / думал о нескольких различных методах определения, какие формы где находятся.
Например, создание функции, имеющей все возможные формы, и выбор самой большой из них. (Слишком много времени и неэффективно.)
Я также видел несколько примеров, когда это преобразовывалось в матрицу 0-1, а затем индивидуально определялось, какой цвет является самой большой формой, и использовались отдельные функции для каждого цвета.
['r', 'r', 'y', 'g', 'y', 'y', 'y', 'g', 'g', 'g', 'g', 'g']
['y', 'y', 'r', 'y', 'r', 'y', 'g', 'g', 'y', 'r', 'r', 'r']
['g', 'g', 'r', 'r', 'y', 'y', 'g', 'g', 'y', 'r', 'r', 'y']
['r', 'r', 'g', 'g', 'y', 'g', 'r', 'y', 'y', 'r', 'r', 'g']
['g', 'g', 'g', 'r', 'g', 'y', 'r', 'g', 'y', 'r', 'r', 'r']
['y', 'r', 'r', 'g', 'y', 'g', 'g', 'r', 'r', 'g', 'b', 'g']
Выше указан размер матрицы / массива / нескольких списков. Кто-нибудь не возражает предоставить некоторые возможные эффективные решения в python, чтобы я мог, по крайней мере, получить представление? Я остановился.
Например, самый большой прямоугольник в приведенной выше форме будет следующим:
['r', 'r', 'y', 'g', 'y', 'y', 'y', 'g', 'g', 'g', 'g', 'g']
['y', 'y', 'r', 'y', 'r', 'y', 'g', 'g', 'y', |'r', 'r',| 'r']
['g', 'g', 'r', 'r', 'y', 'y', 'g', 'g', 'y', |'r', 'r',| 'y']
['r', 'r', 'g', 'g', 'y', 'g', 'r', 'y', 'y', |'r', 'r',| 'g']
['g', 'g', 'g', 'r', 'g', 'y', 'r', 'g', 'y', |'r', 'r',| 'r']
['y', 'r', 'r', 'g', 'y', 'g', 'g', 'r', 'r', 'g', 'b', 'g']