MazeGame, bir labirentte karakterin sıralı komutlarla yönlendirilmesini sağlayan, kullanıcıyı hem oyun hem de yazılım mimarisi açısından düşünmeye teşvik eden bir .NET MVC projesidir. Bu projede, yazılım tasarım desenlerinden Interpreter ve Visitor örneklenerek uygulanmıştır.
Oyunun amacı, karakteri yönlendirerek:
- Canavarı öldürmek
- Anahtarı almak
- Kapıyı açarak kaçmak
gibi görevleri tamamlamaktır.
Oyuncu, Glade’de uyanır ve ilk talimatları alır. Oyun “Maze’e Gir” butonuyla başlar.
Labirent yapısı ve komut butonları burada yer alır. Komutlar sürüklenerek sıraya konur ve “ÇALIŞTIR 🚀” ile karakter hareket ettirilir.
Komutlar doğru uygulanmazsa karakter canavara yakalanabilir ya da anahtarı almadan kapıya ulaşabilir.
Tüm görevler tamamlandığında oyuncuya başarı mesajı gösterilir.
Aşağıda oyunun oynanış biçimi yer almaktadır. Bu örnek erpoyu clone eden kullanıcılara rehberlik etmesi amacıyla tasarlanmıştır.
Bu desen, kullanıcıdan gelen metin tabanlı komutların analiz edilip çalıştırılmasını sağlar. Projedeki örnek komutlar:
sağ
,sol
,yukarı
,aşağı
canavarı öldür
,anahtarı al
,kapıyı aç
Her komut, IExpression
arayüzünü uygular ve Interpret(Context)
metodu ile yorumlanır.
Visitor deseni ile karakterin farklı nesnelerle (canavar, anahtar, kapı vb.) etkileşimleri soyutlanır. Bu desen sayesinde:
- Nesneler üzerindeki işlemler (
VisitMonster
,VisitKey
,VisitDoor
) bir ziyaretçi nesne tarafından gerçekleştirilir. - Yeni etkileşimler eklemek kolaylaşır.
- ASP.NET MVC (.NET 9)
- HTML / CSS / JavaScript
- Interpreter & Visitor Design Patterns
- Repoyu klonlayın:
git clone https://github.com/ayseakbaba/MazeGame.git