#!/usr/bin/perl -w # dango0.pl - Don Yang (uguu.org) # # 12/08/07 use strict; use constant WIDTH => 79; use constant HEIGHT => 24; use constant TIME_RES1 => 50; use constant TIME_RES2 => 50; my ($ax, $ay, $ah, $av1, $av2, $aex); $ah = 23; $av1 = 9.5; $av2 = 5.5; $aex = -2; my $t = time() % (TIME_RES1 + TIME_RES2); my $a = sin(2 * $t * atan2(0, -1) / (TIME_RES1 + TIME_RES2)); $ah = 20.5 - 3 * $a; $av1 += 1.0 * $a; $av2 -= 1.0 * $a; if( $t < TIME_RES1 ) { $t /= TIME_RES1; $ax = 56 - 33 * $t; my $d = 2 * $t - 1; $ay = 10 + $d * $d * 8; } else { $t = ($t - TIME_RES1) / TIME_RES2; $ax = 23 + 33 * $t; $ay = 18; } for(my $sy = 0; $sy < HEIGHT; $sy++) { my $dya = ($sy - $ay) / ($sy < $ay ? $av1 : $av2); for(my $sx = 0; $sx < WIDTH; $sx++) { my $dxa = ($sx - $ax) / $ah; my $c = ' '; if( $dxa * $dxa + $dya * $dya <= 1 && !($sy > $ay - 5 - 2 * $a && $sy <= $ay - 2 - 2 * $a && ($sx == int($ax - 3 + $aex) || $sx == int($ax + 3 + $aex))) ) { $c = 'X'; } print $c; } print "\n"; }