Skip to content

About

KafadanTaktik

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

⚽ Kafadan Taktik

License: MIT React TypeScript Vite Tailwind CSS Security: 0 Vulnerabilities KVKK 2026 Uyumlu

21x13 saha üzerinde 20'li zar (d20) mekanikli, tur bazlı futbol taktik ve strateji oyunu. Masaüstü kutu oyunu derinliğini, rol yapma oyunlarının zar heyecanını ve modern futbol taktiklerini tek bir dijital platformda birleştirir.


📑 İçindekiler


🎲 Oyunun Amacı ve Konsept

Kafadan Taktik, futbolun taktik zekasını masaüstü strateji oyunlarıyla birleştiren tur bazlı bir futbol simülasyonudur:

  • Masaüstü Oyun Hissi: Kartlar, piyonlar ve zarların fiziksel deneyimini modern web teknolojileriyle buluşturur.
  • Rastlantısallık ile Taktik Dengesi: En iyi taktiği kursanız bile sahada şans ve risk faktörünü (d20) yönetmeniz gerekir.
  • Eşzamanlı Planlama: Taraflar hamlelerini planlar, ardından çözümleme fazında zarlar atılarak hareketler ve ikili mücadeleler netleşir.

✨ Öne Çıkan Özellikler

  • Taktiksel Derinlik: 21 hücre boyuna, 13 hücre enine ızgara saha üzerinde hassas pozisyon alma, pas kanallarını kapatma ve kademe anlayışı.
  • Zengin Oyuncu Rolleri: Pivot Forvet, Sahte 9, Çizgiye İnen Kanat, Libero Kaleci, Ağır Pasör Stoper gibi 19+ farklı futbolcu rolü.
  • Dinamik Zar Çözümlemesi: Aksiyon zorluğu + oyuncu niteliği + zar sonucu hesaplamaları ile gerçekçi futbol anları.
  • Yerel ve Çevrim İçi Mod: İster aynı ekranda arkadaşınızla karşılıklı, ister Firestore üzerinden çevrim içi lobi ile oynama imkanı.
  • Gizlilik ve Güvenlik Odaklı: Sıfır iz sürücü, 2026 Türkiye KVKK regülasyonlarına tam uyumlu ve sıfır bağımlılık zafiyeti.

🧠 Temel Oyun Mekanikleri

21x13 Taktik Izgara Saha

Saha X: 0..20 ve Y: 0..12 koordinatlarında 273 kareden oluşur:

  Y^
  12 ┌───────────────────┬───────────────────┐
     │  Sol Kanat (0,12) │     Orta Saha     │  Sağ Forvet
     │                   │                   │
   6 ├[KALE BEYAZ]───────┼──────(10,6)───────┼───────[KALE SİYAH]┤
     │                   │     (Başlama)     │
   0 └───────────────────┴───────────────────┘
     0 ───────────────── 10 ──────────────── 20 ──> X
  • X (0-20): Hücum ve savunma derinliği (Kale çizgileri: X=0 ve X=20).
  • Y (0-12): Saha genişliği (Merkez çizgisi: Y=6).

D20 (20 Yüzlü Zar) Sistemi ve Başarı Dilimleri

Tüm kritik aksiyonlarda (Şut, Pas, Müdahale, Top Çalma) d20 zarı atılır. Atılan zar ve oyuncu niteliği toplanarak aksiyonun başarı derecesi belirlenir:

Zar Aralığı Başarı Seviyesi Etki / Sonuç
1 - 5 🔴 Zayıf (Weak) Hatalı pas, top kaybı, auta giden şut veya faul riski.
6 - 10 🟡 Orta (Medium) Hedefe yakın ancak rakip tarafından bloklanabilir hamle.
11 - 15 🟢 İyi (Good) İsabetli pas, tehlikeli şut, başarılı top kapma.
16 - 20 🟣 Mükemmel (Excellent) 90'a giden şut, savunmayı yaran ara pası, kusursuz müdahale.

Oyuncu Nitelikleri ve Rolleri

Her oyuncunun 1 ile 20 arasında değişen 6 temel niteliği bulunur:

  1. Hız (HIZ): Bir turda kat edebileceği maksimum hücre mesafesi.
  2. Güç (GÜÇ): Omuz omuza mücadeleler ve kafa toplarındaki direnç.
  3. Teknik (TEK): Top saklama ve çalım atma başarısı.
  4. Pas (PAS): Uzun/kısa pasların hedefe ulaşma hassasiyeti.
  5. Şut (ŞUT): Kaleye vurulan şutların isabeti ve gol olma olasılığı.
  6. Savunma (SAV): Rakip atağı kesme, top kapma ve yer tutma yeteneği.

Aksiyon Tipleri

  • HAREKET ET (MOVE): Oyuncunun hız değerine bağlı olarak boş bir kareye ilerlemesi.
  • PAS AT (PASS): Topa sahip oyuncunun takım arkadaşına topu aktarması (d20 + Pas vs Mesafe & Rakipler).
  • ŞUT ÇEK (SHOOT): Belirli menzilden kaleye yönelen vuruş (d20 + Şut vs Kaleci Kurtarışı).
  • TOP SÜR (DRIBBLE): Rakibin baskı bölgesinde topu kontrol ederek ilerleme.
  • MÜDAHALE ET (TACKLE): Rakip oyuncunun ayağındaki topa hamle yapma (d20 + Savunma).
  • BEKLE (WAIT): Pozisyonunu ve dengesini koruma.

Maç Aşamaları (Fazlar)

  1. İnisiyatif (Kura): Karşılıklı d20 atışı ile oyuna başlama hakkı belirlenir.
  2. Kadro Seçimi (Draft): Havuzdan dengeli 11 oyuncu seçimi yapılır.
  3. Saha Yerleşimi (Placement): Oyuncular taktik formasyona göre sahaya dizilir.
  4. Taktik Planlama: Her iki takım o tur yapacağı hamleleri gizlice planlar.
  5. Çözümleme (Resolution): Zarlar atılır, hamleler sırayla gerçekleşir ve sonuçlar kütüğe (Game Log) yazılır.
  6. Skor & Kutlama: Gol olduğunda kutlama animasyonu tetiklenir ve santra ile devam edilir.

🆓 Özgür Yazılım ve Ücretsiz Kullanım İlkesi

Bu proje "Free & Open-First" (Özgür ve Ücretsiz Öncelikli) mimari ilkeleriyle geliştirilmiştir:

  • Sıfır Lisans Maliyeti: MIT Lisansı altında herkes tarafından incelenebilir, çatallanabilir ve çalıştırılabilir.
  • Ücretli Servis Bağımsızlığı: Harici ücretli API'ler, paralı veritabanı eklentileri veya zorunlu ödeme duvarları (paywall) içermez.
  • Yerel-Öncelikli (Local-First): Oyunun tüm temel mekanikleri tek bir tarayıcı sekmesinde, internet bağlantısı olmadan veya tamamen ücretsiz bulut katmanlarıyla (Firebase Spark/Free tier) çalışabilir.

🛡️ Bilgi Güvenliği ve Zafiyet Yönetimi (SAST)

Proje geliştirilirken Statik Uygulama Güvenliği Testleri (SAST) ve güvenli kodlama standartları uygulanmıştır:

1. Tedarik Zinciri Güvenliği (Dependency & Supply Chain Security)

  • npm audit Sıfır Zafiyet Politikası: Tüm üretim ve geliştirme bağımlılıkları düzenli olarak taranır; zafiyet barındıran paketler süratle güncellenir veya yamalanır.
  • Uygulanan Yamalar & Overrides:
    • qs kütüphanesindeki array-limit bypass zafiyeti için package.json overrides mekanizmasıyla güvenli sürüme sabitlenmiştir (^6.16.0).
    • source-map-js kütüphanesindeki DoS / indexed source-map section offsets (#8) zafiyeti ^1.2.2 sürümüne yükseltilerek giderilmiştir.
    • @grpc/grpc-js kütüphanesi güvenli ^1.14.0 sürümüne kilitlenmiştir.

2. İstemci Tarafı Güvenliği & XSS Koruması

  • HTML & Metin Sanitizasyonu: Kullanıcı girdileri, oyuncu adları ve sohbet alanları doğrudan DOM'a basılmaz; React'in sanal DOM kaçış mekanizmalarıyla işlenir.
  • Sır İfşası Engelleme: İstemci tarafında hiçbir gizli API anahtarı veya yetkilendirme sırrı tutulmaz; tüm yapılandırmalar genel (public) veya çevre değişkeni (VITE_) düzeyinde güvenli şekilde ayrıştırılmıştır.
  • Katı Tip Denetimi: tsc --noEmit ile derleme öncesi tip güvenliği kontrol edilir, tanımsız durum erişimleri engellenir.

🇹🇷 2026 Türkiye Mevzuatı ve KVKK Uyumluluğu

Kafadan Taktik, 6698 sayılı Kişisel Verilerin Korunması Kanunu (KVKK), 2026 güncel Kurul ilke kararları ve 5651 sayılı Kanun uyarınca tasarlanmıştır:

  1. Veri Minimizasyonu İlkesi (KVKK Madde 4):
    • Uygulama kullanıcıdan T.C. Kimlik Numarası, telefon, kesin konum veya hassas nitelikli kişisel veri talep etmez.
    • Kullanıcı profilleri takma ad (rumuz) ve oyuncu avatarı seçimlerinden ibarettir.
  2. Yerel Depolama (LocalStorage) ve Çerez Yönetimi:
    • Profil tercihleri ve oyun durumu kullanıcının kendi cihazında (localStorage) saklanır; merkezi bir sunucuda profil çıkarma veya üçüncü taraf reklam hedeflemesi amacıyla işlenmez.
  3. Açık Rıza ve Şeffaflık:
    • İletişim veya geri bildirim kanalları üzerinden paylaşılan bilgiler yalnızca ilgili talebin yanıtlanması amacıyla kullanılır; ticari elektronik ileti gönderimi için izinsiz kullanılmaz (6563 sayılı ETK uyumlu).
  4. Fikri ve Sınai Haklar (5846 Sayılı FSEK):
    • Projedeki tüm kodlar, kurallar ve taktik motoru özgün olarak tasarlanmış olup açık kaynak (MIT) lisanslıdır. Gerçek kulüp markaları veya lisanslı sporcu telifleri kullanılmamaktadır.

💻 Teknoloji Yığını

Katman Teknoloji / Kütüphane Açıklama
Arayüz & Çatı React 19 + TypeScript 5.8 Modern, hızlı ve tip güvenli bileşen mimarisi
Derleyici & Sunucu Vite 6.4 Hızlı HMR ve optimize edilmiş üretim derlemesi
Stil & Tasarım Tailwind CSS v4 Sıfır CSS şişkinliği, modern tasarım
İkon Seti Lucide React Hafif ve erişilebilir SVG ikonlar
Animasyon Motion (Framer Motion v12) Akıcı zar atışları ve aksiyon geçişleri
Çok Oyunculu / DB Firebase Firestore (İsteğe bağlı) Çevrim içi oda eşleşmesi ve gerçek zamanlı senkronizasyon

📁 Proje Mimarisi

kafadan-taktik/
├── src/
│   ├── components/            # UI ve Oyun Bileşenleri
│   │   ├── Pitch.tsx          # 21x13 Taktik saha render motoru
│   │   ├── DiceRollEffect.tsx # 3D/2D d20 zar animasyonu bileşeni
│   │   ├── PlayerCard.tsx     # Futbolcu nitelik ve rol kartı
│   │   ├── SquadDraftScreen.tsx # 11 seçimi ve kadro mühendisliği
│   │   ├── OnlineLobby.tsx    # Çevrim içi maç odaları ve eşleşme
│   │   ├── RulesModal.tsx     # Detaylı oyun kuralları kılavuzu
│   │   └── ProfileModal.tsx   # Kullanıcı takma adı ve tercihler
│   ├── data/                  # Varsayılan oyuncu havuzu, roller ve formasyonlar
│   ├── utils/                 # Taktik hesaplama, zar simülatörü ve yardımcı fonksiyonlar
│   ├── types.ts               # Katı TypeScript arayüzleri ve oyun tipleri
│   ├── App.tsx                # Ana oyun döngüsü ve faz yönetimi
│   ├── main.tsx               # Uygulama başlangıç noktası
│   └── index.css              # Tailwind CSS entegrasyonu
├── package.json               # Bağımlılıklar, scriptler ve güvenlik overrides
├── tsconfig.json              # TypeScript derleme ayarları
└── vite.config.ts             # Vite konfigürasyonu

🚀 Kurulum ve Yerel Çalıştırma

Projeyi yerel ortamınızda çalıştırmak için Node.js (v18+) ve npm gereklidir.

1. Depoyu Klonlayın

git clone https://github.com/kullanici-adi/kafadan-taktik.git
cd kafadan-taktik

2. Bağımlılıkları Yükleyin

npm install

3. Geliştirici Sunucusunu Başlatın

npm run dev

Uygulama varsayılan olarak http://localhost:3000 adresinde çalışmaya başlayacaktır.

4. Tip Kontrolü ve Derleme (Build)

# Tip kontrolü (SAST kontrolü)
npm run lint

# Üretim için derleme
npm run build

🤝 Katkıda Bulunma

Her türlü katkıya açığız! Lütfen aşağıdaki adımları izleyin:

  1. Bu depoyu çatallayın (Fork).
  2. Yeni bir özellik dalı açın (git checkout -b feature/harika-taktik).
  3. Değişikliklerinizi yapın ve güvenlik kontrollerini çalıştırın (npm run lint && npm audit).
  4. Değişikliklerinizi işleyin (git commit -m 'feat: Yeni pivot forvet varyasyonu eklendi').
  5. Dalınızı uzak depoya gönderin (git push origin feature/harika-taktik).
  6. Bir Pull Request (PR) açın.

📬 Öneri, İstek ve İletişim

Görüşleriniz, yeni kural önerileriniz veya hata bildirimleriniz için doğrudan iletişime geçebilirsiniz:

  • E-Posta: ersin@ozbucak.com.tr
  • Konu Başlığı Örneği: [Kafadan Taktik] Kural Önerisi / Hata Bildirimi

📄 Lisans

Bu proje MIT Lisansı kapsamında açık kaynak ve özgür yazılım olarak sunulmaktadır. Ticari veya kişisel amaçlarla özgürce incelenebilir, değiştirilebilir ve dağıtılabilir.

About

KafadanTaktik

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages