Thread overview
Yapay Zeka Olusturmak
Sep 09, 2010
tonk
Sep 09, 2010
tonk
Sep 09, 2010
tonk
Sep 09, 2010
Mengu
September 09, 2010

Merhaba arkadaslar. Programlamayi ogreniyorum, ama tek elde ettigim harfler ve rakamlar. Bunu gorsele nasil donusturecegim. Ornegin bir oyun haline nasil getirebilirim. Basit olarak tabii ki. Basit bir Yapay zeka gelistirmek istiyorum, biri yardim edebilir mi? Tesekkur ediyorum simdiden...
Saygilar..

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 09, 2010

Teşekkür ederim. Evet sanırım biraz anladım ama, benim istediğim şey oyun motorunun işlevi şeklinde bir görsellikti. Süper zeka oyununun görseli bol olanından bahsediyorum, örneğin bir arka plan atamak vs. Bir de önerebileceğiniz bir oyun motoru var mı acaba 3D? Yapay zekadan kastım da if'lere bağlı olarak davranış veya daha kompleksi.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 09, 2010

Evet olabilir. Örneğin harita ve sıra-tabanlı bir oyunda (risk gibi mesela) bilgisayarın mantıklı kararlar vermesini istiyorum. Yani kendi gücüyle düşmanın gücünü karşılaştırsın en kolay rakibe saldırsın gibi. Bunu bir harita üzerinde oynatabilirmiyiz mesela.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 10, 2010

Alıntı (acehreli):

>

Bize o olanağı sunan kütüphaneler kullanabiliriz. GtkD bölümünde bazı örnekler var:

http://ddili.org/ders/gtkd/index.html

(Mengü, oraya bir el atacak mısın sonra? ;))

Ali

evet ustad. :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 09, 2010

Alıntı (tonk):

>

Programlamayi ogreniyorum, ama tek elde ettigim harfler ve rakamlar.

Onlar gerçekten de yetiyor. :) Onları struct veya class olarak birleştirerek kendi türlerimizi oluşturuyoruz.

Alıntı:

>

Bunu gorsele nasil donusturecegim.

Bize o olanağı sunan kütüphaneler kullanabiliriz. GtkD bölümünde bazı örnekler var:

http://ddili.org/ders/gtkd/index.html

(Mengü, oraya bir el atacak mısın sonra? ;))

Alıntı:

>

Ornegin bir oyun haline nasil getirebilirim.

Görsel kısmı dışında, oyunun mantığını kurma işini de yapılarla ve sınıflarla halledebiliyoruz. Süper zeka oyunu üzerinde konuşmuştuk:

http://ddili.org/forum/thread/294

Orada örneğin 'TahminSonucu' diye bir yapı var. İki int'i birleştirerek oluşturulmuş ve 'karşılaştır' işlevinden bir değermiş gibi döndürülüyor.

O program az da olsa açıklayıcı oluyor mu? Değilse sormaya devam et. Bir pişti oyunu projemiz de var; belki onu canlandırınca daha güzel sorular buluruz.

Alıntı:

>

Basit bir Yapay zeka gelistirmek istiyorum

O konu ayrı bir bilim ve benim de fazla bilgim yok.

Eğer bilgisayara akıllı işler yaptırmaktan bahsediyorsak, onun farklı yolları bulunabilir. Örneğin bir satranç oyunu bile bir insan gibi düşünmez. Yaptığı, taşların belirli bir durumunu puanlamaktır. Örneğin iki piyonun aynı sütunda art arda durmaları zayıflık olarak kabul edildiği için öyle bir duruma eksi bir puan verebilir. Belli bir süre sonra da bulduğu en yüksek puanlı hamleyi oynar.

Yani sonuçta olay, amaca götüren algoritmalar ve hesaplar bulmaya kalıyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 09, 2010

Oyun motoru konusunu diğer arkadaşlara bırakacağım; ben hiç bilmiyorum.

Ama şöyle zevkli bir şey önerebilirim: Ben bir kaç keresinde konsolu "grafik ortam" olarak kullanan programlar yazdım. Çok ilkel ama çok da başarılı çalışıyor.

Bilgisayarın belleğinde iki boyutlu bir char dizisi kuruyorum. Oyun karakterleri (yaratıklar filan, char'lar değil :D) birer karakter oluyorlar ve bu iki boyutlu düzlemde bulunuyorlar.

Oyun adım adım ilerledikçe o iki boyutlu düzlem standart çıkışa satır satır yazdırılıyor. Eski görüntü de ekranda duruyor ama yeni satırlar alttan geldikçe eskileri yukarıya doğru kayboluyorlar. Eğer pencere büyüklüğünü tam bir düzlem büyüklüğüne getirirsek satırların kaydıkları bile anlaşılmadan oyun "görsel" bir şekilde ilerliyor.

Tabii tuşlara basarak oynamak istediğimizde yine de olmaz, çünkü o işi konsolda halledebilmek için ncurses gerekiyor. Yine de, kendi akılları olan yaratıklar oluşturmak için yeterli olabilir. Örneğin yaratıklar düzlemde rastgele dolaşırken karşılaştıklarında ne olacağına oyun mantığı karar verir.

İyi bir fikir mi? Gerekirse kod da gösterebilirim.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 09, 2010

En alt düzeyde, yalnızca iki boyutlu karelerden oluşan bir OyunTahtası düşünülebilir. Onun görevi, karelerin değiştirilmesini sağlamak ve istendiğinde tahtayı ekrana çizmek olabilir.

import std.stdio;

class OyunTahtası(int büyüklük)
{
   dchar[büyüklük][büyüklük] kareler;

   this()
   {
       foreach (ref satır; kareler) {
           foreach (ref kare; satır) {
               kare = '.';
           }
       }
   }

   void değiştir(int satır, int sütun, dchar kare)
   in
   {
       assert((satır >= 0) && (satır < büyüklük));
       assert((sütun >= 0) && (sütun < büyüklük));
   }
   body
   {
       kareler[satır][sütun] = kare;
   }

   void çiz()
   {
       foreach (satır; kareler) {
           foreach (kare; satır) {
               write(kare);
           }
           writeln();
       }
   }
};

void main()
{
   auto tahta = new OyunTahtası!8;

   tahta.değiştir(1, 5, 'X');
   tahta.çiz();
}

Onu kullanan bir RiskOyunu düşünülebilir. Veya, bir RiskTahtası olabilir. OyunTahtası'nın bildiğinden daha fazlasını bilebilir. Düşünülebilir... :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]