Developersland

Teknoloji ve Yazılım Blogu

  • Yazıtipi boyutunu arttır
  • Varsayılan yazıtipi boyutu
  • Yazıtipi boyutunu azaltır

Yapay Zeka ile Etkileşim

Yapay Zeka ile Etkileşim


Oyunda yapay zeka ile etkileşim, oyunun kullanıcı ile etkileşimi model alınarak tasarlanmıştır. Yapay zekalar birer sınıf olarak tasarlanmış ve bu sınıfların “ArtificalIntelligence” isimli ortak bir ara yüzü (interface) uygulaması sağlanmıştır. Böylece bütün yapay zekaların belirli ortak metotları barındırması ve her birinin bunların içini kendi karakteristiklerine uygun olarak doldurması zorunlu tutulmuştur. Aşağıda interface ve içerisinde barındırdığı metotlar gösterilmiştir. Bunlardan her birini ayrı ayrı inceleyelim.

yapay zeka

getName: Yapay zekanın ismini geri döndürmektedir.

requestTerritory: Yapay zekadan bölge seçmesi bu metot aracılığıyla istenmektedir.  Yapay zeka seçilmemiş bölgelerden birinin indeks değerini programa yollayarak bölge seçer.

getTerritoryToPlaceFirstArmies: İlk ordular oyucuların sahip olduğu bölgelere dağıtılırken bu metot aracılığıyla yapay zeka oyuncusuna ordusunu hangi bölgesine yerleştirmek istediği sorulur. Yapay zeka sahip olduğu bölgelerden birinin programa yollayarak ordusunu yerleştirmiş olur.

getTerritoriesIndexToPlaceNewArmies: Bu metot yapay zeka oyuncusunun her döngüde kazandığı yeni orduları hangi bölgeye yerleştirmek istediğini sorar. Yapay yeni ordularını yerleştirmek istediği bölgelerin indekslerini liste şeklinde programa iletir. Böylece yeni ordu takviyeleri yapay zekanın yerleştirmek istediği bölgelerine yerleştirilmiş olur.

devam: Bu metot yapay zekanın yeni ordularını yerleştirdikten sonra hamle yapıp yapmayacağını sorar. Yapay zeka evet veya hayır cevaplarını geri döndürür. Hayır cevabı geldiği taktirde oyun sırası bir sonraki oyuncuya geçer.

saldiracanMi: Bu metot yapay zekaya saldırı yapıp yapmayacağını sorar. Yapay zeka evet veya hayır şeklinde cevap geri döndürür.

getSavasBolgeIndexleri:
Bu metot saldiracanMi isimli metottan evet cevabı döndüğünde devreye girer. Yapay zekadan saldırıyı gerçekleştirecek olan ve saldırı yapılacak olan bölgelerin indeksleri istenir. Yapay zeka programa bölgelerin indekslerini iki sayıdan oluşan bir liste şeklinde gönderir.

divideArmies: Bu metot yapay zeka saldırı sonucunda bir bölgeyi işgal ettiğinde saldırı yapılan bölge ile yeni işgal edilmiş bölge arasındaki asker dağılımının ne şekilde yapılacağını sorar. Yapay zeka programa iki sayıdan oluşan bir liste geri döndürür. Bu listede yer alan ilk sayı saldırı yapan bölgede kalacak asker sayısını ikinci sayı ise yeni işgal edilen bölgeye aktarılacak olan asker sayısını belirler.

 

Yorumlar  

 
0 #1 C.Emre ÖZ 30-12-2011 22:47
Bu özellikler zaten böyle bir oyunda yapılması gereken programlama mantığının temeli diye düşünüyorum. Esas Yapay zeka saldıracağı bölgeyi ve asker sayısını neye göre belirliyor ? Rastgele sayılarla mı yoksa stratejik olarak yöntem izliyor mu ? Bence önemli olan bu.
Alıntı
 
 
+1 #2 Administrator 30-12-2011 22:50
Emre Bey sorunuzun cevabını aşağıdaki linkteki makalede bulabilirsiniz

http://developersland.net/index.php/risk-oyununun-yapay-zekalar.html
Alıntı
 

Yorum ekle


Güvenlik kodu
Yenile