Acme-IRC-Art
view release on metacpan or search on metacpan
lib/Acme/IRC/Art.pm view on Meta::CPAN
#!/usr/bin/perl
package Acme::IRC::Art;
use strict;
use Carp;
no warnings;
BEGIN {
use Exporter ();
use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
$VERSION = 0.2;
@ISA = qw (Exporter);
#Give a hoot don't pollute, do not export more than needed by default
@EXPORT = qw ();
@EXPORT_OK = qw ();
%EXPORT_TAGS = ();
}
=head1 NOM
Acme::IRC::Art -
=head1 SYNOPSIS
use Acme::IRC::Art;
use NET::IRC;
...
définition d'un connexion avec Net::IRC (voir la documentation de NET::IRC)
...
my $art = Art->new(5,5);
$art->rectangle(0,0,4,4,2);
for ($art->result) {
$connection_irc->privmsg("#channel",$_);
select(undef,undef,undef,0.5);
}
=head1 DESCRIPTION
Acme::IRC::Art est un module qui vous permet de faire des jolis dessins sur l'irc comme si vous utilisiez une librairie
graphique très basique, il n'a pas était conçut pour faire de l'ascii art ( faire automatiquement des
dessins avec les caractères acsii), il se contente de manipuler des couleurs et du texte.
Vous pouvez l'utiliser avec n'importe quel module qui fournis un client irc (eg Net::IRC) ou dans des script perl pour des client IRC.
=head1 UTILISATION
=over
=item new
D'abord il vous faut en premier lieu appeler le constructeur qui se nome new, il se contente de creer un canevas vide sur lequel vous allez travailler,
vous pouvez spécifier sa hauteur et sa largeur, le canevas est remplis d'espace par défaut.
my $art->new($largeur,$hauteur);
Une règle à ne pas oublier c'est de définir votre dessin dans l'ordre auquel les éléments doivent apparaître
si par exemple vous definissez un texte puis que vous dessinez un rectangle dessus le texte sera effacé
=cut
sub new {
my ($class, $largeur, $hauteur) = @_;
#gestion d'erreur
my $syntaxe = 'Syntaxe correcte : $deco = Art->new(largeur, hauteur)';
croak("Les arguments de la fonction \'new\' de Art.pm sont: la largeur et la hauteur du canevas
$syntaxe") if @_!=3;
croak("Largeur et hauteur doivent être des nombres
$syntaxe") if ($largeur!~/^\d+$/ or $hauteur!~/^\d+$/);
croak("la largeur ou la hauteur ne sont pas des nombre
$syntaxe") if ($largeur!~/\d/ or $hauteur!~/\d/);
$hauteur-- and $largeur--;
my @canevas;
$#canevas = $hauteur;
#fill with spaces
foreach my $temp (0..$hauteur) {
foreach my $temp2 (0..$largeur) {
$canevas[$temp][$temp2] = " ";
}
}
my $self = {};
bless ($self,$class);
$self->{canevas} = [@canevas];
return $self;
}
( run in 1.499 second using v1.01-cache-2.11-cpan-64ef6c95b5d )