Otonom Hazine Avcısı projesinde, otonom hareket eden bir karakterin, içerisinde çeşitli hazineler ve engeller bulunan bir harita üzerindeki hazineleri topladığı bir oyun tasarladık. Oyunun teması arısı kış yarısı yaz olacak şekilde ayarlandı. Nesneler hiyerarşik bir düzende yerleştirilmektedir. Oyunda amaç, karakterin tüm hazineleri en kısa sürede toplamasını sağlamaktır. Bunun için en kısa yol algoritmaları kullandık.
C# dilinde yazdığımız bu projeyi Visual Studio Windows Form’da geliştirdik. Projenin isterlerine göre karakterimiz ve diğer tüm nesneler harita her yeni oluşturulduğunda random yerlere atanmaktadır. Oyun başlatıldığında karakterimiz en kısa yolu kullanarak sandıkları toplamaktadır. Her sandık toplandığında listBox1 de konumları yazdırılmaktadır. Bütün sandıklar toplandığında oyun sonlanmaktadır. Projenin ana isterleri şunlardır:
- Oyun haritasını istenen ölçüde başlatma,
- Yeni harita oluştur ve Başlat butonlarının olması,
- Her yeniden başlatıldığında yarısı yaz yarısı kış temalı harita oluşturma,
- Bütün nesnelerin rastgele konumlarda yerleştirilmesi,
- Nesnelerin rastgele yerleşimi sırasında çakışmaması,
- Kuş ve arının hareket edeceği yerlerin kırmızı renkli olması
- Karakter hareket ettiğinde geçtiği yolların yeşil renkli olması
- Karakterin sandıkları en kısa yol algoritmasıyla bulması,
- Sandıklar toplandığında konumlarının yazdırılması.
Projemizi çalıştırdığımızda oyun penceresine geçebilmek için bir giriş ekranı açılıyor. Bu ekranda yer alan Maceraya Atıl butonuyla asıl oyun ekranına geçiyoruz.
Açılan yeni ekranda haritanın boyutunu kullanıcının girmesi gerekiyor. Harita boyutu girildikten sonra Yeni Harita Oluştur butonuna tıklanıp oyun için bir harita oluşturuluyor.
Kullanıcının girdiği boyut ölçüsünde oyun haritası oluşturulup nesnelerin tamamı çakışmayacak şekilde random atanma yapılıyor. Ardından Başlat butonuna basıldığında oyun başlamakta olup karakter en kısa yol algoritmasıyla sandıkları bulmaya başlıyor. Karakter otonom hareketini tamamladığında oyun bitiyor.