set_default_variant($variant)register_solvers(\%solvers)register_all_solvers()main()
Games::LMSolve - base class for LM-Solve solvers factories
package MyReg;
use Games::LMSolve;
@ISA = qw(Games::LMSolve);
use MyPuzzle::Solver;
sub register_all_solvers
{
my $self = shift;
$self->register_solvers({ 'mypuzzle' => "MyPuzzle::Solver"});
$self->set_default_variant("mypuzzle");
return 0;
}
package main;
my $r = MyReg->new();
$r->main();
This class is a registry of the Games::LMSolve::Base manpage-derived solvers. It
maps variants IDs to the classes. To use it, sub-class it and over-ride
the register_all_solvers() function. In it use register_solvers while
passing a reference to a hash that contains the variant IDs as keys
and the class names, or constructor functions as values.
You can also use set_default_variant() to set the default variant.
After all that, in your main script initialize a registry object, and
call the main() method.
The constructor. Accepts the following named arguments:
The default variant for the registry to be used in case one is not specified.
set_default_variant($variant)Sets the default variant to $variant.
register_solvers(\%solvers)Adds the %solvers map of names to class names to the registry.
register_all_solvers()To be sub-classes to register all the solvers that the registry wants to register. Does nothing here.
main()the main function that handles the command line arguments and runs the program.
the Games::LMSolve::Base manpage
http://www.shlomifish.org/lm-solve/ - the LM-Solve homepage.
Please report any bugs or feature requests to
bug-games-lmsolve at rt.cpan.org, or through the web interface at
http://rt.cpan.org/NoAuth/ReportBug.html.
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc Games::LMSolve
You can also look for information at:
Shlomi Fish, http://www.shlomifish.org/
Copyright 2002 Shlomi Fish, all rights reserved.
This program is released under the following license: MIT X11.