में आसन्न कोशिकाओं को खोजने का पाइथोनिक और कुशल तरीका मैं पायथन/ओपनजीएल का उपयोग कर पाइथन में एक टाइल आधारित ऐप का निर्माण कर रहा हूं जिसमें मुझे किसी दिए गए सेल के लिए आसन्न कोशिकाओं को ढूंढना होगा। मैं एक कार्टेसियन ग्रिड के एक चतुर्भुज में काम कर रहा हूँ। प्रत्येक सेल में एक एक्स और वाई मान होता है जो ग्रिड (x_coord और y_coord) में इसकी स्थिति दर्शाता है। ये पिक्सेल मान नहीं बल्कि ग्रिड स्थितियां हैं। मैं आसन्न कोशिकाओं को पाने के लिए एक कुशल तरीका तलाश रहा हूँ। यह शायद होगाग्रिड
def get_adjacent_cells(self, cell):
result = []
x_coord = cell.x_coord
y_coord = cell.y_coord
for c in grid.cells:
if c.x_coord == x_coord and c.y_coord == y_coord: # right
result.append(c)
if c.x_coord == x_coord - 1 and c.y_coord == y_coord + 1: # lower right
result.append(c)
if c.x_coord == x_coord - 1 and c.y_coord == y_coord: # below
result.append(c)
if c.x_coord == x_coord - 1 and c.y_coord == y_coord - 1: lower left
result.append(c)
if c.x_coord == x_coord and c.y_coord == y_coord - 1: right
result.append(c)
// -- similar conditional for remaining cells
: अधिकतम वहाँ आठ संभव सन्निकट कक्षों, लेकिन ग्रिड की सीमा की वजह से वहाँ एक सरल अभी तक शायद अक्षम दृष्टिकोण के लिए के रूप में कुछ 3. के रूप में छद्म कोड हो सकता है कुछ इस तरह दिखता काम ठीक है, हालांकि यह संभावना है कि इस कोड को प्रत्येक फ्रेम को चलाने की आवश्यकता होगी और एक बड़े ग्रिड में यह प्रदर्शन को प्रभावित कर सकता है। अधिक सुव्यवस्थित और कम सीपीयू गहन दृष्टिकोण के लिए कोई विचार? या, क्या मुझे बस इस दृष्टिकोण के साथ रोल करना चाहिए?
अग्रिम धन्यवाद।
विशेषण 'पायथनस्क्यू' नहीं है? :-) – Simon
यदि आप ऐसा करने के अपने तरीके से रहना चाहते हैं, तो मैं कम से कम एक काउंटर बनाउंगा कि परिणामस्वरूप कितने परिणाम दिए गए हैं। जब यह 8 तक पहुंचता है, तो लूप से बाहर निकल जाता है। साथ ही, केवल एक सेल संलग्न करते समय यह जांचें कि यह 8 के बराबर है या नहीं। –