Guns Roses em Linguagem Perl

Guns Roses em Linguagem Perl
Musica Sweet child o mine do Guns Roses executada por uma guitarra escrita em linguagem Perl.
Veja como a Linguagem Perl é bem dinâmica e compacta.
Com um pequeno trecho de código podemos criar um complexo script que executa uma musica e exibe em que pontos da guitarra a música é tocada. Tudo no prompt de comando.


Veja detalhes no video abaixo


 
Tutorial para você executar o script:

Baixe e instale o Active Perl
Baixe e Instale o Módulo PDPM (Versao 2.0)
Baixe e execute o script Musica_guns.pl (código fonte)

Veja abaixo o pequeno código fonte do programa:

#!/usr/bin/perl
#  Music: Sweet Child o Mine (Guns Roses)
# Author: Edson Duarte (
CURSO PPAS - www.insecuritynet.com.br)
use prompt_draw_insecuritynet;

sub play{
my $freq=$_[0];
my $dura=$_[1];
my $px=$_[2];
my $py=$_[3];
inet_gotoxy($px,$py); inet_color_local(15,15); print "Û";
inet_beep($freq,$dura);
inet_gotoxy($px,$py); inet_color_local(0,6)print "-";
}

sub riff {
my $ini=$_[0];
my $i=0;
for($i=0;$i<=1;$i++){
my $pxi;
my $pyi;
if($ini==297){$pxi=23; $pyi=13;}
if($ini==330){$pxi=17; $pyi=13;}
if($ini==396){$pxi=23; $pyi=14;}
play($ini,250,$pxi,$pyi);
play(594,250,14,15);
play(440,250,17,14);
play(396,250,23,14);
play(792,250,14,16);
play(440,250,17,14);
play(748,250,17,16);
play(440,250,17,14);
}
}

inet_color_geral(1,10);
print "\n Guns Roses - Sweet child o mine (Guitar Lesson)";
my $i=0;
my $c=0;
inet_gotoxy(7,9);
for($i=17;$i>0;$i--){ if($i < 10){print " "}print " $i";}
inet_color_local(0,6);
for($c=0;$c<=6;$c++){inet_gotoxy(0,$c+10); inet_color_local(3,6); $i=0;
print "----|";
inet_color_local(0,6);
for($i=0;$i<=17;$i++){print "--|";}
}
inet_color_local(1,3);
inet_gotoxy(0,3);
print " ÛÛÛÛ\nÛÛÛÛÛÛÛÛ\nÛÛÛÛÛÛÛÛÛÛ\nÛÛÛÛÛÛÛÛÛ\nÛÛÛÛÛÛÛÛ\nÛÛÛÛÛÛÛ\nÛÛÛÛÛÛ";
inet_gotoxy(0,17);
print "ÛÛÛÛÛÛ\nÛÛÛÛÛÛÛ\nÛÛÛÛÛÛÛÛ\nÛÛÛÛÛÛÛ\n ÛÛÛ";
inet_gotoxy(15,19);
print "Participe de nosso curso de Programacao em Perl";
inet_gotoxy(38,20);
inet_color_local(1,7);
print "www.insecuritynet.com.br";
$i=0;
for($i=0;$i<=1;$i++){
riff(297);
riff(330);
riff(396);
riff(297);
}
inet_pause;
  • 19/02/2014

  • by Insecuritynet

Compartilhar

logo