Game :: Puzzle :: Sendmoremoney

Selesaikan Kirim + More = Masalah Uang
Unduh sekarang

Game :: Puzzle :: Sendmoremoney Peringkat & Ringkasan

Iklan

  • Rating:
  • Lisensi:
  • Perl Artistic License
  • Harga:
  • FREE
  • Nama Penerbit:
  • Michael Schilli
  • Situs web penerbit:
  • http://search.cpan.org/~mschilli/

Game :: Puzzle :: Sendmoremoney Tag


Game :: Puzzle :: Sendmoremoney Keterangan

Pecahkan Kirim + More = Masalah Uang Game :: Puzzle :: Sendmoremoney adalah modul Perl yang memecahkan teka-teki numerik seperti: Asumsikan bahwa masing-masing huruf dalam ekspresi berikut mewakili digit numerik yang berbeda: Kirim + lebih = MoneyGames :: Puzzle :: Sendmoremoney akan memecahkan teka-teki ini oleh brute-forcing seluruh ruang pencarian. Dalam bentuknya yang paling sederhana, panggilan ke konstruktornya menentukan teka-teki dan berbagai nilai digit untuk setiap huruf dalam puzzle: # ... ejaan ... $ pemecah = permainan :: teka-teki :: sendmoremoney-> baru (nilai => 0..9], puzzle => "Kirim + lebih = uang",}; memanggil pemecah kemudian akan menjalankan semua permutasi yang mungkin dan mengembalikan referensi ke array hasil: $ solver-> select () ; Suatu hasil (karenanya, elemen array yang menunjuk ke $ hasil) terdiri dari referensi ke hash yang berisi pemetaan antara huruf puzzle dan nilai-nilai mereka: $ var1 = {'' 's' => 9,> " '=> 0,' m '=> 1,' d '=> 7,' n '=> 6,' r '=> 8,' e '=> 2}; sering kali Namun, melalui seluruh ruang pencarian bisa sangat memakan waktu 0..9], puzzle => "kirim + lebih = uang", reporter => sub {cetak dumper ($ _ )},); parameter reporter menentukan referensi ERence ke suatu fungsi, yang akan dipanggil oleh game :: teka-teki :: sendMoremoney pada setiap hasil yang cocok dengan ekspresi puzzle. Fungsi reporter akan mendapatkan referensi hash sebagai parameter pertamanya. Selain itu, reporter dapat mengatur variabel $ games :: teka-teki :: sendmoremoney :: stop_solver ke nilai sebenarnya untuk menunjukkan bahwa pemecah harus segera berakhir. (Namun, ini belum berfungsi untuk permutator default) .Kometes, tidak semua permutasi yang mungkin valid. Misalnya, bentuk asli dari Kirim + More = Puzzle Uang mensyaratkan bahwa tidak ada angka dalam puzzle memiliki nol terkemuka. Jenis-jenis kendala ini dapat ditentukan dengan menggunakan fungsi validator, yang akan dipanggil sebelum mengevaluasi kombinasi: $ pemecah saya = permainan :: teka-teki :: sendmoremoney-> baru (nilai => , puzzle => "Kirim + More = Uang", Reporter => Sub {cetak dumper ($ _ )}, validator => sub {return 0 jika $ _ - Return 0 jika $ _ -> {m} == 0; kembali 1;},); jika validator mengembalikan 0, permainan :: teka-teki :: sendmoremoney bahkan tidak akan mengevaluasi permutasi tetapi pindah ke yang berikutnya segera. GAMES :: Puzzle :: Sendmoremoney juga mendukung permutator khusus, yang perlu mengembalikan array angka yang akan dipetakan ke huruf puzzle agak tidak terduga: # ... atau ... $ Solver = game :: sendmoremoney- > Baru (permutator => get_next_permutation, puzzle => "Kirim + lebih = uang",}; pada beberapa titik, permainan :: teka-teki :: sendmoremoney bahkan akan mendukung ruang pencarian yang terdefinisi sempit (namun, ini tidak diimplementasikan ): # ... atau ... $ pemecah saya = game :: teka-teki :: sendmoremo Ney-> Baru (search_space => {s => , e => , n => , # ... puzzle => "Kirim + lebih = uang",}; sinopsis menggunakan game :: teka-teki :: sendmoremoney; Gunakan Data :: Dumper; $ solver saya = game :: teka-teki :: sendmoremoney-> baru (nilai => , puzzle => "kirim + lebih = uang", reporter => sub {cetak dumper ($ _ ) }, validator => sub {return 0 jika $ _ -> {s} == 0; kembali 0 jika $ _ ->},); $ Solver-> Selesaikan (); Persyaratan: · Perl.


Game :: Puzzle :: Sendmoremoney Perangkat Lunak Terkait