1 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
如果您熟悉 Python 中的 OOP 并想要自定義,我建議您自己從頭開(kāi)始編寫(xiě)節(jié)點(diǎn)對(duì)象,并實(shí)現(xiàn)它們類似于雙向鏈表,其中每個(gè)節(jié)點(diǎn)都持有對(duì)其所有鄰居的引用。
如果您堅(jiān)持將所有節(jié)點(diǎn)保存在某種類似數(shù)組的對(duì)象中,我會(huì)建議使用類似于具有六邊形網(wǎng)格的視頻游戲如何處理其坐標(biāo)的索引的二維數(shù)組對(duì)象。
n1 - n2 - n3 \ / \ / \ n4 - n5 - n6 / \ / \ / n7 - n8 - n9
使用上圖,您可以創(chuàng)建類似ls = [[n1,n2,n3],[n4,n5,n6],[n7,n8,n9]]
. 偶數(shù)行的右下節(jié)點(diǎn)的列索引將是它自己的列索引,而左下節(jié)點(diǎn)將是它的列索引-1(例如,n2
在偶數(shù)行 0 中,引用n5
它將是ls[1,1]
sincen2
的行列索引是 [0,1]。要引用n4
它將是ls[1,0]
)。同時(shí)對(duì)于奇數(shù)行,它的右下節(jié)點(diǎn)列索引將是它自己的col索引+1,它的左下節(jié)點(diǎn)列索引是它自己的col索引。(示例:n5
索引是 [1,1] 在奇數(shù)行 1,n9
將是ls[2,2]
并且n8
將是ls[2,1]
)。
編輯:我索引的方式ls
是通過(guò) numpy 的索引方法。如果您使用的是 python 內(nèi)置列表,則需要單獨(dú)的括號(hào)(例如,ls[2,1]
在 numpy 中ls[2][1]
用于 python 內(nèi)置列表)
添加回答
舉報(bào)