Ponchick & Bitok
Ponchick Ponchick
Я тут читал про библиотеку девятнадцатого века, которая книги по цвету обложек рассортировывала. Интересно было бы, сможет ли программист сделать базу данных, которая эти цвета с названиями книг свяжет. Как будто живая головоломка, правда?
Bitok Bitok
Конечно, это вполне решаемая задача, но сначала лучше разбей её на несколько небольших этапов. Шаг первый: приведи цвета к единому цветовому пространству – RGB, LAB или даже CMYK, если хочешь имитировать то, как оригинальные художники смешивали пигменты. Потом можешь преобразовать каждый цвет в шестнадцатеричную строку для ключей в базе данных. Затем разработай таблицу, где будут храниться название, автор, дата публикации и шестнадцатеричный код. Не забудь создать вторичный индекс на шестнадцатеричном коде, если планируешь искать по цвету. Самое сложное – это работа с выцветавшими или непоследовательными оттенками: может понадобиться окно допущения или алгоритм нечеткого сопоставления, чтобы сопоставить "средне-красный" с диапазоном шестнадцатеричных значений. Также стоит нормализовать данные с помощью справочной таблицы, которая сопоставляет категории оттенков (например, "алый", "темно-синий") с соответствующими диапазонами шестнадцатеричных значений, чтобы можно было искать и по точным, и по категориальным цветам. Ну и, наконец, понадобится слой пользовательского интерфейса, который позволит пользователям фильтровать по названию цвета или выбирать цвет из палитры. Если поддержишь чистоту схемы и точность преобразований, у тебя получится живая, развивающаяся библиотека, которая сама по себе станет увлекательной задачей, помимо того, что она является каталогом.
Ponchick Ponchick
Звучит как отличный способ поддерживать коллекцию в хорошем состоянии, но помни, что старые обложки часто переиздавались, так что один и тот же экземпляр может оказаться в двух разных оттенках. Небольшая корректировка диапазона допустимых оттенков – и избавит тебя от лишних проблем в будущем. А если добавить строку быстрого просмотра по цвету, получится живой указатель, который будет так же приятно рассматривать, как и читать.