← Nesim Apps

Yüzlerce Bulmaca Bölümü Nasıl Üretilir ve Doğrulanır?

Nesim Razon, bağımsız Android geliştiricisi · 2026-11-10

300 ya da 400 bölümlük bir bulmaca oyununu elle çizmek aylar alır; çözülemeyen tek bir bölüm de oyuncunun güvenini bozar. Bölümleri bilgisayara kurduruyor, sonra her birinin çözülebildiğini kanıtlıyoruz. Bunun kendi oyunlarımızda nasıl çalıştığını anlatıyoruz.

İki program: üretici ve çözücü

Üretilen hemen her bulmaca iki kod parçası ister. Üretici bir bölüm önerir: duvarların, taşların ya da ipuçlarının dizilişi. Çözücü bölümü kendi kendine oynar ve bitirilip bitirilemediğini, kaç hamlede bittiğini, bazen de kaç farklı yolla bittiğini bildirir.

İkisi arasında önemli olan çözücüdür. Üretici özensiz olabilir, çünkü ürettiği her şey kontrol edilir. Bir bölüm ancak çözücü çalıştığını doğrularsa oyuna girer. Oyunlarımızın birkaçında çözücü, bulmacanın ulaşabildiği her konumu gezen sade bir genişlik öncelikli aramadır; büyük bulmacada yavaştır ama küçük tahtada kesindir.

Çözücü, bir insan test uzmanının veremeyeceği bir şey de verir: bir sayı. En kısa çözümün uzunluğu bulmacanın ne kadar uzun olduğunun ölçüsüdür ve zorluğu değerlendirmenin başlangıç noktasıdır.

Çözülmüş tahtadan geriye doğru

Rastgele bir yerleşim tahmin edip çözülebilir olmasını ummak çok emek harcatır. Daha akıllı yol, bitmiş durumdan başlayıp hamleleri geri almaktır. Geriye attığın her adım tersten oynanmış yasal bir hamleyse ulaştığın konumun çözülebilir olması garantidir: hamleleri yeniden ileri oynamak yeter.

Beamies bu mantıkla tasarlandı. Üretici geriye doğru çalışarak çözülebilir bir aday kurar; çözücü de asıl olarak onun ne kadar zor olduğunu ölçmek için kullanılır. Nudgelings'in kutu itme modunda aynı fikir var: bölümleri oyunu tersten oynayarak, yani iterek değil çekerek üretir; böylece bölüm yapısı gereği çözülebilir. Kayan araç modu ise farklı bir yol izler: üretici, başlangıç yerleşimine bağlı tüm konumlara bakar ve çıkışlardan geriye doğru arar; bu da her konum için kesin en kısa çözümü tek seferde verir.

Geriye doğru çalışmak garanti verir ama iyi bir bulmaca vermez. Birkaç rastgele ters adımla yapılmış bölüm çoğunlukla fazla kolaydır. Ölçme tam burada devreye girer.

Zorluğu ölçmek

Zorluğun tek bir tanımı yok ama birkaç ölçüt iyi çalışır. En basiti en kısa çözümün uzunluğudur. Uzun olan genelde daha zor hissettirir; çünkü doğru yapılacak hamle ve hata yapılabilecek yer daha çoktur.

Beamies'te en az sürükleme sayısını, en ucuz çözümü bulan bir aramayla ölçüyoruz. Bölümlere bu sayı için bölüm numarasıyla yükselen bir hedef veriliyor; her dünyanın içinde hafif bir testere dişi var: zor bir bölümün ardından daha kolayı, dünyanın sonunda daha zoru. Nudgelings'in planı benzer. Kayan araç bölümleri başta yaklaşık 3 hamleyi, 20. bölüm civarında 10'u, 200 bölümün sonuna doğru 40'tan fazlasını hedefler; itme modunun itme sayısıyla ölçülen, daha düşük kendi eğrisi vardır.

Başka ölçütler başka bir şeyi yakalar. Grumblings konumların tüm grafına bakar ve örneğin ulaşılabilir konumların kaçının çıkmaz olduğunu, canavarın kahramana ne sıklıkla yaklaştığını kontrol eder. Yolların çoğunun tuzak olduğu bir bölüm, en kısa çözüm uzunluğu aynı olsa bile çoğunun güvenli olduğu bölümden çok farklı hissettirir.

Logiclings'te taç bulmacaları için bir derecelendirici var: bulmacayı bir insanın kullandığı akıl yürütmelerle, tek olası kareden bir tahmin deneyip çelişki bulmaya kadar çözer. Bulmaca, çözmeye yetecek en düşük teknik seviyesini alır.

Tepe tırmanma: küçük değişikliklerle iyileştirmek

Rastgele bir bölüm çoğunlukla kolaydır. Daha zorlarını elde etmek için tepe tırmanma kullanırız. Bir bölüm al, küçük bir şeyi değiştir (bir duvarı, bir uzaylıyı ya da bir aracı oynat) ve yeniden ölç. Bölüm zorlaştıysa değişikliği tut, zorlaşmadıysa at. Bunu yüzlerce kez tekrarla. Dağa tırmanan biri gibi hep yukarı doğru adım atarsın; iniş yok.

Basit ve işe yarıyor. Beamies'te tipik bir adayın en kısa çözümü, birkaç yüz tırmanma adımından sonra 4 sürüklemeden 10 ile 19 arasına çıktı. Nudgelings, ilk bölümleri oyuncular için fazla düz çıkınca iki moduna da aynı fikri ekledi. Logiclings taç bulmacalarında bunun bir sürümünü kullanır: üretici bölgeler arasındaki sınırları daha az çözüm bırakacak yönde oynatır ve bulmacanın tam bir çözümü kalana kadar sürer.

Tırmanmanın sınırı var. Çok uzakta daha iyi bir bölüm dururken küçük bir tepede takılabilir; bir bölüm de sıkıcı bir biçimde zorlaşabilir, örneğin uzun bir zorunlu hamle dizisiyle. Bu yüzden birkaç adaydan seçiyor ve sonuçlara gerçek bir cihazda bakıyoruz.

Nudgelings'te tırmanma yalnızca en kısa çözümü uzatmaz; bir bölümde kaç farklı aracın hareket ettiğine de bakılır. Tek bir aracı uzun uzun kaydırmak yerine birçok aracın sırayla yer değiştirmesini gerektiren bölümler daha ilginç bulunduğu için o tür adaylar tercih edilir.

Tek cevap: benzersizlik

Bazı bulmacaların tam olarak tek çözümü olmalıdır; yoksa oyuncu her şeyi doğru yapıp yine yanlış olduğunu duyabilir. Mantık bulmacalarımızın birkaçı böyledir. Çözücü çözümleri sayacak biçimde yazılır ve ikincisini bulur bulmaz durur.

Logiclings iki renkli bulmacasını tam dolu bir tahtadan kurar, sonra ipuçlarını ve işaretleri tek tek kaldırır; bir kaldırmayı yalnızca çözücü hâlâ tek cevap buluyorsa tutar. Yol bulmacası her kareden geçen tam bir güzergâhla başlar, sonra o güzergâhın tek olması için gereken sayıları bırakır ve kolay ayarlarda birkaç fazladan sayı ekler.

Benzersizlik ile zorluğun ters yönlere çektiğine dikkat et. Daha az ipucu bulmacayı zorlaştırır ama çok azı tek cevabı kaybettirir. Bu sınırın tam kenarına kadar yürümemizi sağlayan şey çözücüdür.

Önceden üret, her bölümü doğrula

Zor bir bölümü üretmek yavaş olabilir. Beamies'te bazı ileri bölümleri oyun çalışırken üretmek 8 saniyeden uzun sürüyordu; oyuncuyu bekletmek için çok fazla. Bu yüzden 400 bölüm önceden bir bilgisayarda kuruluyor ve uygulamaya dosya olarak konuyor. Her telefon tam olarak aynı bölümleri anında yüklüyor. Grumblings 300 bölümünü aynı şekilde yapar; hepsi birlikte bir dakikadan kısa sürede üretilir ve bir aday havuzundan zorluk puanına göre seçilir.

Hiçbir şey denetlenmeden girmez. Grumblings'teki bir test paketteki her bölümü açar ve saklı çözümü gerçek oyun kurallarıyla yeniden oynar; Nudgelings'teki bir test de iki paketi çözücüyle doğrular. Bir bölüm başarısız olursa derleme başarısız olur. Kurallar değişirse paket yeniden üretilir.

Son kontrol insan işidir. Bilgisayar bir bölümün çözülebilir olduğunu ve ne kadar uzun olduğunu söyler; keyifli olup olmadığını söyleyemez. Bölümleri telefonda oynuyoruz ve eğri orada ayarlanıyor.

Yaptığımız hatalar

Ölçmek gerçek sorunları yakalamamıza yardım etti. Nudgelings'in erken bir oyuncu denemesinde araç bölümlerinin 27. bölüme kadar zorlaşmadığı görüldü; bunun üzerine tüm paket daha dik bir eğri ve yeni mekaniklerle yeniden üretildi.

Çözücülerin de sınırı olmalı. Üretim sırasında sorun olmayan bir arama telefonda belleği tüketebilir. Beamies'te bir ipucu ve takılma kontrolü bellek sınırı olmayan bir çözücü kullanıyordu ve büyük bir bölüm onu çökertti. Artık bu aramaları bütçeyle çalıştırıyoruz.

Üretilmiş bir bulmaca, ölçtüğü kural kadar iyidir. Yanlış şeyi ölçersen yanlış bölümleri çok verimli üreten bir makine kurmuş olursun.

Sık sorulan sorular

Üretilen bir bölümün çözülebildiğini nereden biliyorsunuz?

Önce bir çözücü onu oynar. Bazı üreticiler ayrıca bölümü bitmiş konumdan geriye doğru kurar; böylece bölüm yapısı gereği çözülebilir.

Bölüm tasarımında tepe tırmanma nedir?

Bölümde küçük bir değişiklik yapıp yeniden ölçmek ve yalnızca bölüm zorlaştıysa değişikliği tutmak. Bunu çok kez tekrarlamak rastgele bölümlerden çok daha zorlarını verir.

Neden bölümleri oyun çalışırken üretmiyorsunuz?

Zor bölümlerin üretimi birkaç saniye sürebilir. Önceden üretmek her oyuncuya aynı bölümleri verir ve kimse beklemez.

Çözücü bir bölümün keyifli olup olmadığını söyler mi?

Hayır. Çözüm uzunluğu ve çıkmazlar gibi şeyleri ölçer. Değerlendirmek için bir insanın bölümü oynaması gerekir.

Diğer yazılar