Bilgisayar biliminde 2 zor problem var. Şeyleri adlandırma, önbellek geçersiz kılma ve birer birer hataları.
Bu bir önbellek geçersiz kılma sorunudur.
"İçindekiler" kaydınız varsa, bir blok yerleştirildiğinde veya çıkarıldığında, bir sel dolgusu ile onu ve bölgesini güncellemek oldukça kolaydır.
Bunu optimize etmek için bir dizi "içsizlik" kademesine sahip olmak isteyebilirsiniz.
Bir "hücre" oyuncu yerleştirilmiş bloklarla çevrili bir bölgedir (belirli bir boyuta kadar).
Bir "oda", arka plan döşemeleri bulunan bir hücredir.
"İçeride", kapısı, ışığı ve sandalyesi olan bir odadır.
Bir oyuncu yerleştirilmiş ön blok yerleştirdiğinizde, yeni bir hücre oluşup oluşmadığını görmek için saat yönünde / saat yönünün tersine bir yürüyüş yapın. Oynatıcıya yerleştirilmiş bir ön plan bloğunu kaldırdığınızda, herhangi bir hücreyi kırayıp ayırmadığını kontrol edin - öyleyse, ikisini birleştirerek yeni bir hücre oluşup oluşmadığına bakın.
Yeni bir hücre oluştuğunda veya biçimlendirilmediğinde, bir oda veya içeride olup olmadığını kontrol edin.
Hücreler, bir oda olması için kaç arka plan döşemesi gerektiğini izleyebilir. Daha sonra bir hücre oluşturulduğunda basit bir sayım, arka plan karosu eklenir veya hücreden kaldırılır, bir oda olup olmadığını belirleyebilir.
Benzer şekilde, Hücreler kaç sandalye ve ışık kaynağının (ve aslında her çeşit nesnenin) içinde olduklarını izleyebilir. Sonra iç kontrol önemsizdir.
Çok sayıda giriş yapılabilir.
Böylece haritayı "hücreler" ile genişletiyoruz. Döşemeler eklendiğinde veya kaldırıldığında, konum hücresini kontrol ederiz ve hücredeki sayımı artırır / azaltır.
Bir ön blok eklendiğinde veya çıkarıldığında hücrenin içini ve dışını tanımlamak için saat yönünde / saat yönünün tersine yönde yürümek kullanın. Hücrelerin büyüklüğü sınırlı olduğundan, bu yürüyüş sınırlı sayıda adım atar.
Bonus olarak, artık odalardaki her nesne türünün bir sayımına sahip olduklarından, "oda" odaları veya "oda kutsal bir çeşme ile kutsanmıştır" veya bir oda hakkında başka bir şey hakkında konuşmanın ucuz bir yoluna sahipsiniz. (Odaların boyutları sınırlandırılmış olduğundan, sadece bir yineleme yapın; bu bir önbelleği kaldırır).
Her konum en fazla bir hücrede olduğundan, her bir konumun hücre kimliğini ana harita üzerinde saklayabilirsiniz.