AI-Pathfinding-AStar-Rectangle
view release on metacpan or search on metacpan
23456789101112131415161718192021222324252627282930313233340.01 Wed Apr 1 13:54:05 2009
- original version; created by h2xs 1.23
with
options
-A -n AI::Pathfinding::AStar::Rectangle
0.02 Wed Apr 1 13:54:05 2009
- Some bugfixes
0.16 September 25 23:34 2010
- foreach_xy foreach_xy_set implemented in PP.
- added clone.
- added test
for
this functions
0.17 September 26 14:34 2010
- begin_x, end_x, last_x, last_y
- added typemap.
- added test 06
for
this functions
- remove some duplicated code
0.18 September 26 15:24 2010
- added clone_rect
for
selection rectangle
0.19 September 28 05:35 2010
- added test
for
dastar algorithm
- Some doc fix
0.20 September 28 06:10 2010
- Get rid of some warnings && MSVS compiler staff( inline )
0.21 September 28 06:10 2010
- Some perl 5.8.8 are bad. ( Create own croak_xs_usage )
0.22 October 3 21:10 2010
- Some perl 5.8.8 are still bad. (
next
try
)
1112131415161718192021222324252627282930good idea to provide version information here so that people can
decide whether fixes
for
the module are worth downloading.
INSTALLATION
To install this module type the following:
perl Makefile.PL
make
make test
make install
DEPENDENCIES
This module requires these other modules and libraries:
blah blah blah
COPYRIGHT AND LICENCE
examples/snake_labirint.pl view on Meta::CPAN
1234567891011use
ExtUtils::testlib;
use
Data::Dumper;
#~ use constant WIDTH_X => 16;
#~ use constant WIDTH_Y => 10;
my
$m
= AI::Pathfinding::AStar::Rectangle->new({
width
=> WIDTH_X,
height
=> WIDTH_Y });
use
strict;
495051525354555657585960616263646566676869
--strip strip all script and doc functionality from
ppport.h
--list-provided list provided API
--list-unsupported list unsupported API
--api-info=name show Perl API portability information
=head1 COMPATIBILITY
This version of F<ppport.h> is designed to support operation with Perl
installations back to 5.003, and has been tested up to 5.10.0.
=head1 OPTIONS
=head2 --help
Display a brief usage summary.
=head2 --version
Display the version of F<ppport.h>.
275276277278279280281282283284285286287288289290291292293294295The result will usually be a list of patches suggesting changes
that should at least be acceptable,
if
not necessarily the most
efficient solution, or a fix
for
all possible problems.
If you know that your XS module uses features only available in
newer Perl releases,
if
you're aware that it uses C++ comments,
and
if
you want all suggestions as a single patch file, you could
use
something like this:
perl ppport.h --compat-version=5.6.0 --cplusplus --patch=test.diff
If you only want your code to be scanned without any suggestions
for
changes,
use
:
perl ppport.h --nochanges
You can specify a different C<diff> program or options, using
the C<--diff> option:
perl ppport.h --diff=
'diff -C 10'
316317318319320321322323324325326327328329330331332333334335336to display information
for
all known API elements.
=head1 BUGS
If this version of F<ppport.h> is causing failure during
the compilation of this module, please check if newer versions
of either this module or C<Devel::PPPort> are available on CPAN
before sending a bug report.
If F<ppport.h> was generated using the latest version of
C<Devel::PPPort> and is causing failure of this module, please
file a bug report using the CPAN Request Tracker at L<http://rt.cpan.org/>.
Please include the following information:
=over 4
=item 1.
The complete output from running "perl -V"
346347348349350351352353354355356357358359360361362363364365=item 4.
A full log of the build that failed.
=item 5.
Any other information that you think could be relevant.
=back
For the latest version of this code, please get the C<Devel::PPPort>
module from CPAN.
=head1 COPYRIGHT
Version 3.x, Copyright (c) 2004-2009, Marcus Holland-Moritz.
Version 2.x, Copyright (C) 2001, Paul Marquess.
Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
619962006201620262036204620562066207620862096210621162126213621462156216621762186219if
(s ==
send
)
return
0;
/*
next
must be digit or the radix separator or beginning of infinity */
if
(isDIGIT(
*s
)) {
/* UVs are at least 32 bits, so the first 9 decimal digits cannot
overflow. */
UV value =
*s
-
'0'
;
/* This construction seems to be more optimiser friendly.
(without it gcc does the isDIGIT test and the
*s
-
'0'
separately)
With it gcc on arm is managing 6 instructions (6 cycles) per digit.
In theory the optimiser could deduce how far to unroll the loop
before
checking
for
overflow. */
if
(++s <
send
) {
int
digit =
*s
-
'0'
;
if
(digit >= 0 && digit <= 9) {
value = value * 10 + digit;
if
(++s <
send
) {
digit =
*s
-
'0'
;
if
(digit >= 0 && digit <= 9) {
t/00-AI-Pathfinding-AStar-Rectangle.t view on Meta::CPAN
1234567891011121314# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl AI-Pathfinding-AStar-Rectangle.t'
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
BEGIN { use_ok(
'AI::Pathfinding::AStar::Rectangle'
) };
#########################
# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.
t/01-simple.t view on Meta::CPAN
1234567891011121314151617181920212223# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl Map-XS.t'
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
1
for
$Test::More::TODO
;
our
$T
=
'AI::Pathfinding::AStar::Rectangle'
;
BEGIN{
eval
"use ExtUtils::testlib;"
unless
grep
{ m/::testlib/ }
keys
%INC
;
"not ok $@"
if
$@;
$T
=
'AI::Pathfinding::AStar::Rectangle'
;
eval
"use $T qw(create_map);"
;
die
"Can't load $T: $@."
if
$@;
}
my
$a
=
$T
->new({
width
=> 12,
height
=> 15 });
ok(
$a
);
is(
ref
(
$a
),
$T
);
t/01-simple.t view on Meta::CPAN
585960616263646566676869$a
->start_y(0);
is(
$a
->start_y, 0,
"set start y"
);
# 10 + 8
my
$s_1
=
''
;
$a
->foreach_xy_set(
sub
{ 1;} );
$a
->foreach_xy(
sub
{
$s_1
.=
$_
} );
is(
$s_1
, (
'1'
x (12*15)),
"all 111"
);
#########################
# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.
t/02-passability.t view on Meta::CPAN
123456789101112131415161718192021222324# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl Map-XS.t'
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
use
strict;
use
warnings;
1
for
$Test::More::TODO
;
my
$T
;
BEGIN{
eval
"use ExtUtils::testlib;"
unless
grep
{ m/::testlib/ }
keys
%INC
;
"not ok $@"
if
$@;
$T
=
'AI::Pathfinding::AStar::Rectangle'
;
eval
"use $T qw(create_map);"
;
die
"Can't load $T: $@."
if
$@;
}
my
$m
=
$T
->new({
width
=> 12,
height
=> 15 });
my
$accum
;
$accum
=
''
;
t/02-passability.t view on Meta::CPAN
116117118119120121122123124125126127
is(
$m
->get_passability(
$x
,
$y
),
$count
,
"check fix no offset"
);
$m
->set_start_xy(13, 20);
is(
$m
->get_passability(
$x
+13,
$y
+20),
$count
,
"check fix with offset"
);
$m
->set_start_xy(0,0);
}
}
}
#########################
# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.
t/03-path-valid.t view on Meta::CPAN
123456789101112131415161718191
for
$Test::More::TODO
;
use
Data::Dumper;
my
$T
;
BEGIN{
$T
=
"AI::Pathfinding::AStar::Rectangle"
;
eval
"use ExtUtils::testlib;"
unless
grep
{ m/testlib/ }
keys
%INC
;
eval
"use $T"
;
}
my
$m
=
$T
->new({
width
=> 5,
height
=> 5 });
for
my
$d
(
"0"
..
"9"
){
is_deeply([
$m
->is_path_valid(0,0,
$d
)], [
''
]);
#print Dumper([$m->is_path_valid(0,0,$d)], ['']);
};
$m
->set_start_xy(2,5);
t/04-astar.t view on Meta::CPAN
1234567891011121314151617181920#!perl
1
for
$Test::More::TODO
;
use
Data::Dumper;
my
$T
;
BEGIN {
$T
=
"AI::Pathfinding::AStar::Rectangle"
;
eval
"use ExtUtils::testlib;"
unless
grep
{ m/testlib/ }
keys
%INC
;
eval
"use $T"
;
}
{
my
$m
=
$T
->new( {
width
=> 5,
height
=> 5 } );
for
my
$d
(
"0"
..
"9"
) {
# is_deeply([$m->validate_path(0,0,$d)], ['']);
# print Dumper([$m->validate_path(0,0,$d)], ['']);
}
t/05-foreach.t view on Meta::CPAN
12345678910111213141516171819#!perl
1
for
$Test::More::TODO
;
use
Data::Dumper;
my
$T
;
BEGIN {
$T
=
"AI::Pathfinding::AStar::Rectangle"
;
eval
"use ExtUtils::testlib;"
unless
grep
{ m/testlib/ }
keys
%INC
;
eval
"use $T"
;
}
{
my
$m
=
$T
->new( {
width
=> 5,
height
=> 5 } );
$a
=
"TODO_a"
;
$b
=
"TODO_b"
;
$_
=
"TODO__"
;
my
$ok
= 1;
t/06-setstart.t view on Meta::CPAN
12345678910111213141516171819#!perl
1
for
$Test::More::TODO
;
use
Data::Dumper;
my
$T
;
BEGIN {
$T
=
"AI::Pathfinding::AStar::Rectangle"
;
eval
"use ExtUtils::testlib;"
unless
grep
{ m/testlib/ }
keys
%INC
;
eval
"use $T"
;
}
{
my
$m
=
$T
->new( {
width
=> 5,
height
=> 5 } );
$m
->set_start_xy(-1, 0);
is(
$m
->begin_x, -1,
"begin_x (1)"
);
is(
$m
->begin_y, 0,
"begin_y (1)"
);
t/07-dastar.t view on Meta::CPAN
1234567891011121314151617181920#!perl
1
for
$Test::More::TODO
;
use
Data::Dumper;
my
$T
;
BEGIN {
$T
=
"AI::Pathfinding::AStar::Rectangle"
;
eval
"use ExtUtils::testlib;"
unless
grep
{ m/testlib/ }
keys
%INC
;
eval
"use $T"
;
}
{
my
$m
=
$T
->new( {
width
=> 5,
height
=> 5 } );
$m
->set_start_xy( 2, 5 );
for
my
$x
( 2 .. 6 ) {
for
my
$y
( 5 .. 9 ) {
( run in 0.317 second using v1.01-cache-2.11-cpan-2b0bae70ee8 )