2009-04-12 8 views
0

J'ai un système de discussion AJAX sur lequel je travaille et jusqu'à présent je l'ai fonctionné. Une chose que je veux faire est de le faire quand le nom d'utilisateur est affiché à l'écran, c'est une couleur unique (comme dans une fenêtre AIM). Comment générer une couleur aléatoire à attribuer au nom de l'utilisateur pour la session particulière pour laquelle ils sont connectés?Affectation de couleurs aléatoires par session, pour le chat

La couleur doit être quelque chose qui est plus sombre que sur fond blanc et comme ils sont générés, ils ne peuvent pas être trop similaires aux couleurs que les autres utilisateurs actuels ont été affectés.

EDIT Merci, je suppose qu'une liste prédéfinie serait la plus simple. Si j'ai cette liste dans un fichier de configuration et que j'attribue une couleur lorsque l'utilisateur se connecte, comment dois-je m'assurer que deux utilisateurs connectés n'ont pas la même couleur?

Répondre

7

Je pense que vous feriez mieux de choisir au hasard parmi une liste de couleurs pré-générées qui répondent à vos besoins (assez sombres, assez différents les uns des autres) que d'essayer de générer des couleurs à la volée.

Edité à ajouter:

En ce qui maintenant plus d'un utilisateur d'avoir la même couleur, une chose que j'ai vu faire des systèmes est juste attribuer des couleurs localement sur la machine des utilisateurs en utilisant Javascript. Habituellement, il n'est pas si important que les différents utilisateurs voient les mêmes couleurs pour les autres. Peu m'importe si les couleurs sur mon écran sont les mêmes que sur l'écran d'un autre utilisateur, à condition que toutes les couleurs de mon écran soient uniques. En fait, il peut être souhaitable que le propre texte de chaque utilisateur soit distinct (il est noir, tout le monde est coloré, par exemple).

+0

30 secondes plus tard que votre réponse! –

+0

Un bon point de départ pourrait être les couleurs de l'étiquette dans Gmail - elles sont facilement identifiables et conçues pour fonctionner sur un fond clair. Il n'y en a peut-être pas assez cependant. – ozan

+0

Voici une bonne liste de couleurs Web à choisir: http://www.december.com/html/spec/colorhslhex10.html – Calvin

1

Créez une liste de couleurs (à la main) suffisamment sombres et faciles à distinguer, puis choisissez-en une de manière aléatoire.

1

Vous ne voulez pas aller trop au hasard avec les couleurs si vous voulez aussi qu'elles contrastent entre elles et qu'elles soient du côté obscur du blanc.

Il peut être préférable de prédéfinir un tableau de couleurs et de le parcourir à partir d'une position de départ aléatoire, de sorte qu'aucune ne sera répétée tant que l'ensemble n'a pas été affecté.

Questions connexes