İOS uygulama mağazasında en çok satan Sudoku oyunum var. Bulmacaları nasıl ürettiğim aşağıda açıklanmıştır.
Öncelikle bir bulmaca üreticisi uygulamam var. Ama oyunun kodunun bir parçası değil. Bu bulmaca yapmak için kullandığım tek başına bir uygulama. Farklı desen türleri, zorluk dereceleri, hediye sayısı, vb. Oluşturmak için ayarlayabiliyorum. Bu yüzden, "tohum bulmacaları" dediğim şeyi üretiyorum ve oyunun kodu tarafından insanların oynadığı bulmacaları oluşturmak için kullanılan şey bu.
Burada bir jeneratörü nasıl kodlayacağımı cevaplamıyorum. Google'a çevrimiçi olarak tonlarca bulmaca üreteci kodu bulabilirsiniz. Oradan başlayın. Ama iyi bir oyun yapmak için iyi bir oyun yapmanız gerekiyor. Oyunum anında bulmaca oluşturmuyor.
Bulmaca üreteci uygulamamın çalışma şekli, dakikada binlerce bulmaca üretmesidir, ancak hepsi iyi değildir ve hepsi belirli bir zorluk derecesine uymaz. Jeneratör bir bulmaca yaratır, sonra çözer ve bir zorluk derecesi bulur ve bulmacayı çözmek için gerekli tekniklere dayanarak bulmacayı puanlar ve onu çözmek için tahmin gerekip gerekmediğini belirler (genellikle kötüdür). Bir kriterle uyuşmayan bulmacaları fırlatır. Zor ama imkansız olmayan bulmacalar için, hızlı bir makinede, tam özelliklerimle eşleşen 100 bulmaca üretmek bir saat sürebilir. Bu yüzden bunu uygulamada yapmıyorum. Bu zorlu özelliklerle anında bulmacalar oluşturmak, uygulamamdaki bulmacaların kalitesi için işe yaramaz.
Bulmacalar dizeler, 162 karakter uzunluğunda, 81 karakter sayı ve tire veya boşluk olacak nokta, daha sonra 81 çözüm ile. Daha sonra, kaç single, double, vs. gibi istatistiklerin her biri için sütunlar.
Tüm nesil oturumlardan çıktılarım, sütun olarak istatistiklerle virgülle ayrılmış satırlardır. Belki 10.000 bulmacayı alıp onları mükemmel hale getireceğim ve zorluk derecesine göre sıralayacağım. Sonra onları oyun tahtasında görmek için bir uygulamaya getirin. Ayrıca görsel çekicilik ve bulmacanın görünür desenleri için onlara bakıyorum. Sonra onlardan elimi seçiyorum.
Onlara tohum bulmacaları diyorum ve işte bunu kastediyorum. Sudoku oyunundaki sayılar gerçekten sadece jetonlardır. 1-9 arasındaki sayılar yerine renkler, semboller veya harfler olabilirler. Bu yüzden benim tohum bulmacaları sayı değil ai harfleri. Her tohum bulmacası oynanabilir bir bulmaca yapmak için anında değiştirilir:
- Sayıları / simgeleri rastgele. Ai harflerini 1-9 arasındaki sayılara çevirdiğimde, arama tablosu rasgele dağıtılır. Yani a her zaman 1 değildir. Tek başına her bulmacada yaklaşık 300.000 varyasyon oluşturur.
- Bulmacayı 90, 180 veya 270 derece döndürün. Bu, 4 varyasyon daha ekler.
- Yapboz yatay, dikey veya her ikisi de flop. Bu, 4 varyasyon daha ekler.
Her tohum bulmacası 5.806.080 varyasyon oluşturabilir. Bunu gerçek oyuncularla sahada test ettim. İnsanlar aslında aynı bulmacayı oynadıklarını bilmiyorlar. Aslında imkansız. Sadece verilen desenlerin her seferinde aynı olduğunu fark etselerdi. Ancak 100 farklı tohumla bile kimse fark etmeyecek. Oyunumun bir milyon kullanıcısı var. Çözücü uygulamalarla da test ettim. Bir çözücü uygulaması, bir bulmacayı döndürüldüğünde veya yırtıldığında aynı şekilde çözmez. Teknik olarak aynı bulmacayı olsa bile bazen farklı bir zorluk derecesi olarak analiz edecektir.
Bununla birlikte, Big Bad Sudoku Book, 5 zorluk seviyesinde 1000'in 10'unda tohum bulmacasına ve çoklu bulmaca desenlerine sahiptir. Bu, oyunumda milyarlarca bulmaca olduğu anlamına geliyor. Her 10.000 tohum bulmacasında 58.060.800.000 farklı bulmaca var.
Sudoku Book sürüm 4'te (2016'da çıkacak), 58 milyardan tam bir bulmaca belirleyip her oyuncunun cihazında aynı bulmacayı alabilmenin bir yolunu buldum.