Bu gamedev yığın mekanizmasında yeniyim ama daha önce matematik ve cs sitelerini kullanmıştım.
Yani, kuralların geleneksel Nokia yılan oyununa çok benzediği 5 dakikalık turda diğer dört yılanla rekabet edecek bir yılan için AI oluşturmak için bir yarışmaya katılıyorum, ancak beş yılan olması, tahta 30x30 ve sahada küçük engeller var.
Nokia oyunu gibi, meyveye ulaştığınızda yılanınız büyür ve kendinize, başka bir yılana veya öldüğünüz duvara çarparsanız. Oyun hamleler arasında 30ms gecikme ile çalışır ve sunucu yeni oyun durumunu her 50ms'de kodun analiz etmesi gereken ve sonraki hamleyi vermeyecekleri ve gönderemeyen gönderir.
Kazanan, oyunun herhangi bir noktasında en uzun uzunluğa sahip olan yılan. Kravat kırıcılara öldürme kararı verilir.
Şimdiye kadar yaptığım şey, yılanımın elmaya en yakın olup olmadığını belirlemek için her yılandan bir A * grafik araması yapıldı ve eğer elma için gidiyor. Aksi takdirde, bir sonraki elmayı tahmin etmek için yılanımın gittiği tahtadaki en boş alanı belirlemek için düzgün bir algoritma yaptım.
Bunun dışında, yılanımın dışarı çıkamayacağı bir tuzağa girmediğinden emin olmak için bazı küçük hayatta kalma kontrollerim var ve eğer sıkışırsa, dışarı çıkma şansı verecek bir şeyim var.
...
Her neyse, yılanımı bir test sunucusunda test ettim ve oldukça iyi. Genel olarak, sadece emin bir şey olduğunda elma için gitme stratejisi ve diğer yılanlardan daha hızlı büyümesini sağladığında yer bulma stratejim (bazı yılanlar benzer bir şey yapar, ancak genellikle sadece orta veya bir köşeye gider) bazen kazanır Bu deneme oyunları ama daha çok hayatta kalma konusunda bir kenara sahip gibi görünen aynı yılan tarafından dövülmüyor (yılanım daha hızlı büyüyor ama sonra bir şekilde ölüyor ve bu diğer yılan sadece yavaşça ilerliyor ve tutarlılık kazanıyor.
Bu yüzden herkesin yılanımı iyileştirmeye çalışması gereken fikirleri merak ediyordum. Ya da belki yeni bir yaklaşımın fikirlerini almak. İşlevlerim ve sınıflarım iyi, bu yüzden sert görünebilecek değişiklikler çok kötü olmamalı. Tüm fikirleri teşvik ediyorum.
Düşüncesi olan var mı?