2009-11-26 27 views
3

(注:該項目是在Python)使用哈希函數給一個難忘的個性對象

我運行一個仿真中,我有,我想在屏幕上顯示和操縱多個對象用。需要有一種方法來識別每個對象,因爲它們將突然從一個地方移動到另一個地方,我希望能夠跟蹤哪個對象移動到哪裏。

我一直在想的是,對於每一個對象,我都會產生一個「個性」。幾種顏色和一個英文名稱,我將把它作爲GUI上的對象表示。我想到一個散列函數將用於製作這些顏色和名稱,但我從未使用過散列函數。

我該怎麼做我想做的事?

+1

不是答案,但可能有用:在Python中有一個「id(...)」函數,它爲您提供一個對象的唯一標識符。 – sth 2009-11-26 07:36:31

回答

2

使用uuid(模塊uuid在python> = 2.5)。

此UUID,在4版本,被定義在

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

可以適當分解領域中創建的顏色或名稱(姓名一桶映射到所有領域(除了一個)隨機一個特定的領域)。當然,你限制你的散列(真正的身份總是uuid),但對於視覺目的來說,這足夠了。 例如,你可以使用前三個字節生成顏色#9d477d,其餘八位c7挑一個名字出了一套256

如果你結束了太難看顏色,你可以工作在HSV中,並將飽和度和值鉗位到給定水平。再次,這限制了你的散列更多(但是顏色空間已經相當有限了)。

+0

聽起來不錯。現在,對於名稱,是否有我可以使用的英文名稱的準備清單? – 2009-11-26 07:46:53

+1

http://www.world-english.org/boys_names_list.htm 請不要使用算法給你的孩子一個名字;) – 2009-11-26 07:49:33

+0

這將是一個無賴從網站刮這些...是有沒有組織的清單? – 2009-11-26 09:55:04