eine Hash-Funktion unter Verwendung einer unvergessliche Persönlichkeit Objekte zu geben

StackOverflow https://stackoverflow.com/questions/1802094

  •  05-07-2019
  •  | 
  •  

Frage

(Hinweis:. Das Projekt in Python ist)

Ich bin mit einer Simulation, in der ich viele Objekte, die mich auf dem Bildschirm angezeigt werden sollen und manipulieren, mit. Es muss einen Weg geben, um jedes Objekt zu identifizieren, weil sie von Ort werde abrupt zu platzieren, und ich möchte in der Lage sein zu verfolgen, welches Objekt bewegt, wo.

Was ich habe, ist daran gedacht, zu jedem Objekt werde ich eine „Persönlichkeit“ erzeugen. Ein paar Farben und ein Englisch Namen, und ich werden auf der GUI, dass als Objektdarstellung setzen. Ich stellte dar, dass eine Hash-Funktion verwendet wird, wird diese Farben und Namen zu machen, aber ich habe noch nie gearbeitet mit Hash-Funktionen.

Wie kann ich das tun, was ich tun will?

War es hilfreich?

Lösung

verwendet ein UUID (UUID Modul in Python> = 2,5).

Diese UUID in Version 4 ist per Definition zufällig auf allen Gebieten (mit einer Ausnahme)

>>> uuid.uuid4()
UUID('9d477dc7-a986-4e3d-aa4f-6e57f690be78')

Sie können die Felder zersetzen richtig eine Farbe oder einen Namen zu erstellen (durch die Abbildung einen Eimer Namen zu einem bestimmten Feld). Natürlich beschränken Sie Ihre Hash (die wirkliche Identität ist immer die UUID), aber für visuelle Zwecke ist es sehr ausreichend. Zum Beispiel könnte man die ersten drei Oktetts verwenden, um die Farbe # 9d477d, und die verbleibende Oktett c7 zu erzeugen, einen Namen aus einem Satz von 256 zu wählen.

Wenn Sie mit zu hässlich Farben landen, können Sie stattdessen in HSV arbeiten, und Klemm Sättigung und Wert gegeben Ebene. Auch dies noch Ihre Hash schränkt (aber der Farbraum ist bereits ziemlich schließlich begrenzt).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top