#!/usr/bin/perl -w use strict; use CGI qw(:standard); print "Content-type: text/html\n\n"; print "Alphabravo Ship Counter\n" . ' ' . "\n\n\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 '' . "\n" . '' . "\n"; for($z=0; $z<11; $z+=1) { print '\n"; } print '\n
PlayerClassNumberKK
' . $newarray[$k] . "H" . ($z+1) . ""; if ($player{$newarray[$k]}[$z] eq "") {print "0";} else { print $player{$newarray[$k]}[$z]; } print "" . $kk{$newarray[$k]}[$z] . "
' . $newarray[$k] . '' . $player{$newarray[$k]}[11] . '' . $kk{$newarray[$k]}[11] . "
\n
\n
"; } $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 '' . "\n" . '' . "\n"; $i = 0; while ($i < 11) { print ""; if (($KK_Ships[11] != 0 )) { print '' . "\n"; } else { print '' . "\n"; } $i += 1; } print '\n
ClassNumberKK 
H" . ($i+1) . "" . $ships[$i] . "" . $KK_Ships[$i] . "
' . $ships[11] . '' . $KK_Ships[11] . "
\n\n

"; print '' . "\n" . '' . "\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 '' . " \n"; } print ''; print '
PlayerNumberKK% of KKUpkeep% of KK (graph)
' . $newarray[$k] . "" . $player{$newarray[$k]}[11] . "" . $kk{$newarray[$k]}[11] . ""; printf("%.1f", (100 * $kk{$newarray[$k]}[11] / $KK_Ships[11])); print "%" . $cost{$newarray[$k]} . '
Total' . $total_cost . '
';