#!/bin/env perl use strict; use warnings; use Time::HiRes qw/usleep/; my $W = 100; my $H = 40; my $canvas = make_canvas(); my $i = 2; while ($i != 1000) { draw($i); print_canvas(); usleep(1000000); $i += 10; } sub print_canvas { for (my $x = 0; $x < $H; ++$x) { for (my $y = 0; $y < $W; ++$y) { } } } sub make_canvas { my $result = []; for (my $x = 0; $x < $H; ++$x) { $result->[$x] = []; for (my $y = 0; $y < $W; ++$y) { $result->[$x]->[$y] = " "; } } } sub draw { my ($K) = @_; my $N = 0; my @groups = ( ); $canvas->[$x]->[$y] = "#"; $K = $K - 1; while (1) { my $px = $x - $N; my $py = $y; foreach my $el (@groups) { my $counter = $N; while ($counter != 0) { $px += $el->{x}; $canvas->[$px]->[$py] = "#"; $counter = $counter - 1; $K = $K - 1; if ($K == 0) { } } } $N++; } }
Standard input is empty
##
###
#####
###
#
##
####
#######
#####
###
#
##
####
######
########
######
####
##
##
###
#####
#######
#########
#######
#####
###
#
##
####
######
########
##########
########
######
####
###
#
##
###
#####
#######
#########
###########
#########
#######
#####
###
#
##
####
######
########
##########
############
##########
########
######
####
##
##
####
#######
#########
###########
#############
###########
#########
#######
#####
###
#
##
####
######
########
##########
############
##############
###########
#########
#######
#####
###
#
TERM environment variable not set. TERM environment variable not set. TERM environment variable not set. TERM environment variable not set. TERM environment variable not set. TERM environment variable not set. TERM environment variable not set. TERM environment variable not set. TERM environment variable not set. TERM environment variable not set. TERM environment variable not set.