diff options
Diffstat (limited to 'lib/GridFiller.pm')
-rw-r--r-- | lib/GridFiller.pm | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/GridFiller.pm b/lib/GridFiller.pm index 2b92285..dbe7010 100644 --- a/lib/GridFiller.pm +++ b/lib/GridFiller.pm @@ -6,6 +6,7 @@ use GridFiller::Status; use GridFiller::Result; use GridFiller::Chooser::Smarter; use Carp; +use Class::MOP; with 'MooseX::Log::Log4perl'; @@ -22,11 +23,19 @@ has grid => ( ); sub fill { - my ($self) = @_; + my ($self,$args) = @_; + + my $status = GridFiller::Status->new({ + grid => $self->grid, + words => $self->words, + mode => $args->{mode} + }); + + my $chooser_class = 'GridFiller::Chooser::'.($args->{chooser} || 'Random'); + Class::MOP::load_class($chooser_class); - my $status = GridFiller::Status->new({grid => $self->grid, words => $self->words}); my $result = GridFiller::Result->new({source_grid => $self->grid}); - my $chooser = GridFiller::Chooser::Smarter->new({status => $status}); + my $chooser = $chooser_class->new({status => $status}); while ($status->unfilled() && $status->has_next_word()) { my $word = $status->get_next_word(); |