Game-DijkstraMap
view release on metacpan or search on metacpan
lib/Game/DijkstraMap.pm view on Meta::CPAN
451452453454455456457458459460461462463464465466467468469470471
my
$maxcost
=
$self
->max_cost;
my
$maxcol
=
$dimap
->[0]->$
#*;
for
my
$r
( 0 ..
$dimap
->$
#* ) {
for
my
$c
( 0 ..
$maxcol
) {
push
@points
, [
$r
,
$c
]
if
$dimap
->[
$r
][
$c
] ==
$maxcost
;
}
}
return
\
@points
;
}
sub
update {
my
$self
=
shift
;
my
$dimap
=
$self
->dimap;
croak
"dimap not set"
if
!
defined
$dimap
;
my
$maxrow
=
$dimap
->$
#*;
my
$maxcol
=
$dimap
->[0]->$
#*;
for
my
$ref
(
@_
) {
my
(
$r
,
$c
) = (
$ref
->[0],
$ref
->[1] );
croak
"row $r out of bounds"
if
$r
>
$maxrow
or
$r
< 0;
croak
"col $c out of bounds"
if
$c
>
$maxcol
or
$c
< 0;
croak
"value must be a number"
unless
looks_like_number
$ref
->[2];
( run in 0.372 second using v1.01-cache-2.11-cpan-e5176c747c2 )