Kayan bulmaca çözücü, çözülebilir herhangi bir başlangıç konumu verildiğinde hedefe götüren bir hamle dizisi üreten programdır. İki kitlesi olan bir araçtır: takılıp kalan oyuncular ve kayan bulmaca uygulaması yayınlaması gereken geliştiriciler.
İki kitle birbirinden çok farklı şeyler ister.
Oyuncuların neden neredeyse hiç çözücüye ihtiyacı yok
Bir kayan bulmacada takıldıysanız, dürüst çare genellikle "çözücü çalıştırmak" değildir. Şu üçünden biridir:
- Satır-sütun yöntemini öğrenin. Pes eden oyuncuların çoğu, standart stratejiyi hiç öğrenmemiş oyunculardır. (8 bulmacasıyla başlayıp yukarı çıkın.)
- Bulmacanın çözülebilir olduğunu doğrulayın. Ne yaparsanız yapın çözüm bulamıyorsanız, uygulama yanlışlıkla çözülemez bir tahta üretmiş olabilir. Hızlıca kontrol edilebilir.
- Tam çözüm değil, ipucu kullanın. Sıradaki tek hamle sizi çözmek için genellikle yeterlidir. İpucu sunan uygulamalar (bizimki Premium'da sunuyor) genellikle tüm çözümü değil, istek üzerine tek hamleyi hesaplar.
Tam bir çözüm size nadiren yararlı bir şey öğretir, çünkü çözücü optimal bir dizi üretir — zor bir 15 bulmacası için genellikle 52 hamle — ve telefonda vınlayarak akan 52 optimal hamleyi izlemek sezgi geliştirmez.
Doğru birim ipucudur. İpucuna ihtiyacınız varsa, çözücüye ihtiyacınız yok demektir.
Geliştiricilerin neden her zaman ihtiyacı var
Kayan bulmaca uygulaması yapmak, birkaç söze bağlanmak demektir:
- Her bulmaca çözülebilir.
- Her bulmaca aşağı yukarı belirli sayıda hamle sürer (zorluk kalibrasyonu).
- Her bulmaca istek üzerine ipucu üretebilir.
Bu sözlerin hiçbiri, arka planda çalışan bir çözücü olmadan dürüst değildir.
Yapısal olarak çözülebilir üretim, üretim sırasında çözücü çalıştırmayı gerektirmez: hedef durumdan geriye doğru rastgele geçerli hamleler uygulayarak yürürseniz, başlangıç konumunun çözülebilir olduğunu garanti edersiniz. Bizimki dahil çoğu uygulama tam olarak bunu yapar.
Zorluk kalibrasyonu, bulmacanın "ilginç" olmasını ister — ne bayat (zaten büyük ölçüde çözülmüş bir tahta) ne de yorucu (3×3'te 60 hamle isteyen bir tahta). Standart numara, hedeften optimal uzaklığa yakın düşecek kadar geri hamle uygulamaktır — 3×3 için tipik olarak 20–30, 4×4 için 40–60. Çözücü, üretimden sonra mesafeyi doğrular.
İpuçları, birkaç yüz milisaniyede iyi bir sonraki hamle üretebilen bir çözücü gerektirir. Bu, tam optimal çözümden hızlıdır ama yine de gerçek algoritma emeği ister.
Ne tür bir çözücü
Seçim tahta boyutuna bağlıdır:
| Tahta | Önerilen algoritma | Çözüm süresi |
|---|---|---|
| 3×3 | A* + Manhattan | < 1 ms |
| 4×4 | IDA* + yürüme mesafesi | 10 ms – 1 sn |
| 5×5 | IDA* + 5+5+5+9 örüntü veritabanı | 100 ms – dakikalar |
| 6×6 | IDA* + daha büyük örüntü veritabanı | saniyeler – saatler |
3×3 için kaba kuvvet BFS bile yeter. 4×4'te gerçek bir sezgisel gerekir; Manhattan mesafesi 1980'lerden beri standarttır. 5×5'te örüntü veritabanları gerekir. 6×6'da artık araştırma yapıyorsunuz demektir.
Algoritma ayrıntılarını 15 bulmacası çözücü rehberinde ve 8 bulmacası çözücü rehberinde işliyoruz. Algoritma karşılaştırması için kayan bulmaca çözücü sayfasına bakın.
Cihaz içi mi, sunucu tarafı mı
Çözücü içeren mobil uygulamaların iki uygulama seçeneği vardır: cihazda çalıştırmak ya da sunucuya sormak.
Cihaz içi, gizliliğe saygılı bir uygulama için daha dürüst seçimdir. Çözücü birkaç yüz satır koddur, 4×4 için örüntü veritabanları birkaç megabayta sığar ve modern bir telefon herhangi bir 15 bulmacasını bir saniyenin çok altında çözer. Bulmaca durumunu sunucuya göndermenin hiçbir gerekçesi yoktur — ve göndermemek, sakin bir telefon oyununu çalışmak için telemetriye muhtaç olandan ayıran şeylerden biridir.
Sunucu tarafı, geliştirici kullanıcıların hangi bulmacalarda takıldığını izlemek ya da zorluk eğrilerinde A/B testi yapmak istediğinde kullanılır. Bunlar gerçek ürün gerekçeleridir, ama gizlilik bedeli ve ağ bağımlılığıyla gelirler. Bulmacayı çevrimdışı çözemeyen uygulamalar, uçakta çalışmayan uygulamalardır.
Slide Puzzle tamamen cihazda çözer. 4×4 için örüntü veritabanı yaklaşık 6 MB'tır ve uygulama paketinin içinde durur. İpucu düğmesi onu doğrudan kullanır. Telefonu hiçbir istek terk etmez.
Pragmatik bir not
Buraya "tahtamı yapıştırayım, cevabı söylesin" diye bir çözücü sitesi aramaya geldiyseniz — evet, öyleleri var ve genellikle web tabanlı 8 bulmacası çözücüleridir. 3×3 için gayet iyidirler. 4×4 ve üzeri için kullanıcı deneyimi hantaldır: 16 sayı girmek, 50 hamlelik bir dizi izlemek, sonra fiziksel tahtada 50 belirli hamleyi uygulamaya çalışmak. Bundan kimse keyif almaz.
Kayan bulmaca çözücünün gerçekçi kullanımları şunlardır:
- Kendi kod uygulamanızı doğrulamak.
- Test tahtalarından oluşan bir korpus üretmek.
- Uygulamanın içinde ipucu hesaplamak.
Bunların dışında, satır-sütun yöntemini öğrenmek daha hızlıdır.