Mercurial > eagle-eye
diff enemy.pl @ 333:2ca2c4c49901
fixed travel time
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Thu, 12 Feb 2009 02:47:58 +0800 |
parents | efffa408eec5 |
children | ff816ffffbd8 |
line wrap: on
line diff
--- a/enemy.pl Thu Feb 12 01:53:59 2009 +0800 +++ b/enemy.pl Thu Feb 12 02:47:58 2009 +0800 @@ -13,8 +13,12 @@ sub travelTime { my ($x1, $y1, $x2, $y2, $speed) = @_; - $speed = 20 unless(defined($speed)); - return int( (sqrt((abs($x1 - $x2) * abs($x1 - $x2)) + (abs($y1 - $y2) * abs($y1 - $y2)))+1) * (400/$speed)); + $speed = 60 unless(defined($speed)); + if($x1 == $x2 && $y1 == $y2) { + return 600/$speed; + } else { + return int( (sqrt((abs($x1 - $x2) * abs($x1 - $x2)) + (abs($y1 - $y2) * abs($y1 - $y2)))) * (1200/$speed)); + } } sub travelMatrix { @@ -68,7 +72,7 @@ my @cities = (); foreach (glob("city-*-dump.yaml")) { my $city = LoadFile($_); - $city->{distance} = travelTime($island->x, $island->y, $city->{island}->{x}, $city->{island}->{y}, 20); + $city->{distance} = travelTime($island->x, $island->y, $city->{island}->{x}, $city->{island}->{y}, 60); push (@cities, $city); } @cities = sort { $a->{distance} <=> $b->{distance}; } (@cities); @@ -77,10 +81,10 @@ for my $x (0..$n) { printf("%s (%d)\t- ", $cities[$x]->{name}, $cities[$x]->{id}); printf("Land %3d Ship %3d Catapult %3d Ram %3d\n", - travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y), - travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 8), - travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 6), - travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 10), + travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 60), + travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 33), +# travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 6), +# travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 10), ); } }