Bu proje, Windows Presentation Foundation kullanılarak geliştirilmiş, OOP prensiplerine dayalı temel bir çizim uygulamasıdır. Klasik MS Paint'in temel işlevlerini barındırır ve kod mimarisi olarak Strategy Design Pattern kullanılarak tasarlanmıştır.
- Mimari Desen: IDrawStrategy arayüzü ile Strategy Design Pattern uygulanmıştır. Bu sayede yeni çizim araçları (üçgen, yıldız vb.) koda dokunmadan kolayca eklenebilir.
- Undo/Redo Mekanizması: Yapılan her işlem Stack<List> yapısında tutularak sınırsız geri ve ileri alma imkanı sunar.
- Görüntü İşleme: RenderTargetBitmap kullanılarak çizimler yüksek çözünürlüklü .bmp formatında kaydedilebilir.
- Araçlar: Kalem, Dikdörtgen, Elips, Metin Ekleme ve Dinamik Silgi.
Kurumsal bir yapı simülasyonu olan bu projede OOP'nin 4 temel prensibi (Encapsulation, Abstraction, Inheritance, Polymorphism) uygulanmıştır.
- Soyutlama: Employee abstract class'ı üzerinden Manager, Developer ve Intern sınıfları türetilmiştir.
- Arayüzler: IReportable ve ITrainable arayüzleri ile rollerin yetenekleri ayrıştırılmıştır.
- Veri Doğrulama: Property set blokları içerisinde yaş ve isim kontrolü yapılarak ArgumentException fırlatılmaktadır.
Gelişmiş hata yönetimi ve performans odaklı bir kelime oyunudur.
- Veri Yapıları: Tahmin edilen harfler HashSet içerisinde tutularak O(1) zaman karmaşıklığında kontrol sağlanır.
- Sorumlulukların Ayrılması: KelimeYoneticisi, OyunDurumu ve GirisKontrolcusu gibi sınıflarla clean code prensipleri uygulanmıştır.
Bu algoritma, Doubly Linked List mantığıyla implement edilmiştir.
- Algoritma Mantığı: Yığındaki en büyük elemanı bulup Flip operasyonuyla en üste, ardından ait olduğu en alta taşıma prensibiyle çalışır.
- Düğüm Yapısı: PancakeNode sınıfı ile bellekte manuel düğüm yönetimi yapılmıştır.
Veri yönetimi ve koleksiyon kullanımına odaklanmıştır.
- Koleksiyonlar: Dinamik malzemeler için List, sabit kategoriler için string[] kullanılarak farklı veri saklama yöntemleri sergilenmiştir.
Kullanıcı etkileşimi ve giriş doğrulama üzerine kuruludur.
- Güvenlik: double.TryParse ile hatalı girişlerin programı çökertmesi engellenmiş, "Sıfıra Bölme Hatası" mantıksal olarak yakalanmıştır.
- Projeyi yerel makinenize klonlayın:
git clone https://github.com/Rabianur1/CSharp.git
- CSharp.sln dosyasını Visual Studio ile açın.
- Sağ taraftaki Çözüm Gezgini (Solution Explorer) üzerinden çalıştırmak istediğiniz projenin üzerine sağ tıklayın.
- "Başlangıç Projesi Olarak Ayarla" seçeneğini işaretleyin.
- F5 tuşuna basarak uygulamayı başlatın.