2012-07-29 35 views
1

我想將Room類的實例安排到網格中供遊戲使用。這裏是類:創建網格並將其安排到網格中

class Room: 
    def __init__(self, name, x, y): 
     self.name = name 
     self.pos = (x, y) 

什麼是分配x和y的值,以實例,以便沒有兩個實例是相同的位置和座標類似於一個3x3格的最佳方式?

回答

5
import itertools 
for i, j in itertools.product(xrange(3), repeat=2): 
    room = Room("%s %s" % (i, j), i, j) 

乾杯。

+1

你能解釋一下這段代碼的工作原理嗎?我不熟悉itertools。 – mattjegan 2012-07-29 04:30:48

+3

[itertools.product](http://docs.python.org/library/itertools.html#itertools.product)是給定迭代的笛卡爾乘積。你熟悉這個嗎? – Julian 2012-07-29 04:31:36

+2

@ tolo1377您是否聽說過笛卡爾產品?此鏈接可能有所幫助:http://docs.python.org/library/itertools.html#itertools.product – jamylak 2012-07-29 04:31:51