Forum: Ders Arası RSS
Yapay Zeka Olusturmak
tonk #1
Üye Tem 2010 tarihinden beri · 19 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Yapay Zeka Olusturmak
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..
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.

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? ;))

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.

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
tonk #3
Üye Tem 2010 tarihinden beri · 19 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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.
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
tonk #5
Üye Tem 2010 tarihinden beri · 19 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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.
acehreli (Moderatör) #6
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
Mengu (Moderatör) #7
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #2
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. :)
http://www.mengu.net - some kind of monster
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-22, 07:01:51 (UTC -08:00)