Merge pull request #3 from psy0rz/master

first version completed
This commit is contained in:
Juerd Waalboer 2015-02-20 22:33:41 +01:00
commit 607b14f8dc
2 changed files with 138 additions and 0 deletions

137
plugins/game Normal file
View file

@ -0,0 +1,137 @@
#!perl
#Scan-foo-game for Revbank - (C)Edwin Eefting (psy0rz)
#Released under GPL or whatever revbank uses as license :)
use Time::HiRes qw( gettimeofday tv_interval);
HELP "game" => "Scan-fu game!";
my $start_time;
my $step;
my $slowest;
my $elapsed=1000;
sub print_highscores()
{
$slowest=1000;
print "\n---- fastest times ----\n";
open my $in, "highscores.txt";
my $nr=0;
while (<$in>)
{
my ($name,$time)=split(" ");
printf "$nr: %f $name\n", $time;
$nr++;
$slowest=$time;
}
if ($nr<10)
{
$slowest=1000;
}
close($in);
print "-----------------------\n";
}
sub command :Tab(game)
{
my ($self, $cart, $command) = @_;
return NEXT if $command !~ /^(?:game)$/;
print "\nWelcome to SCAN-FU \\o/\n";
print_highscores();
$start_time=[gettimeofday];
$step=1;
return "NOW SCAN game_$step", \&step;
}
sub step :Tab(whatevah) {
my ($self, $cart, $input) = @_;
if ($step<5)
{
if ($input ne "game_$step")
{
print "\n\aFAIL! :( *sad trombone*\n";
return ACCEPT;
}
$step++;
return "NOW SCAN game_$step", \&step;
}
else
{
$elapsed = tv_interval ( $start_time, [gettimeofday]);
print "\aCompleted in $elapsed seconds *tadaah*\n";
if ($elapsed < $slowest)
{
print " #####################\n";
print " #### NEW RECORD! ####\n";
print " #####################\n";
print " You did it in $elapsed !!!\n";
return "Enter your name for the hall of fame", \&name;
}
return ACCEPT;
}
}
sub name :Tab(whatevah)
{
my ($self, $cart, $input) = @_;
#store new highscores:
#(ulgy as hell...but hey i'm sleepy :)
open my $in, "<highscores.txt";
open my $out, ">highscores.txt.tmp";
my $nr=0;
while (<$in>)
{
$nr++;
my ($name,$time)=split(" ");
if ($elapsed!=-1 && $elapsed<=$time)
{
print $out "$input $elapsed\n";
$elapsed=-1;
$nr++;
}
print $out "$name $time\n";
if ($nr>10)
{
last;
}
}
if ($nr<10 && $elapsed!=-1)
{
print $out "$input $elapsed\n";
}
close($in);
close($out);
rename("highscores.txt.tmp", "highscores.txt");
print_highscores();
return ACCEPT;
}

View file

@ -16,6 +16,7 @@ stock
beep_terminal
game # Scan-foo game
# Then, plugins that apply heuristics