The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Games::LMSolve - base class for LM-Solve solvers factories

SYNOPSIS

    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();

DESCRIPTION

This class is a registry of Games::LMSolve::Base-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.

SEE ALSO

Games::LMSolve::Base

AUTHORS

Shlomi Fish <shlomif@vipe.technion.ac.il>