尚未检测到更新。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