AI-Pathfinding-OptimizeMultiple

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


v0.0.10     2014-03-28
    - Convert to the Test::CPAN::Changes Dist-Zilla plugin.

v0.0.9      2014-03-28
    - Add an explicit symbol import on "use PDL"/etc.
    - Add get_scan_ids_aref() and lookup_scan_idx_based_on_id() to
    AI::Pathfinding::OptimizeMultiple::DataInputObj .
    - Add the $args parameter with the 'chosen_scans' key to
    AI::Pathfinding::OptimizeMultiple::simulate_board() .
    - Add support for some extra required options in
    AI::Pathfinding::OptimizeMultiple::DataInputObj’s time-scan.pl.

v0.0.8      2014-02-02
    - Made sure the =encoding directive is on top of the file in
    bin/optimize-game-ai-multi-tasking .

v0.0.7      2014-01-26
    - Minimal version of perl - 5.012 in the prereqs (could be lower, possibly).
        - For Kwalitee.
    - Remove the Makefile.PL so we will have "metayml has provides".

lib/AI/Pathfinding/OptimizeMultiple/App/CmdLine.pm  view on Meta::CPAN

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

lib/AI/Pathfinding/OptimizeMultiple/DataInputObj.pm  view on Meta::CPAN


use MooX qw/late/;

use File::Path qw(mkpath);

use AI::Pathfinding::OptimizeMultiple::Scan ();

use PDL              (qw( pdl ));
use PDL::IO::FastRaw (qw( readfraw writefraw ));

has start_board => ( isa => 'Int', is => 'ro', required => 1 );
has num_boards  => ( isa => 'Int', is => 'ro', required => 1 );
has selected_scans => (
    isa      => 'ArrayRef',
    is       => 'ro',
    required => 1,
    default  => sub {
        my ($self) = @_;

        return $self->_calc_selected_scan_list();
    },
    lazy => 1,
);

has _scan_ids_to_indexes => (
    isa     => 'HashRef[Int]',

lib/AI/Pathfinding/OptimizeMultiple/IterState.pm  view on Meta::CPAN

use 5.012;

use MooX qw/late/;

use PDL ();

use vars (qw(@fields));

has _main => ( is => 'rw' );
has _num_solved =>
    ( isa => 'Int', is => 'ro', init_arg => 'num_solved', required => 1 );
has _quota => ( isa => 'Int', is => 'ro', init_arg => 'quota', required => 1 );
has _scan_idx =>
    ( isa => 'Int', is => 'ro', init_arg => 'scan_idx', required => 1 );

use Exception::Class ('AI::Pathfinding::OptimizeMultiple::Error::OutOfQuotas');

sub attach_to
{
    my $self     = shift;
    my $main_obj = shift;

    $self->_main($main_obj);

lib/AI/Pathfinding/OptimizeMultiple/PostProcessor.pm  view on Meta::CPAN

package AI::Pathfinding::OptimizeMultiple::PostProcessor;
$AI::Pathfinding::OptimizeMultiple::PostProcessor::VERSION = '0.0.17';
use strict;
use warnings;

use 5.012;

use MooX qw/late/;

has _should_do_rle =>
    ( isa => 'Bool', is => 'ro', init_arg => 'do_rle', required => 1 );
has _offset_quotas => (
    isa      => 'Bool',
    is       => 'ro',
    init_arg => 'offset_quotas',
    required => 1
);

sub scans_rle
{
    my $self = shift;

    my @scans_list = @{ shift() };

    my $scan = shift(@scans_list);

lib/AI/Pathfinding/OptimizeMultiple/Scan.pm  view on Meta::CPAN

package AI::Pathfinding::OptimizeMultiple::Scan;
$AI::Pathfinding::OptimizeMultiple::Scan::VERSION = '0.0.17';
use strict;
use warnings;

use 5.012;

use MooX qw/late/;

has cmd_line => ( isa => 'Str',  is => 'ro', required => 1, );
has id       => ( isa => 'Str',  is => 'ro', required => 1, );
has used     => ( isa => 'Bool', is => 'rw', default  => sub { 0; } );

sub mark_as_used
{
    my $self = shift;
    $self->used(1);
}

sub is_used
{

lib/AI/Pathfinding/OptimizeMultiple/Scan.pm  view on Meta::CPAN

AI::Pathfinding::OptimizeMultiple::Scan

=head1 VERSION

version 0.0.17

=head1 SLOTS

=head2 $scan->cmd_line()

The command line string, which defines the scan's behaviour - required upon
initialization.

=head2 $scan->id()

The scan ID - a string.

=head2 $scan->used()

A boolean - whether the scan was used.

lib/AI/Pathfinding/OptimizeMultiple/ScanRun.pm  view on Meta::CPAN

package AI::Pathfinding::OptimizeMultiple::ScanRun;
$AI::Pathfinding::OptimizeMultiple::ScanRun::VERSION = '0.0.17';
use strict;
use warnings;

use 5.012;

use MooX qw/late/;

has iters    => ( isa => 'Int', is => 'rw', required => 1 );
has scan_idx => ( isa => 'Int', is => 'ro', required => 1 );

sub clone
{
    my $self = shift;

    return ref($self)->new(
        {
            iters    => $self->iters(),
            scan_idx => $self->scan_idx(),
        }

lib/AI/Pathfinding/OptimizeMultiple/SimulationResults.pm  view on Meta::CPAN

package AI::Pathfinding::OptimizeMultiple::SimulationResults;
$AI::Pathfinding::OptimizeMultiple::SimulationResults::VERSION = '0.0.17';
use strict;
use warnings;

use 5.012;

use MooX qw/late/;

has status      => ( isa => 'Str', is => 'ro', required => 1, );
has total_iters => ( isa => 'Int', is => 'ro', required => 1, );
has scan_runs => (
    isa      => 'ArrayRef[AI::Pathfinding::OptimizeMultiple::ScanRun]',
    is       => 'ro',
    required => 1,
);

sub get_total_iters
{
    return shift->total_iters();
}

sub get_status
{
    return shift->status();

t/style-trailing-space.t  view on Meta::CPAN

#!/usr/bin/perl

use strict;
use warnings;

use Test::More;

eval "use Test::TrailingSpace";
if ($@)
{
    plan skip_all => "Test::TrailingSpace required for trailing space test.";
}
else
{
    plan tests => 1;
}

my $finder = Test::TrailingSpace->new(
    {
        root           => '.',
        filename_regex =>

xt/release/trailing-space.t  view on Meta::CPAN

#!perl

use strict;
use warnings;

use Test::More;

eval "use Test::TrailingSpace";
if ($@)
{
   plan skip_all => "Test::TrailingSpace required for trailing space test.";
}
else
{
   plan tests => 1;
}

# TODO: add .pod, .PL, the README/Changes/TODO/etc. documents and possibly
# some other stuff.
my $finder = Test::TrailingSpace->new(
   {



( run in 0.709 second using v1.01-cache-2.11-cpan-0a6323c29d9 )