Uygulamanızın bir hücredeki ses seviyesinin kümülatif olduğunu ve genliğin her yöne eşit olarak dışarı doğru hareket ettiğini varsaydığını düşünüyorum. Ses yayılmıyor, kare kare, çalıyor veya çalmıyor ve herhangi bir noktada çalınacak genliği bulmak istiyorsunuz.
Kiremitlerin içinden yayın yapmak, bunu yapmanın bir yoludur (ve muhtemelen en etkili yoludur). Sadece verici ve alıcı arasında bir çizgi çizin ve yol boyunca her bir hücrenin sönümleme değerini çıkarın. Sayı pozitifse sesi çalarsınız.
Dolaylı sesi modellemek istiyorsanız, yol bulmanız gerekecektir. Yayıcıya ağacınızın kökü gibi davranın ve her bitişik hücreyi bağlantılı bir düğüm olarak modelleyin. Her bağlantının, geçerli hacimden çıkarılan bir maliyeti vardır. Alıcıyı bulana veya ses düzeyiniz sıfırın altına düşene kadar grafikte dolaşmaya devam edin (eğer öyleyse, geriye doğru izleyin ve başka bir yol deneyin). Alıcıya pozitif ses seviyesinde yol yoksa, vericiniz duyulamaz. Not: alıcıyı bulduğunuzda sadece traversten vazgeçemezsiniz, çünkü vericiden alıcıya birden fazla yol olabilir ve en yüksek hacme sahip olana ihtiyacınız vardır.
Sesin nereden geldiğini önemseyen AI'yı modelliyorsanız, ikinci yaklaşım yardımcı olacaktır - AI, sesi yoldaki son segmentin yönünden 'duymak' olacaktır. Güzel, alıcıya iki sesli yol varsa, AI çoklu sesler ve hangi yöne gidecekleri konusunda karıştırılabilir.