Saya membuat game Tower Defense di Flash tanpa jalur yang telah ditentukan.
Meskipun kisi saya adalah 40x40 (kecil?), A * berjuang ketika menghitung ulang setiap waktu. Jadi saya membuat modifikasi sendiri untuk memudahkan perhitungan ulang dan jumlah sel yang disentuh turun menjadi sekitar 900 (ketika memodifikasi di dekat root). Itu masih membeku untuk waktu yang sangat singkat, tetapi dapat terdeteksi, ketika menara baru ditempatkan.
Apakah ini masalah implementasi, atau 40x40 terlalu banyak?
Edit:
Struktur kode saya:
- Semua data disimpan dalam array sel 2d.
- Setiap sel berisi induknya dalam arah jalur (1-8 searah jarum jam) dan larik dikodekan bitwise dari anak-anaknya di jalur (setiap bit mewakili anak).
- Pencarian dilakukan oleh A * dengan perkiraan jarak euclidian.