• 30-12-2009, 14:18:20
    #1
    Üyeliği durduruldu
    Arkadaslar bir tez aldım bana yardımcı olursanız sevinirim, gui java kullanarak yapılacak bir ödev labirentin sonunda peynir olacak fare o peynire ulaşmaya çalışacak

    örneğin duvarla ve yol olacak bunları kutucuklarla oluşturabiliriz
    random değerler atıcak bunlar tabiki duvar yada yol olacak
    ekran çözünürlüğünü pc den alcak ona göre kutucukarı oluşturacak
    ilk kutucuk yol olmalıki fare labirente girebilsin
    fare yolu bulabilmek için yolların hangisi olduunu tespit edecek
    çıkmaz yola girdiğinde geri dönüp doğru yolu bulmaya çalışacak
    peynire ulaşabiliyorsa ulaşacak ulaşamıyorsa ulaşamıcak
    ama gidebildiği kadar gidecek fare ve bunuda ekranda gösterecek mesela gittiği yolları kırmızı kutu yapacak

    Yardımlarınız bekliyorum nasıl yapabilirm yol gösterirseniz sevinirim
  • 17-01-2010, 07:50:57
    #2
    kullanıcıdan satır ve sütun sayısını istersin. örneğin 10 a 10 luk bir alanımız olsun. 10 a 10 luk bir matris oluşturalım ve bu matrisin elemanlarının tüm değerleri 0 olsun. yani hepsi duvar olsun.

    ilk olarak labirent oluştur adlı bir class yazman lazım. bu class alanımıza bir adet labirent oluşturacaktır. peki labirenti nasıl oluşturabilirsin? labirenti ister kullanıcıdan başlangıç noktası alarak istersen de kendin 1 ile 10 arasında random bir sayı üreterek labirente başlayabilirsin. labirenti oluşturmaya başladığında her oluşturduğun bir birimlik parçanın matristeki değerini 1 yapmalısın. böylece burasının yol olduğu anlaşılacak.

    yolu nasıl oluşturacaksın? yolu ise 3 seçenekte oluşburabilirsin.

    1) bulunduğun noktadan +x yönünde hareket edebilirsin.
    2) bulunduğun noktadan +y yönünde hareket edebilrisin
    3) bulunduğun noktadan -y yönüde hareket edebilirsin. bulunduğun noktanın x değeri 10 olduğunda ise son noktayı 2 yaparsın. 2 de peynirimiz olsun. böylece peynire ulaşmış oluruz.

    şimdi bu labirentin en kısa doğru yolu. bize yanlış yollar da lazım anladığım kadarıyla. şimdi yanlış yol üret fonksiyonu ile kafana göre labirentin istediğin parçasından itibaren yanlış yollar üretmen lazım. herhangi bir başlangıç noktasını fonksiyona atarak yanlış yollar üretebilirsin. bu noktada dikkat etmen gereken şey yanlış yolda -x yönü de olabilecektir.

    labirenti oluşturduğumuza göre şimdi fareyle ilgilenelim. farenin başlangıç noktasına koyalım. git fonksiyonu yapman lazım birtane. git fonksiyonunda random i1 g1 y1 a1 gibi 4 değer üreterek fareni ilerletmeye çalışmalısın. örneğin ilk random değerde i1 çıktı. ileri 1 adım gitmeli. eğer bir sonraki parça 0 değilse yani duvar değilse şimdiki konumu bir ilerletebilirsin.

    bu basit bir algoritma tabiki. eksikleri var. örneğin farenin çıkmaz yol olduğunu anlayıp geri dönmesi lazım girdiği çıkmaz yola birdaha girebilir. geri dönmesi gerekirken hala ileri gitmeye çalışabilir. ben sadece sana fikir olsun diye yazdım.

    zaten daha ilerisi yapay zekaya giriyor. ne kadar yapay zeka üretmen gerekiyor orasını bilmiyorum.

    kolay gelsin.