# # MadTRIX.pl -> exibe letras descendo no estilo matrix # Versão 0.1 Ultra Beta ;P # Autor: Gabriel Vieira de Melo # http://www.perl.org.br/ - irc.freenode.org #perl.br -> GabrielVieira # irc.dsgx.org (BrasNET) -> mAd_ScIeNtIsT # my @colunas = ('0'..'70'); my @caracteres = ('a'..'z'); my @cores = qw(32 36); my @pontos = qw(. .. ... .... ..... ......); my $linhas = 23; $letra{$_} = &caracteres foreach @colunas; INICIO: my %iniciado,%linha,%caracteres; foreach my $linha ('1'..$linhas) { undef $linha{$linha}; foreach my $coluna (@colunas) { if(!$iniciado{$coluna}){ if(int(rand 5) > 3){ $linha{$linha} .= $letra{$coluna}; $iniciado{$coluna} = 1; } else{$linha{$linha} .= " ";} } else{ if($caracteres{$coluna}++ <= $linhas){ $linha{$linha} .= $letra{$coluna}; } else{ if($caracteres{$coluna} >= ($linhas+4)){ $letra{$coluna} = &caracteres; $caracteres{$coluna} = 0; $iniciado{$coluna} = 0; $linha{$linha} .= " "; } else{$linha{$linha} .= " ";} } } } $tela[$_] = $tela[$_-1] foreach reverse('1'..$linhas); $tela[0] = "$linha{$linha}\n"; system(cls); # system(clear); print @tela; print " " x 30 . "mAdTRIX" . $pontos[int(rand @pontos)]; } undef %linha,%caracteres; goto INICIO; sub caracteres{ # return "\033[;".$cores[int(rand(@cores))]."m".$caracteres[rand(@caracteres)]."\033[0m"; return $caracteres[rand(@caracteres)]; }