Spiele :: Puzzles :: sendmoremoney

Lösen Sie Senden + mehr = Geldprobleme
Jetzt downloaden

Spiele :: Puzzles :: sendmoremoney Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Michael Schilli
  • Website des Verlags:
  • http://search.cpan.org/~mschilli/

Spiele :: Puzzles :: sendmoremoney Stichworte


Spiele :: Puzzles :: sendmoremoney Beschreibung

Lösen Sie Senden + mehr = Geldprobleme Spiele :: Puzzles :: Sendmoremoney ist ein Perl-Modul, das numerische Rätsel wie folgt löst: Angenommen, jeder der Buchstaben in der folgenden Ausdrucks ist eine bestimmte numerische Ziffer: Senden + More = MoneyGames :: Puzzles :: sendmoremoney wird dieses Puzzle aufbrechen durch brutale zwingende den gesamten Suchraum. In seiner einfachsten Form gibt ein Anruf an seinen Konstruktor das Rätsel und eine Reihe von Ziffernwerten für jeden Buchstaben im Puzzle an: # Entweder ... Meine $ Solver = Spiele :: Puzzles :: sendmoremoney-> neu (Werte => , Puzzle => "Senden + mehr = Geld",}; Anruf des Solvers wird dann alle möglichen Permutationen durchlaufen und einen Verweis auf ein Array von Ergebnissen zurückgeben: My $ result = $ Solver-> Löse () Ein einziges Ergebnis (somit ein Element des Arrays, auf das $ Ergebnis darauf hinweist) besteht aus einem Bezug auf einen Hash, der die Abbildung zwischen den Puzzle-Buchstaben und deren Werte enthält: $ var1 = {'s' => 9, 'o '=> 0,' m '=> 1,' d '=> 7,' n '=> 6,' r '=> 8,' E '=> 5,' y '=> 2}; oftmals Der gesamte Suchraum kann jedoch extrem zeitaufwändig sein. Stattdessen ist es wünschenswert, ein Ergebnis zu melden, sobald er gefunden wird: Meine $ Solver = Spiele :: Puzzles :: sendmoremoney-> neu (Werte => , Puzzle => "Senden + mehr = Geld", Reporter => Sub {Print-Dumper ($ _ )},); Der Parameter Reporter gibt eine Ref an Auf eine Funktion, die von Spielen aufgerufen wird :: Puzzles :: Sendmoremoney auf jedem Ergebnis, das mit dem Puzzle-Ausdruck entspricht. Die Reporterfunktion erhält als erster Parameter einen Verweis auf ein Ergebnis-Hash. Darüber hinaus kann der Reporter die Variablen $ Games einstellen :: Puzzles :: sendmoremoney :: stop_solver auf einen echten Wert, um anzuzeigen, dass der Solver sofort beenden soll. (Dies funktioniert jedoch nicht für den Standard-Permutator) .sometime, nicht alle möglichen Permutationen sind gültig. Zum Beispiel erfordert die ursprüngliche Form des Send + mehr = Geldpuzzle, dass keiner der Zahlen im Puzzle eine führende Null hat. Diese Arten von Einschränkungen können mithilfe einer Validator-Funktion angegeben werden, die vor der Bewertung einer Kombination aufgerufen wird: My $ Solver = Spiele :: Puzzles :: sendmoremoney-> neu (Werte => , Puzzle => "Senden + mehr = Geld", Reporter => Sub {Print-Dumper ($ _ )}, Validator => Sub {RETURN 0 Wenn $ _ -> {S} == 0; RETURN 0 Wenn $ _ -> {m} == 0; Rückgabe 1;},); Wenn der Validator 0 zurückgibt, Spiele :: Puzzles :: SendMoremoney wird nicht einmal die Permutation bewertet, sondern sofort zum nächsten. Spiele :: Puzzles :: SendMoremoney unterstützt auch benutzerdefinierte Permutatoren, die auch Arrays von Zahlen zurückgeben müssen, die den Puzzletaben etwas unvorhersehbar zugeordnet werden sollen: # ... oder ... meine $ solver = spiele :: puzzles :: sendmoremoney- > NEU (Permutator => get_next_permutation, puzzle => "Send + More = Geld",}; Irgendwann, Spiele :: Puzzles :: SendMoremoney unterstützt sogar einen eng definierten Suchraum (derzeit ist dies jedoch nicht implementiert ): # ... ... oder ... meine $ Solver = Spiele :: Puzzles :: sendmoremo ney-> neu (suche_space => {s => , e => , n => , d => , # ... Puzzle => "Senden + mehr = Geld",}; Synopsis verwenden Spiele :: Puzzles :: sendmoremoney; Verwenden Sie Daten :: Dumper; Meine $ Solver = Spiele :: Puzzles :: SendMoremoney-> NEU (Werte => , Puzzle => "Senden + mehr = Geld", Reporter => SUBER {Drucken-Dumper ($ _ ) }, Validator => SUB {RETURN 0 Wenn $ _ -> {S} == 0; RETURN 0 falls $ _ -> {m} == 0; Rückgabe 1;},); $ Solver-> Löse (); Anforderungen: · Perl.


Spiele :: Puzzles :: sendmoremoney Zugehörige Software