Saya memiliki permainan Sudoku terlaris di toko aplikasi iOS. Inilah cara saya membuat puzzle.
Pertama saya punya aplikasi penghasil puzzle. Tapi itu bukan bagian dari kode permainan. Ini adalah aplikasi yang berdiri sendiri yang saya gunakan untuk membuat teka-teki. Ini sangat dimodifikasi sehingga saya dapat mengaturnya untuk membuat jenis pola yang berbeda, peringkat kesulitan, jumlah pemberian, dll. Menghasilkan teka-teki dan mendapatkan tingkat kesulitan yang konsisten sulit dilakukan dengan cepat dan membutuhkan waktu lebih lama daripada yang ingin ditunggu pemain. Jadi, saya menghasilkan apa yang saya sebut "seed puzzle" dan itulah yang digunakan oleh kode game untuk menghasilkan puzzle yang dimainkan orang.
Saya tidak menjawab bagaimana cara membuat kode generator di sini. Anda dapat google dan menemukan banyak kode generator puzzle online. Mulai dari sana. Tetapi untuk membuat game yang bagus, Anda harus membuat game yang bagus. Game saya tidak menghasilkan teka-teki dengan cepat.
Cara kerja aplikasi penghasil teka-teki saya adalah ia menghasilkan ribuan teka-teki per menit, tetapi tidak semuanya baik dan tidak semua cocok dengan tingkat kesulitan tertentu. Generator membuat puzzle, kemudian memecahkannya dan mencari tahu tingkat kesulitannya, dan skor puzzle berdasarkan teknik yang diperlukan untuk memecahkan puzzle, dan menentukan apakah tebakan diperlukan untuk menyelesaikannya (yang biasanya buruk). Itu mengeluarkan setiap puzzle yang tidak cocok dengan kriteria. Untuk teka-teki yang sulit tetapi tidak mustahil, pada mesin yang cepat, dibutuhkan waktu satu jam untuk menghasilkan 100 teka-teki yang sesuai dengan spesifikasi saya yang sebenarnya. Inilah sebabnya saya tidak melakukan ini di aplikasi. Menghasilkan puzzle dengan cepat dengan spesifikasi yang sulit itu tidak akan berfungsi untuk kualitas puzzle yang saya miliki di aplikasi saya.
Teka-teki adalah string, panjang 162 karakter, 81 karakter dengan angka dan garis putus-putus atau titik-titik di mana titik kosong akan berada, kemudian 81 karakter dengan solusinya. Lalu kolom untuk masing-masing statistik, seperti berapa banyak lajang, ganda, dll.
Output saya dari semua sesi generasi adalah garis dibatasi koma dengan statistik sebagai kolom. Saya mungkin akan mengambil 10.000 teka-teki, membawanya untuk unggul, dan mengurutkannya berdasarkan kesulitan. Kemudian bawa mereka ke dalam aplikasi untuk melihatnya di papan permainan. Saya juga melihat mereka untuk daya tarik visual dan pola yang terlihat pada teka-teki. Lalu saya memilih tangan dari mereka.
Saya menyebutnya puzzle awal dan inilah yang saya maksud. Angka-angka dalam permainan sudoku benar-benar hanya token. Alih-alih menjadi angka 1-9 mereka bisa menjadi warna atau simbol atau huruf. Jadi teka-teki benih saya bukan angka, melainkan huruf ai. Setiap puzzle awal diubah dengan cepat untuk membuat puzzle yang dapat dimainkan:
- Mengacak angka / token. Ketika saya mengubah huruf ai kembali ke angka 1-9 tabel pencarian acak. Artinya a tidak selalu 1. Itu saja menciptakan sekitar 300.000 variasi pada setiap puzzle.
- Putar puzzle dengan 90, 180 atau 270 derajat. Itu menambah 4 variasi lagi.
- Tutup puzzle secara horizontal, vertikal, atau keduanya. Itu menambah 4 variasi lagi.
Oleh karena itu setiap puzzle benih dapat membuat variasi 5.806.080. Saya sudah menguji ini di lapangan dengan pemain sungguhan. Orang tidak tahu mereka pada dasarnya memainkan puzzle yang sama. Sebenarnya tidak mungkin. Hanya jika mereka memperhatikan bahwa pola givens berada dalam adalah sama setiap kali. Tetapi dengan bahkan 100 biji yang berbeda tidak akan ada yang memperhatikan. Jutaan pengguna game saya belum. Saya juga sudah mengujinya dengan aplikasi solver. Aplikasi pemecah tidak akan memecahkan teka-teki dengan cara yang sama ketika diputar atau dijatuhkan. Bahkan kadang-kadang akan menganalisisnya sebagai peringkat kesulitan yang berbeda meskipun secara teknis teka-teki yang sama.
Namun, Big Bad Sudoku Book memiliki 10 dari 1000's teka-teki benih di 5 tingkat kesulitan, dan beberapa jenis pola puzzle. Ini berarti ada miliaran teka-teki di gim saya. Dengan setiap 10.000 teka-teki benih ada 58.060.800.000 teka-teki yang berbeda.
Di Sudoku Book versi 4 (yang akan keluar 2016) saya menemukan cara untuk dapat menentukan puzzle yang tepat dari 58 miliar itu dan mendapatkan puzzle yang sama pada perangkat masing-masing pemain.