Skip to content

Instantly share code, notes, and snippets.

@sekimura
Created February 21, 2009 09:04
Show Gist options
  • Save sekimura/67961 to your computer and use it in GitHub Desktop.
Save sekimura/67961 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
# ______ ________ __
# /_ __/___ _________ ___ / ____/ /____ _____/ /__
# / / / _ \/ ___/ __ `__ \ / / / // __ \/ ___/ //_/
# / / / __/ / / / / / / / / /___/ // /_/ / /__/ ,<
# /_/ \___/_/ /_/ /_/ /_/ \____/_/ \____/\___/_/|_|
use strict;
use warnings;
use Curses;
use Term::Animation;
my $n0 = q#
.d8888b.
d88P Y88b
888 888
888 888
888 888
888 888
Y88b d88P
"Y8888P"
#;
my $n1 = q#
d888
d8888
888
888
888
888
888
8888888
#;
my $n2 = q#
.d8888b.
d88P Y88b
888
.d88P
.od888P"
d88P"
888"
888888888
#;
my $n3 = q#
.d8888b.
d88P Y88b
.d88P
8888"
"Y8b.
888 888
Y88b d88P
"Y8888P"
#;
my $n4 = q#
d8888
d8P888
d8P 888
d8P 888
d88 888
8888888888
888
888
#;
my $n5 = q#
888888888
888
888
8888888b.
"Y88b
888
Y88b d88P
"Y8888P"
#;
my $n6 = q#
.d8888b.
d88P Y88b
888
888d888b.
888P "Y88b
888 888
Y88b d88P
"Y8888P"
#;
my $n7 = q#
8888888888
d88P
d88P
d88P
88888888
d88P
d88P
d88P
#;
my $n8 = q#
.d8888b.
d88P Y88b
Y88b. d88P
"Y88888"
.d8P""Y8b.
888 888
Y88b d88P
"Y8888P"
#;
my $n9 = q#
.d8888b.
d88P Y88b
888 888
Y88b. d888
"Y888P888
888
Y88b d88P
"Y8888P"
#;
my $nc = q#
d8b
Y8P
d8b
Y8P
#;
my @numbers = ( $n0, $n1, $n2, $n3, $n4, $n5, $n6, $n7, $n8, $n9 );
my $s = Term::Animation->new();
Curses::halfdelay(2);
while (1) {
$s->remove_all_entities;
my ( $sec, $min, $hour ) = map { sprintf "%02d", $_} localtime();
my @s = map { $numbers[$_] } ( $sec =~ m/\d/g );
my @m = map { $numbers[$_] } ( $min =~ m/\d/g );
my @h = map { $numbers[$_] } ( $hour =~ m/\d/g );
$s->new_entity(
shape => "$hour : $min : $sec",
position => [ 2, 3, 10 ],
);
while ( my $ss = shift @s ) {
$s->new_entity(
shape => $ss,
position => [ 67 - ( scalar @s * 13 ), 7, 10 ],
);
}
while ( my $mm = shift @m ) {
$s->new_entity(
shape => $mm,
position => [ 40 - ( scalar @m * 13 ), 7, 10 ],
);
}
while ( my $hh = shift @h ) {
$s->new_entity(
shape => $hh,
position => [ 13 - ( scalar @h * 13 ), 7, 10 ],
);
}
$s->animate();
my $in = lc( getch() );
if ( $in eq 'q' ) { last; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment