All pastes #439630 Raw Edit

Nessieliberation

public text v1 · immutable
·published 2007-04-14 12:42 UTC
rendered paste body
#!/usr/bin/perl -w
use strict;

use CGI qw(:standard);

print "Content-type: text/html\n\n";
print "<html><head><title>Alphabravo Ship Counter</title>\n<style> \n td { \n font-family: monospace;\nborder-left: 1px solid gray;\nborder-bottom: 1px solid gray;\n} \n body { font-family: monospace; \n}\n</style>" . '
<link rel="stylesheet" type="text/css" href="/kosmor/styles/common.css" />
'  . "</head>\n\n<body>\n";

my $input = param('ships');
# $input =~ s/[\r]\n//g;

my @KK = (9,13,19,41,65,116,188,310,528,916,3226);
my @upkeep = (1250, 2000, 4500, 8000, 12500, 18000, 24500, 32000, 40500, 50000, 100000);
my @ships=(0,0,0,0,0,0,0,0,0,0,0);
my %have_name;
my $i=0;
my @a;
my %kk;
my %player;
my @KK_Ships;
my %cost;

my $k=0;
my $z=0;
my @name;
my $total_cost;


$_=$input;



if (param('battle') eq "battle") {
@a=(/\S+\(H(\d+)\) \S+ (\S+)/g);
}
else {
@a=(/\(H(\d+)\)\s\S+\s\S+\s(\S+)\x2c/g);
}



$i = 0;
while ($i<@a) {
	$ships[$a[($i)]-1] = ($ships[$a[($i)]-1] + 1);
	$player{$a[($i+1)]}[@a[($i)]-1] = ($player{$a[($i+1)]}[$a[($i)]-1] + 1);
	unless($have_name{($a[$i+1])}++) {
		$name[($i/2)] = $a[($i+1)];
	}
	$i += 2;
}





for($k=0; $k<@name; $k+=1) {
	if (defined ($name[$k] )) {
		$kk{$name[$k]}[11] = 0;
		$player{$name[$k]}[11] = 0;
		for($z=0; $z<11; $z+=1) {
			$kk{$name[$k]}[$z] = $player{$name[$k]}[$z] * $KK[$z];
			$player{$name[$k]}[11] = $player{$name[$k]}[11] + $player{$name[$k]}[$z];
			$kk{$name[$k]}[11] = $kk{$name[$k]}[11] + $kk{$name[$k]}[$z];
		}
	}
}

my @array;
for($k=0; $k<@name; $k+=1) {
	if (defined ($name[$k] )) {
		push (@array, [$kk{$name[$k]}[11], $name[$k]]);
	}
}

my @newarray; my $key=0;
foreach my $a (sort({$$b[$key]<=>$$a[$key]} @array)) { push (@newarray, @$a[1]) }



for($k=0; $k<@newarray; $k++) {
		print '<table>' . "\n" . '<tr><th>Player</th><th>Class</th><th>Number</th><th>KK</th></tr>' . "\n";
		for($z=0; $z<11; $z+=1) {
			print '<tr><td width="120">' . $newarray[$k] . "</td><td>H" . ($z+1) . "</td><td>";
			if ($player{$newarray[$k]}[$z] eq "") {print "0";} else { print $player{$newarray[$k]}[$z]; }
			print "</td><td>" . $kk{$newarray[$k]}[$z] . "</td></tr>\n";
		}
		print '<tr style="border-top: 7px solid gray;" ><td>' . $newarray[$k] . '</td><td></td><td>' . $player{$newarray[$k]}[11] . '</td><td>' . $kk{$newarray[$k]}[11] . "</td></tr>\n</table>\n<br />\n<br />";


}




$i = 0;
while ($i < 11) {
	$KK_Ships[$i] = $ships[$i] * $KK[$i];
	$ships[11] += $ships[$i];
	$KK_Ships[11] += $KK_Ships[$i];
	$i += 1;
}





print '<table style="font-weight:bold;" >' . "\n" . '<tr><th>Class</th><th>Number</th><th>KK</th><td width="100px">&nbsp;</td></tr>' . "\n";
$i = 0;
while ($i < 11) {
	print "<tr><th>H" . ($i+1) . "</th><td>" . $ships[$i] . "</td><td>" . $KK_Ships[$i] . "</td>";

if (($KK_Ships[11] != 0 )) {
print '<td><img src="../kosmor/red.png" height="5px" width="';
	printf("%.0f", (100 * $KK_Ships[$i] / $KK_Ships[11]));
	print 'px" /></td>' . "</tr>\n";
}
else {
print '<td></td></tr>' . "\n";
}
	$i += 1;
}
print '<tr style="border-top: 7px solid gray;" ><td></td><td>' . $ships[11] . '</td><td>' . $KK_Ships[11] . "</td></tr>\n</table>\n\n<br /><br />";











print '<table>' . "\n" . '<tr style="font-weight:bold;"><th>Player</th><th>Number</th><th>KK</th><th>% of KK</th><th>Upkeep</th><th>% of KK (graph)</th></tr>' . "\n";

for($k=0; $k<@newarray; $k++) {
        $cost{$newarray[$k]} = 0;
	for($z=0; $z<11; $z+=1) {
		$cost{$newarray[$k]} += ( $player{$newarray[$k]}[$z] * $upkeep[$z] );
		$total_cost += $player{$newarray[$k]}[$z] * $upkeep[$z]; 
	}
	print '<tr><td width="120">' . $newarray[$k] . "</td><td>" . $player{$newarray[$k]}[11] . "</td><td>" . $kk{$newarray[$k]}[11] . "</td><td>";
	printf("%.1f", (100 * $kk{$newarray[$k]}[11] / $KK_Ships[11]));
	print "%</td><td>" . $cost{$newarray[$k]} . '</td><td width="100px"><img src="../kosmor/red.png" height="5px" width="';
	printf("%.0f", (100 * $kk{$newarray[$k]}[11] / $KK_Ships[11]));
	print 'px" /></td>' . "



</tr>\n";
}
print '<tr><th colspan="4">Total</th><th colspan="2">' . $total_cost . '</th></tr>';
print '</table></body></html>';