Üniversite 3. sınıfta aldığım seçmeli ders olan Yapay Zeka ( Artificial Intelligence ) dersinin projesinde oyun ağaçlarını konusu seçmiştim ve uygulaması olarak da Silverlight'da yenilmeyen Tic Tac Toe ( XOX ) oyunu programlamıştım. ( Projemi incelemek veya oynamak isterseniz ilgili blog yazıma bakabilirsiniz. ) Oyun ağaçları iki kişilik , bir yüzey üzerinde (tahta) , kuralları açık olan oyunlar için üretilebilir. Ağac'ın ilk seviyesi o anki oyun tahtasının o anki düzenidir. Yapay zeka karşılıklı olarak her iki oyuncu'nun taşlarını teker teker her alana yerleştirip , bütün oyun olasılıklarını ortaya çıkarıp en iyi hamleyi seçiyor. Seçerken karşıdaki oyuncu'nun kendisine göre en iyi hamleyi seçtiğini varsayıyor. Peki hamlenin iyi olup olmadığını nasıl bilebiliriz? Her oyun için değişir fakat XOX 'de oyun'un sonuna kadar gidebildiğimiz için oyun'un sonunda kimin kazandığına göre bir fonksiyon değeri döndürebiliriz ( 1 , 0 , -1 gibi ) Böylece oyun ağacı'nın en altından üstlere doğru yapay zekamız hamleler'in ileride hangi sonuçlarla bitebileceğini öğrenebilir. Aşağıda gömülü sunum dosyamda üst tarafta bahsettiğim herşeyi ve adım adım oyun ağacı'nın yorumlanmasını blogumdaki bu yazı üzerinden sayfa sayfa inceleyebilirsiniz.