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.