尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Altı sayı, dört işlem, tek hedef. Beş farklı rakam (1–9) ve bir iki basamaklı sayıyla (10–99) üç basamaklı hedefe (100–999) ulaşmaya çalıştığın matematik oyunu.
Modlar
Oyun bittiğinde en kısa çözüm gösterilir (tüm olasılıkları tarayan çözücü, Web Worker'da çalışır).
| Fark (en iyi olası sonuca göre) | Yakınlık puanı |
|---|---|
| Tam isabet | 100 |
| 1 | 80 |
| 2 | 70 |
| 3–5 | 60 |
| 6–10 | 45 |
| 11–20 | 30 |
| 21–50 | 15 |
| 51+ | 0 |
Hız bonusu (tek başına, günün sorusu): en yakın sonuca ilk 10 saniyede ulaşıldıysa yakınlık puanının %25'i eklenir (en fazla 125 puan); bonus 2. dakikanın sonunda doğrusal olarak sıfıra iner. Süre ayarından bağımsızdır: aynı hız her ayarda aynı bonusu getirir. Bonus yakınlık puanıyla orantılı olduğu için hızlı ama uzak bir sonuç, yavaş ama tam bir sonucu geçemez.
En iyi olası sonuç: soruların ~%99'unda hedef tam olarak bulunabilir; bulunamadığında fark, çözücünün bulduğu en iyi sonuca göre hesaplanır. En iyi sonuç her zaman sınırsız işlemle hesaplanır; işlem hakkı seçen oyuncu kendine zorluk koyar, kolay puan almaz.
Karşılıklı modlar: hız bonusu yerine tur sırası bonusu eklenir. Sıra önce farka, fark eşitse süreye göredir: 1. +25, 2. +15, 3. +10, diğerleri +5 (yakınlık puanı alanlar). Toplam puan eşitse daha çok tur kazanan öne geçer.
Anonim oyuncular: Google hesabı olmadan "Anonim kaydet" seçen oyuncunun ya da Hesap'tan anonim moda geçen Google kullanıcısının skorları privateScores koleksiyonunda tutulur. Kurallar gereği bu kayıtları yalnızca sahibi okuyabilir; anonim oyuncu sıralamada yalnızca kendini görür. Anonim moda geçince geçmiş skorlar da herkese açık sıralamadan taşınır. Anonim hesap Google'a bağlanınca kimliği ve skorları korunur.
Sıralama: varsayılan ölçüt, her oyuncunun dönemdeki en iyi 20 oyununun toplamı. Toplam, ortalama, rekor ve oyun sayısına göre de sıralanabilir. Ekim 2026'daki bu değişiklikten önce kaydedilen skorlar da sıralamada sayılmaya devam eder.
Gereksinim: Node.js 20.19+ (22 önerilir).
npm install
cp .env.example .env # Firebase bilgilerini gir
npm run dev # http://localhost:3000
| Komut | Açıklama |
|---|---|
npm run dev | Geliştirme sunucusu |
npm run build | Tip denetimi + üretim derlemesi (build/) |
npm run preview | Derlemeyi yerelde sun |
npm test | Birim testleri (Vitest): oyun motoru, puanlama, çözücü, oda mantığı |
npm run e2e | Uçtan uca testler (Playwright) |
npm run emulators | Firebase Auth + Firestore emülatörleri (firebase-tools gerekir) |
npm run store:assets | Mağaza ekran görüntüleri, öne çıkan görsel ve simgeler (store/) |
Firebase ayarları olmadan da oyun (tek başına, günün sorusu, aynı cihazda) tamamen çalışır; giriş, sıralama ve çevrimiçi odalar gizlenir.
Emülatörle çalışmak: npm i -g firebase-tools, ardından npm run emulators. .env içinde REACT_APP_USE_EMULATORS=true yapıp npm run dev. Çevrimiçi oda testini de kapsayan uçtan uca testler için: E2E_EMULATORS=1 npm run e2e.
Kod düzeni:
src/game/ Saf oyun mantığı: kurallar, tur motoru, puanlama, çözücü, günün sorusu
src/components/ Tur oynatıcı, sonuç ve maç tabloları, ortak arayüz parçaları
src/screens/ Sayfalar (tek başına, günün sorusu, sıralama, karşılıklı, çevrimiçi oda)
src/services/ Firebase (tembel yüklenir)
src/state/ Ayarlar, oturum, ses, yerel istatistikler
e2e/ Playwright testleri
Vercel ayarları vercel.json içinde (Vite, çıktı klasörü build/, tek sayfa yönlendirmesi). Ortam değişkenleri eski adlarıyla (REACT_APP_FIREBASE_*) kullanılmaya devam eder.
firestore.rules içeriğini yapıştırıp Publish, ya da firebase deploy --only firestore:rules.
gameRooms kuralı bu dosyada bilerek yok: yeni sürüm rooms koleksiyonunu kullanıyor. Kurallar yayınlanınca gameRooms erişime kapanır; içindeki eski kayıtlar silinmez.privateScores) ve oyuncu tercihleri (profiles) yalnızca sahibine açıktır; listelenemez, başkası okuyamaz.rooms, players ve results koleksiyon grupları için expiresAt alanını seç. Odalar 24 saat sonra silinir.Google Play (Trusted Web Activity) ve App Store (WKWebView kabuğu) için adım adım rehber: docs/magazalar.md. Site çevrimdışı da açılır (pwa/sw.js); gizlilik politikası /gizlilik adresinde, hesap silme Hesap ekranında.
Yeni puanlama sistemiyle kaydedilen skorlar v: 2 alanı taşır ve sıralamada yalnızca bunlar listelenir; eski kayıtlar silinmez. Yeni kayıtlarda e-posta adresi saklanmaz.
MIT