Sunucu Olmadan Herkese Aynı Günlük Bulmaca Nasıl Verilir?
Nesim Razon, bağımsız Android geliştiricisi · 2026-11-10
Birçok bulmaca oyununda herkese aynı günlük meydan okuma gelir; böylece skorlarını arkadaşlarınla karşılaştırabilirsin. Bunun için bulmacayı dağıtan bir sunucu gerekir gibi görünür. Gerekmiyor. Kendi oyunlarımızda bunu nasıl yaptığımızı ve sınırlarını anlatıyoruz.
Fikir: bulmaca tarihin kendisi
Bilgisayar kendi başına gerçekten rastgele sayı üretemez. Rastgele sayı üreteci aslında bir tariftir: ona tohum denen bir başlangıç sayısı verirsin, o da rastgele görünen uzun bir dizi üretir. Önemli nokta şu: aynı tohum her seferinde birebir aynı diziyi verir.
Bütün hile bundan ibaret. Her telefon bugünün tarihini bir sayıya çevirip tohum olarak kullanırsa, her telefon aynı karıştırmayı, aynı parçaları ya da aynı yerleşimi kurar. Kimsenin bir şey göndermesi gerekmez. Tarih, herkesin zaten elinde olan ortak bir sır gibi çalışır.
Pratikte oyunlar ham tarihi tek başına kullanmaz. Aynı gün içindeki farklı bulmacalar birbirinin kopyası olmasın diye tarihi bulmaca türü ya da tahta boyutu gibi birkaç sayıyla karıştırırlar.
Oyunlarımız bunu gerçekte nasıl yapıyor
Cubbles yerel tarihi yıl, ay, gün biçiminde tek bir sayıya çevirir, örneğin 20261110, ve parçaların tohumu olarak kullanır. Her üçlü parça takımı; gün sayısından, takımın sırasından ve bir deneme sayacından başlayan bir üreteçle çekilir. Böylece günün ilk takımı hep aynıdır, ikincisi de, üçüncüsü de.
Cardles dağıtımlar için gün sayısını tohum alır. Oyundaki karıştırma kodu kendi küçük, taşınabilir rastgele üretecidir; aynı tohum her cihazda ve her Android sürümünde aynı dağıtımı versin diye böyle yazılmıştır. Oyun türü de takvimle döner, yani günlük meydan okuma dört farklı solitaire oyununu sırayla gezer.
Logiclings her gün üç bulmacalık bir paket kurar. Tohumu gün sayısını, bulmaca türünü ve boyutunu birleştirir; tür beş bulmaca çeşidi arasında döner, her çeşit düzenli aralıkla sıra gelir. Pentolings günlük döşeme bulmacasını gün sayısıyla orta zorluktaki sabit bir bölüm havuzundan seçer; günlük düşme turunda ise günden türetilmiş bir tohum kullanır.
Bu ayrıntıların hepsinin ortak noktası şu: günün sayısı bir sır değil, herkesin hesaplayabildiği bir girdi. Cardles bir adım daha gider. FreeCell günlüğü için gün sayısını sabit bir çarpanla karıştırıp numaralı klasik dağıtımlardan birine eşler. Klondike ve Spider dağıtımlarında tohum, günün sayısının on katına küçük bir sabit eklenerek bulunur.
Belirlenimli rastgelelik neden yeter
Belirlenimli demek, sonucun yalnızca girdilere bağlı olması demek. Aynı tohumdan başlayıp aynı adımlardan geçen bir karıştırma farklı çıkamaz. Bulmacayı kuran kod her telefonda aynıysa bulmaca da aynıdır.
Bu, iyi bir günlük bulmacanın işin büyük kısmının dağıtımda değil kurucuda olduğunu da gösterir. Cardles'ta örneğin bir dağıtım körü körüne kabul edilmez. Bazı dağıtımları kazanmak imkânsızdır; oyun günlük dağıtımı kontrol eder, tıkanıksa ya da kazanılamıyorsa sabit bir sırayla yakın bir sonraki tohumu dener. Her telefon aynı sırayı izlediği için hepsi aynı dağıtıma varır.
Cubbles de benzer bir şey yapar. Üç parçanın birlikte yerleştirilebilmesi gerekir; bu yüzden oyun tohumlu en fazla kırk deneme yapar ve işe yarayan ilkini kullanır. Bunun adalet açısından ne anlama geldiğine birazdan döneceğiz.
Bir oyunun günlük görevleri de aynı yoldan gelir. Cubbles her günün üç görevini yine gün sayısından üretir, yani görevler de herkese aynıdır ve hiçbir sunucu onları dağıtmaz.
Saat dilimleri: kimin gece yarısı?
Sunucu olmayınca yeni günün ne zaman başladığına karar veren tek bir saat de yok. Oyunlarımız kendi telefonundaki tarihi kullanır. Sidney'de yarın olmuşken Los Angeles'taki oyuncu hâlâ bugünün bulmacasındadır. İkisi de kendi takvimine göre doğrudur.
Tek bir oyuncu için bu en dostane seçim. Yeni bulmaca kendi gece yarında gelir, serin kendi günlerine göre ilerler. Bedeli, küresel bir günlük karşılaştırmanın biraz bulanık olması: iki kişi aynı anda farklı günlerin bulmacasını oynuyor olabilir.
Seri de aynı mantıkla hesaplanır. Seri, art arda yerel günleri sayar ve oyun bağışlayıcıdır: bugün henüz oynamadıysan gün bitene kadar dün seriyi hayatta tutar.
Aynı bulmaca, çoğunlukla
En katı anlamda tohumlu bir bulmaca ancak her adım yalnızca tohuma bağlıysa herkeste aynıdır. Cubbles bunun tam doğru olmadığı dürüst bir örnek. Her parça takımının yerleştirilebilir olduğunu denetleyen kontrol senin tahtanın durumuna bağlı. Bir deneme tahtana uymuyorsa oyun bir sonrakine geçer; yani iki oyuncu ara sıra farklı parça takımları görebilir. Çoğu zaman ilk deneme tutar ve herkes aynı parçaları görür; bu yüzden günlük oyunu herkes için değil, neredeyse herkes için aynı diye tarif ediyoruz.
Listeden seçilen bulmacalar için küçük bir uyarı daha var. Bir güncelleme bölüm listesini değiştirirse, belli bir günün seçimi de değişebilir. Farklı sürümlerdeki oyuncular birkaç gün farklı bulmaca görebilir.
Bunlar bilerek karar verilmesi gereken ayrıntılar. Ya bulmaca tohumdan başka hiçbir şeye bağlı olmaz ya da küçük bir farkı kabul eder ve bunu açıkça söylersin.
Cardles bu konuda daha sıkıdır: dağıtım yalnızca günün sayısına ve sabit bir deneme sırasına bağlıdır, oyuncunun yaptığı hamlelere bağlı değildir. Bu yüzden iki kişi aynı günün Cardles dağıtımını aynı kartlarla görür; fark ancak oyunu farklı oynamalarından doğar.
Hile, saat ve sunucusuzluğun bedeli
Sunucudan vazgeçmenin bedeli güvendir. Oyun telefondaki tarihe inanır. Saati değiştirirsen başka bir günün bulmacasını açabilirsin. Eğlence için oynanan, skorların dostça meydan okuma olarak paylaşıldığı bir oyunda bunu kabul edilebilir bir takas sayıyoruz. Her skoru denetleyen bir sunucu hesap, depolama ve insanların verisine özen gerektirir; üstelik bozulabilecek bir şey daha olur.
Liderlik tablosuna giden skorları uygulama bildirir. Kararlı biri oyunun kazanmadığı bir sayıyı gönderebilir ve uygulama bunu tamamen engelleyemez. Bu yüzden liderlik tablolarını ödüllü bir yarışma değil, arkadaşlar arasında bir oyun olarak görüyoruz.
Sen de bir tane yapacaksan, günlük bulmacanın hiçbir zaman neye bağlı olmaması gerektiğine baştan karar ver. Onu tohuma bağla, iki cihazın aynı sonucu verdiğini test et ve bulmacayı kuran kuralı dondur. Kurucuyu değiştirmek zorundaysan bunu sessizce değil günlüğün yeni bir sürümüyle yap; yoksa dünkü bulmaca artık tutmaz.
Sık sorulan sorular
Günlük meydan okuma için internet gerekir mi?
Oyunlarımızda gerekmez. Bulmaca telefonunda tarihten kurulur, çevrimdışı çalışır.
Başka ülkedeki arkadaşım bugün aynı bulmacayı alır mı?
Genellikle evet; ama yeni gün her oyuncunun kendi gece yarısında başlar, uzaktaki biri bir gün önde ya da geride olabilir.
Telefonun saatini değiştirerek hile yapılabilir mi?
Başka bir günün bulmacası açılabilir. Sunucu olmadığı için oyun telefonun tarihine güvenir; günlüğü dostça bir meydan okuma olarak görüyoruz.
Tohum nedir?
Rastgele sayı üretecinin başlangıç sayısı. Aynı tohum hep aynı diziyi verir; farklı cihazlar bulmacayı böyle aynı kurar.
Diğer yazılar
- Yüzlerce Bulmaca Bölümü Nasıl Üretilir ve Doğrulanır?
Mahjong Solitaire Tahtası Çözülebilir mi? Nasıl Garanti Ederiz
Mahjong Solitaire'in Tarihi ve Klasik Mahjong'dan Farkı- XOX Tarihi ve Çeşitleri: Çözülmüş Bir Oyunun Hikâyesi
- Deprem Büyüklüğü ile Şiddeti Arasındaki Fark Nedir?
- Deprem Öncesi, Sırasında ve Sonrasında Ne Yapılır? (AFAD)