मुझे लगता है कि आपके कार्यान्वयन का मानना है कि एक सेल में ध्वनि का स्तर संचयी है, और यह कि आयाम सभी दिशाओं में समान रूप से बाहर की ओर बढ़ता है। ध्वनि बाहर नहीं फैलती है, फ्रेम द्वारा फ़्रेम, यह या तो खेल रहा है या यह नहीं है, और आप इसे किसी भी बिंदु पर खेलने के लिए आयाम का पता लगाना चाहते हैं।
टाइल्स के माध्यम से रेकास्टिंग करना एक तरीका है (और शायद सबसे प्रभावी तरीका) इसे करने का। बस emitter और रिसीवर के बीच एक रेखा खींचना, और रास्ते में प्रत्येक सेल के नम मूल्य को घटाना। यदि संख्या सकारात्मक है, तो आप ध्वनि बजाते हैं।
यदि आप अप्रत्यक्ष ध्वनि का मॉडल बनाना चाहते हैं, तो आपको पथ-खोज करना होगा। अपने पेड़ की जड़ के रूप में उत्सर्जक का इलाज करें, और प्रत्येक आसन्न सेल को एक लिंक नोड के रूप में मॉडल करें। प्रत्येक लिंक की एक लागत होती है, जिसे वर्तमान वॉल्यूम से घटाया जाता है। ग्राफ़ के माध्यम से ट्रैवर्सिंग करते रहें, जब तक कि आपको रिसीवर या आपकी वॉल्यूम शून्य से नीचे न मिल जाए (यदि यह करता है, पीछे हट जाता है और दूसरा रास्ता आज़माता है)। यदि पॉजिटिव वॉल्यूम वाले रिसीवर के लिए कोई रास्ता नहीं है, तो आपका एमिटर नहीं सुना जा सकता है। NB: जब आप रिसीवर ढूंढते हैं तो आप केवल ट्रैवर्सिंग नहीं छोड़ सकते हैं, क्योंकि एमिटर से रिसीवर तक कई रास्ते हो सकते हैं, और आपको सबसे अधिक वॉल्यूम की आवश्यकता होती है।
यदि आप एआई को मॉडलिंग कर रहे हैं तो इस बात की परवाह करें कि ध्वनि कहां से आई है, बाद वाला तरीका मदद करेगा - एआई मार्ग में अंतिम खंड की दिशा से आने वाली ध्वनि को 'सुनवाई' करेगा। अच्छी तरह से, अगर रिसीवर के लिए दो श्रव्य मार्ग हैं, तो वे एआई को कई ध्वनियों और किस दिशा में ले जाने के बारे में भ्रमित हो सकते हैं।