Closed a-kr closed 14 years ago
Надо будет указывать цвет каждого юзера в сообщении roommates (M5). В описании протокола предложен один из вариантов.
Да, еще цвет нужно указать в сообщении М11 при успешном логине.
Массив из заранее заданных различимых цветов идет в топку. Вместо этого в учетных записях указываются цвета из web-палитры, генерящиеся по алгоритму Турала.
Каждому участнику чата нужно присвоить свой цвет, которым он будет рисовать. Возможность рисовать разными цветами таким образом вылетает в трубу.
Проблема: человеков в принципе много, а различимых на глаз цветов - мало.
Пусть на сервере есть массив из N заранее заданных визуально различимых цветов.
Вариант решения 1: каждой учетной записи, хранящейся в базе под номером i, приписывается цвет номер (i % N). Этот цвет сообщается юзеру после подключения к серверу спец-сообщением.
Вариант решения 2: на сервере хранится соответствие "юзер-цвет", изначально пустое. Сбрасывается при очистке изображения. Первый юзер, который начал рисовать на пустом изображении, получит цвет №1, следующий - цвет №2 и т.д. Косяк: пусть Вася с Петей работали над одной картинкой, причем в процессе рисования Вася имел зеленый цвет (№1), Петя - красный (№2). Петя решает, что картинка не катит, жмет "стереть все" и рисует закорючку. Закорючка выходит зеленого цвета, т.к. Петя начал первым, а Васе достанется красный. Возможна путаница.
Вариант решения 3 предоставляется придумать читателю в качестве самостоятельного упражнения.