Bu proje, Genshin Impact oyun içi istatistiklerini ve karakter verilerini işlemek, analiz etmek ve karakterlerin vereceği hasar çıktılarını simüle etmek amacıyla geliştirilmiş iki farklı modülden (Web Arayüzü ve CLI/Terminal) oluşan bir geliştirici aracıdır.
Proje, yazılım mühendisliği stajı kapsamında hem API entegrasyonu, hem veri ayıklama (parsing) hem de veri görselleştirme (dashboard) pratiklerini bir arada sunar.
Proje ana dizininde iki temel fonksiyonel script barındırır:
Tarayıcı üzerinden çalışan, kaydırıcılar (slider) ve dinamik butonlar içeren modern web arayüzüdür.
- Ne İşe Yarar? Kullanıcının karakter statlarını (Temel/Bonus Atak, Kritik Oranı, Kritik Hasar, Element Bonusu) canlı olarak manipüle ederek verilecek anlık düz hasarı, kritik hasarı ve uzun vadeli savaş senaryolarındaki Ortalama Beklenen Hasarı (Expected Damage) hesaplar.
- Canlı Yayın: Proje internete açık olup Genshin Damage Calculator adresinden test edilebilir.
Herhangi bir dış kütüphaneye veya grafik arayüze ihtiyaç duymadan, doğrudan terminal üzerinden çalışan arka plan (backend) motorudur.
- Ne İşe Yarar? Kullanıcıdan interaktif olarak karakter verilerini (Beyaz ve yeşil stat sayıları, kritik çarpanları) talep eder, girdileri temizler ve resmi oyun mekaniği formüllerini işleterek terminale detaylı bir analiz raporu döker.
Projenin yerel bilgisayarda çalıştırılması için aşağıdaki adımların izlenmesi gerekir. İlk olarak sanal ortamınızı (virtual environment) aktif hale getirin:
source .venv/bin/activate
Web arayüzünün çalışması için gerekli olan paketleri yükleyin:
pip install -r requirements.txt
* Web Arayüzünü Başlatmak İçin (app.py):
streamlit run python-miniprojeler/app.py
* Terminal Modunu Başlatmak İçin (hoyolab_sorgu.py):
python python-miniprojeler/hoyolab_sorgu.py
Simülasyon ve Hasar Matematiği
Her iki scriptin de arkasında çalışan ve resmi oyun mekaniklerinden uyarlanan hasar formülasyonu şu şekildedir:
Toplam Saldırı Gücü: Toplam ATK = Temel Saldırı + Bonus Saldırı
Element Gücü Etkisi: Düz Hasar = (Toplam ATK * Yetenek Oranı) * (1 + Element Bonusu)
Kritik ve Şans Çarpanı: Ortalama Hasar = Düz Hasar * (1 + (Kritik Oranı * Kritik Hasar))
💡 Analitik Yaklaşım: Kritik vuruşlar anlık olarak devasa sayılar görmenizi sağlasa da, Kritik Oranınız düşükse karakteriniz çoğunlukla düz vuracaktır. Hesaplanan Ortalama Beklenen Hasar, karakterin uzun vadeli rotasyonlardaki gerçek efektif gücünü gösterir.
🛠️ Teknik Özellikler
Programlama Dili: Python 3.13+
Arayüz Çatısı: Streamlit Framework
Veri Yapıları: Python Dictionaries (JSON uyumlu dinamik stat modelleri)
👤 Geliştirici Bilgileri
Geliştirici: Gökçen Kayra Ünver