Bu proje, React Native ve Expo kullanılarak geliştirilmiş, çok oyunculu kelime oyunudur. Scrabble benzeri oyun mekaniği ile kullanıcılar gerçek zamanlı olarak birbirleriyle kelime yarışması yapabilir.
- Çok Oyunculu Oyun: Firebase ile gerçek zamanlı çok oyunculu oyun
- Eşleşme Sistemi: Farklı süre seçenekleri ile rakip arama
- Kelime Doğrulama: Türkçe kelime sözlüğü ile kelime kontrolü
- Puan Sistemi: Harf değerleri ve özel alan bonusları
- Kullanıcı Profili: Kazanma oranı ve oyun geçmişi takibi
- Farklı Zaman Modları: 2 dakika, 5 dakika, 12 saat, 24 saat
- 15x15 karelik oyun tahtası
- Özel alanlar:
H²veH³: Harf puanını 2x ve 3x katına çıkarırK²veK³: Kelime puanını 2x ve 3x katına çıkarır★: Merkez kare (başlangıç noktası)
Türkçe alfabeye göre harf dağılımı:
- A: 12 adet (1 puan)
- E: 8 adet (1 puan)
- K, N, R, T: 5-6 adet (1 puan)
- Joker (*): 2 adet (0 puan)
- Her harfin kendine özel puanı vardır
- Özel alanlar puan çarpanları sağlar
- Geçerli kelimeler Türkçe sözlükten kontrol edilir
- React Native: Mobil uygulama geliştirme
- Expo: Geliştirme ve deployment platformu
- TypeScript: Tip güvenliği
- Expo Router: Navigasyon yönetimi
- Firebase Authentication: Kullanıcı kimlik doğrulama
- Firebase Firestore: Gerçek zamanlı veritabanı
- Real-time Updates: Oyun durumu senkronizasyonu
- Kelime Doğrulama: Türkçe kelime sözlüğü ile kontrol
- Hamle Validasyonu: Yasal hamle kontrolü
- Puan Hesaplama: Harf ve alan bonusları
- Node.js (v16 veya üzeri)
- npm veya yarn
- Expo CLI
- Firebase hesabı
-
Projeyi klonlayın
git clone [repository-url] cd kelime -
Bağımlılıkları yükleyin
npm install
-
Firebase yapılandırması
src/firebase/firebaseConfig.tsdosyasında Firebase yapılandırma bilgilerinizi ekleyin
const firebaseConfig = { apiKey: "your-api-key", authDomain: "your-auth-domain", projectId: "your-project-id", storageBucket: "your-storage-bucket", messagingSenderId: "your-messaging-sender-id", appId: "your-app-id" };
-
Uygulamayı çalıştırın
npm start
- Uygulama açıldığında kayıt ol veya giriş yap
- Kullanıcı adı ve şifre ile hesap oluştur
- Ana sayfadan "Yeni Oyun" seç
- Oyun süresini belirle (2dk, 5dk, 12sa, 24sa)
- Eşleşme bulunana kadar bekle
- Rakip bulunduğunda oyun başlar
- Sıran geldiğinde taşlarını tahta üzerine yerleştir
- Geçerli kelimeler oluştur
- Hamle yap ve puanını al
- Rakibinin hamlesi için bekle
- Aktif Oyunlar: Devam eden oyunları görüntüle
- Biten Oyunlar: Geçmiş oyunları ve sonuçları incele
- İstatistikler: Başarı oranını takip et
- Kullanıcı karşılama ekranı
- Başarı oranı gösterimi
- Oyun menüsü
- 15x15 oyun tahtası
- Harf çekme alanı
- Puan durumu
- Sıra göstergesi
- Süre seçenekleri
- Rakip arama durumu
kelime/
├── app/ # Sayfa bileşenleri
│ ├── index.tsx # Ana sayfa
│ ├── game.tsx # Oyun ekranı
│ ├── newgame.tsx # Yeni oyun
│ ├── matchmaking.tsx # Eşleşme
│ ├── activegames.tsx # Aktif oyunlar
│ └── completedgames.tsx # Biten oyunlar
├── assets/ # Varlıklar
│ ├── kelimeler.json # Türkçe kelime sözlüğü
│ └── images/ # Görsel varlıklar
├── components/ # Yeniden kullanılabilir bileşenler
├── src/firebase/ # Firebase yapılandırması
├── utils/ # Yardımcı fonksiyonlar
│ └── gameValidation.ts # Oyun doğrulama
└── constants/ # Sabit değerler
game.tsx: Ana oyun mantığı ve UIgameValidation.ts: Hamle doğrulama algoritmalarıfirebaseConfig.ts: Firebase bağlantı ayarlarıkelimeler.json: Türkçe kelime veritabanı
- Authentication: Firebase Auth
- Game State: Firestore koleksiyonları
- Real-time Updates: Firestore listeners
- Lazy loading ile hızlı başlangıç
- Optimized re-renders
- Efficient state management
- Kelime sözlüğü dosyası (
kelimeler.json) boş - güncellenmesi gerekiyor - Firebase yapılandırma bilgileri eksik
- Bazı animasyonlar optimize edilebilir
- Sesli bildirimler
- Daha zengin animasyonlar
- Sosyal medya paylaşımı
- Turnuva modu
- Arkadaş sistemi
- Günlük görevler
Bu proje özel bir projedir. Ticari kullanım için izin alınması gerekmektedir.
- Furkan - Geliştirici
- Ela - Kod geliştirme
Herhangi bir sorunuz için:
- GitHub Issues üzerinden bildirim yapabilirsiniz
- Geliştirici ile doğrudan iletişime geçebilirsiniz
Not: Bu README dosyası proje gelişimi sürecinde güncellenecektir. Kurulum ve kullanım talimatlarını takip ederken güncel sürümü kontrol etmeyi unutmayın.