mino.pl
) to solve it.use ExtUtils::MakeMaker; WriteMakefile( 'NAME' => 'Games::LMSolve', 'DISTNAME' => 'Games-LMSolve', 'EXE_FILES' => ["lm-solve"], 'VERSION_FROM' => 'lib/Games/LMSolve/Base.pm', ); |
# This is a flag that specifies whether to present the moves in Run-Length # Encoding. my $to_rle = 1; my $output_states = 0; my $scan = "brfs"; my $run_time_states_display = 0; #my $p = Getopt::Long::Parser->new(); if (! GetOptions('rle!' => \$to_rle, 'output-states!' => \$output_states, 'method=s' => \$scan, 'rtd!' => \$run_time_states_display, )) { die "Incorrect options passed!\n" } |
!
options are boolean. (specified with --rle
and --norle
)=s
options accept a string argument.pass_through
configuration option - process the known arguments and leave the others alone - used for determining the game variant.Pod::Usage
is a module that displays the POD page associated with the program.my $variant = $self->{'default_variant'}; my $help = 0; my $man = 0; Getopt::Long::Configure('pass_through'); GetOptions( "g|game=s" => \$variant, 'help|h|?' => \$help, 'man' => \$man ) or pod2usage(2); pod2usage(1) if $help; pod2usage(-exitstatus => 0, -verbose => 2) if $man; |
Games::LMSolve::Base
) that handles the scanning logic, without knowledge of the rules of the game.Games::LMSolve::Input
module is a utility module used for inputting the board layouts.key = value
pairs where there are several types of values. Namely, integers, X-Y pairs, Start-End pairs, and arrays are supported. (albeit not all possible combinations).Deep recursion on subroutine "main::sum" at recurse.pl line 17.
no warnings "recursion"
.$DB::deep
to a large enough value from within the perl debugger.