AI-Pathfinding-OptimizeMultiple
view release on metacpan or search on metacpan
lib/AI/Pathfinding/OptimizeMultiple/App/CmdLine.pm view on Meta::CPAN
package AI::Pathfinding::OptimizeMultiple::App::CmdLine;
$AI::Pathfinding::OptimizeMultiple::App::CmdLine::VERSION = '0.0.17';
use strict;
use warnings;
use MooX qw/late/;
use Getopt::Long qw(GetOptionsFromArray);
use IO::File ();
use AI::Pathfinding::OptimizeMultiple ();
use AI::Pathfinding::OptimizeMultiple::PostProcessor ();
# TODO : restore later.
# use MyInput;
use Carp ();
has argv => ( isa => 'ArrayRef[Str]', is => 'ro', required => 1, );
has _arbitrator => ( is => 'rw' );
has _add_horne_prune => ( isa => 'Bool', is => 'rw' );
has _chosen_scans => ( isa => 'ArrayRef', is => 'rw' );
has _should_exit_immediately =>
( isa => 'Bool', is => 'rw', default => sub { 0; }, );
has input_obj_class => ( isa => 'Str', is => 'rw' );
has _input_obj => ( is => 'rw' );
has _is_flares => ( is => 'rw', isa => 'Bool', default => sub { 0; }, );
has _num_boards => ( isa => 'Int', is => 'rw' );
has _offset_quotas => ( isa => 'Int', is => 'rw' );
has _optimize_for => ( isa => 'Str', is => 'rw' );
has _output_filename => ( isa => 'Str', is => 'rw' );
has _post_processor => (
isa => 'Maybe[AI::Pathfinding::OptimizeMultiple::PostProcessor]',
is => 'rw'
);
has _quotas_are_cb => ( isa => 'Bool', is => 'rw' );
has _quotas_expr => ( isa => 'Maybe[Str]', is => 'rw' );
has _should_rle_be_done => ( isa => 'Bool', is => 'rw' );
has _should_trace_be_done => ( isa => 'Bool', is => 'rw' );
has _simulate_to => ( isa => 'Maybe[Str]', is => 'rw' );
has _start_board => ( isa => 'Int', is => 'rw' );
has _stats_factors =>
( isa => 'HashRef', is => 'rw', default => sub { return +{}; }, );
my $_component_re = qr/[A-Za-z][A-Za-z0-9_]*/;
my $_module_re = qr/$_component_re(?:::$_component_re)*/;
sub BUILD
{
my $self = shift;
# Command line parameters
my $_start_board = 1;
my $num_boards = 32000;
my $output_filename = "-";
my $should_trace_be_done = 0;
my $should_rle_be_done = 1;
my $_quotas_expr = undef;
my $quotas_are_cb = 0;
my $optimize_for = "speed";
my $offset_quotas = 0;
my $simulate_to = undef;
my $_add_horne_prune = 0;
my $input_obj_class = 'AI::Pathfinding::OptimizeMultiple::DataInputObj';
my %stats_factors;
my $help = 0;
my $man = 0;
GetOptionsFromArray(
$self->argv(),
'help|h' => \$help,
man => \$man,
"o|output=s" => \$output_filename,
"num-boards=i" => \$num_boards,
"trace" => \$should_trace_be_done,
"rle!" => \$should_rle_be_done,
"start-board=i" => \$_start_board,
"quotas-expr=s" => \$_quotas_expr,
"quotas-are-cb" => \$quotas_are_cb,
( run in 2.604 seconds using v1.01-cache-2.11-cpan-97f6503c9c8 )