Modern, animasyonlu ve tamamen Türkçe bir kelime arama bulmacası. Flutter ile geliştirildi — Web, Android ve iOS'ta çalışır.
🎮 Canlı Demo · 📱 Kurulum · 🛠 Teknik Detaylar
Puzzleton, harf ızgarasında gizlenmiş Türkçe kelimeleri parmakla sürükleyerek bulan bir bulmaca oyunudur. 6 farklı kategoride 68 kelime, 3 zorluk seviyesi, ipucu sistemi ve ses efektleri ile zengin bir oyun deneyimi sunar.
- Harf Izgarası — 10×10 ve 12×12 dinamik ızgara, kelimeler yatay, dikey ve çapraz yerleştirilir
- Sürükle & Bul — Parmakla veya fare ile sürükleyerek kelime seçme, 8 yönde arama
- 6 Kategori, 68 Kelime — Hayvanlar, Şehirler, Meslekler, Yiyecekler, Doğa, Spor
- 3 Zorluk Seviyesi — Kolay (3 dk, 6 kelime), Orta (2 dk, 10 kelime), Zor (1 dk, 14 kelime)
- Skor Sistemi — Kelime uzunluğuna göre puan, zorluk çarpanı, süre bonusu
- İpucu Sistemi — 3 hak, rastgele bir kelimenin harfini altın rengiyle vurgular
- Ses Efektleri — Web Audio API ile kelime bulma, ipucu, zafer ve süre dolma melodileri
- Animasyonlar — Kelime bulunca büyüme/küçülme efekti, ipucu hücreleri nabız animasyonu
- Skor Tablosu — Oyuncu adıyla skorlar kaydedilir, ilk 3'e altın/gümüş/bronz ikon
- Dark Theme — Turkuaz renk paletli modern Material Design 3 arayüz
- Oyuncu adını gir
- Zorluk seviyesini seç
- Izgarada gizlenmiş kelimeleri bul — parmağını/fareyi sürükle
- Bulunan kelimeler renkle vurgulanır ve listeden çizilir
- Takıldığında 💡 İpucu butonunu kullan
- Süre bitmeden tüm kelimeleri bul ve en yüksek skoru yap!
Gereksinimler: Flutter SDK 3.10+
# Repoyu klonla
git clone https://github.com/ckaemm/puzzleton.git
cd puzzleton
# Bağımlılıkları yükle
flutter pub get
# Web'de çalıştır
flutter run -d chrome
# Android'de çalıştır
flutter run
# Release build (web)
flutter build web --base-href "/puzzleton/"lib/
├── main.dart # Uygulama giriş noktası
├── theme/
│ └── app_theme.dart # Dark theme, turkuaz palet, Material 3
├── constants/
│ └── word_data.dart # 6 kategori, 68 Türkçe kelime
├── models/
│ ├── game_config.dart # Zorluk seviyesi yapılandırması
│ ├── placed_word.dart # Izgara kelime pozisyon modeli
│ └── player_score.dart # Skor modeli (JSON serialization)
├── services/
│ ├── grid_service.dart # Kelime yerleştirme algoritması
│ ├── game_manager.dart # Oyun durumu yönetimi (ChangeNotifier)
│ ├── score_service.dart # SharedPreferences ile skor CRUD
│ └── sound_service.dart # Web Audio API ses efektleri
├── screens/
│ ├── welcome_screen.dart # Oyuncu adı giriş ekranı
│ ├── home_screen.dart # Ana menü, zorluk seçimi
│ ├── game_screen.dart # Oyun ekranı
│ ├── result_screen.dart # Oyun sonu skor ekranı
│ └── leaderboard_screen.dart # Liderlik tablosu
└── widgets/
├── puzzle_grid.dart # İnteraktif harf ızgarası
├── word_list_panel.dart # Bulunacak kelime listesi
└── game_timer.dart # Geri sayım zamanlayıcı
Kelimeler 8 yönde (yatay, dikey, 4 çapraz) ızgaraya yerleştirilir. Uzun kelimeler önce yerleştirilir, çakışan harfler ortak kullanılabilir. Boş kalan hücreler rastgele Türkçe harflerle doldurulur.
GestureDetector ile onPanStart/Update/End olayları yakalanır. Sürükleme yönü en yakın 45°'ye snap edilir (yatay, dikey veya çapraz). GlobalKey ile ızgara pozisyonu hesaplanarak hangi hücrenin seçildiği belirlenir.
ChangeNotifier + ListenableBuilder pattern'i ile sıfır bağımlılık durum yönetimi. GameManager sınıfı oyun durumunu, zamanlayıcıyı, skoru ve ipucu sistemini yönetir.
dart:js_util ile doğrudan Web Audio API AudioContext → OscillatorNode → GainNode zinciri kurulur. Harici dosya veya paket gerektirmez. Her ses efekti nota dizisi olarak tanımlanır.
| Paket | Versiyon | Kullanım |
|---|---|---|
flutter |
SDK | UI framework |
shared_preferences |
^2.2.2 | Oyuncu adı ve skor kaydetme |
Dışarıdan sadece 1 paket — minimal bağımlılık prensibi.
Bu proje MIT Lisansı ile lisanslanmıştır.
Flutter ile ❤️ ile geliştirildi