الألعاب :: الألغاز :: SendMoremoney

حل + إرسال + أكثر = مشاكل المال
التحميل الان

الألعاب :: الألغاز :: SendMoremoney الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • Perl Artistic License
  • السعر:
  • FREE
  • اسم الناشر:
  • Michael Schilli
  • موقع ويب الناشر:
  • http://search.cpan.org/~mschilli/

الألعاب :: الألغاز :: SendMoremoney العلامات


الألعاب :: الألغاز :: SendMoremoney وصف

حل + المزيد = مشاكل المال الألعاب :: Puzzles :: SendMoremoney هو وحدة بيرل التي تحل الألغاز العددية ترغب في متابعتها: افترض أن كل حرف من الحروف في التعبير التالي يمثل رقما عدديا متميزا: إرسال + المزيد = MoneyGames :: الألغاز :: SendMoremoney سوف تصدع هذا اللغز عن طريق فرض مساحة البحث بأكملها. في أبسط شكل، تحدد دعوة إلى منشئها اللغز ومجموعة من القيم المكونة من القيم لكل حرف في اللغز: # إما ... My $ Solver = الألعاب :: الألغاز :: SendMoremoney-> جديد (القيم => ، لغز => "إرسال + المزيد = Money"،}؛ سوف يدعو الحلال، ثم يتم تشغيل جميع التباديل الممكنة وإرجاع مرجع إلى مجموعة من النتائج: بلدي نتيجة $ = $ solver-> حل () ؛ نتيجة واحدة (وبالتالي، فإن عنصر الصفيف الذي يشير إليه نتيجة للإشارة إليه) يتكون من إشارة إلى التجزئة التي تحتوي على رسم الخرائط بين أحرف الألغاز وقيمها: $ var1 = {'s' => 9، 'o '=> 0،' M '=> 1،' d '=> 7،' n '=> 6،' r '=> 8،' e '=> 5،' y '=> 2}؛ في كثير من الأحيان ومع ذلك، فإن ممارسة مساحة البحث بأكملها يمكن أن تكون مستهلكة للغاية. بدلا من ذلك، من المستحسن الإبلاغ عن النتيجة بمجرد العثور على: بلدي $ Solver = الألعاب :: الألغاز :: SendMoremoney-> جديد (القيم => ، لغز => "إرسال + more = money"، المراسل => sub {print domper ($ _ )}،)؛ المعلمة المراسل تحدد المرجع erence إلى وظيفة، والتي سيتم استدعاؤها بواسطة الألعاب :: الألغاز :: SendMoremoney في كل نتيجة تتطابق مع تعبير اللغز. ستحصل وظيفة المراسل على إشارة إلى نتيجة له باعتباره المعلمة الأولى. علاوة على ذلك، يمكن للمراسل تعيين الألعاب المتغيرة $ :: الألغاز :: SendMoremoney :: STOP_SOLVER إلى قيمة حقيقية للإشارة إلى أن الحلال يجب إنهاء على الفور. (ومع ذلك، هذا لا يعمل من أجل الصمول الافتراضي حتى الآن). في بعض الأحيان، ليست كل التباديل الممكنة صالحة. على سبيل المثال، يشترط الشكل الأصلي من Send + Money = Money Puzzle أن أي من الأرقام في اللغز لديه صفر رائد. يمكن تحديد هذه الأنواع من القيود باستخدام وظيفة Validator، والتي سيتم استدعاؤها قبل تقييم مزيج: My $ Solver = الألعاب :: الألغاز :: SendMoremoney-> جديد (القيم => ، لغز => "إرسال + more = money"، المراسل => sub {print dumper ($ _ )}، validator => sub {return 0 إذا $ _ -> {s} == 0؛ إرجاع 0 إذا $ _ -> {m} == 0؛ return 1؛}،)؛ إذا عاد المصادق 0، الألعاب: الألغاز :: لن يقوم SendMoremoney بتقييم التقليب ولكن بدلا من ذلك انتقل إلى واحد التالي على الفور. ألعاب :: Puzzles :: SendMoremoney يدعم أيضا التركات المخصصة، والتي تحتاج إلى إرجاع صفائف الأرقام التي سيتم تعيينها إلى رسائل الألغاز غير متوقعة إلى حد ما: # ... أو ... My $ Solver = الألعاب :: الألغاز :: SendMoremoney- > جديد (perlutator => get_next_permutation، puzzle => "إرسال + more = money"،}؛ في مرحلة ما، الألعاب :: الألغاز :: سيقوم SendMoremoney بدعم مساحة بحث محددة بشكل ضيق (ومع ذلك، حاليا، لا يتم تنفيذ ذلك حاليا ): # ... أو ... بلدي $ solver = الألعاب :: الألغاز :: sendmoremo ney-> جديد (search_space => {s => ، e => ، n => ، D => ، # ... لغز => "إرسال + المزيد = Money"،}؛ ملخص استخدام الألعاب :: الألغاز :: SendMoremoney؛ استخدم البيانات :: Dumper؛ بلدي $ solver = الألعاب :: الألغاز :: sendmoremoney-> جديد (القيم => ، لغز => "إرسال + المزيد = المال"، المراسل => Sub {print domper ($ _ ) }، Validator => SUB {EXTER 0 IF $ _ -> {s} == 0؛ RETURE 0 IF $ _ -> {m} == 0؛ العودة 1؛}،)؛ $ solver-> حل ()؛ متطلبات: perl.


الألعاب :: الألغاز :: SendMoremoney برامج ذات صلة