package joueur; use strict; use warnings; our $info="Fichier classe : " . __FILE__ . "\nNom classe : " . __PACKAGE__ . "\nLigne : " . __LINE__ . "\n\n"; #constructeur sub new { my ( $classe, $nom ) = @_; #on passe les données au constructeur my $this = { "joueur" => "$nom", "x" => 0, "y" => 0 }; bless( $this, $classe ); #lie la référence à la classe return $this; #on retourne la référence consacrée } sub avance { my ( $this, $nb_case ) = @_; $this->{y} += $nb_case; } sub recule { my ( $this, $nb_case ) = @_; $this->{y} -= $nb_case; } sub tourne_gauche { my ( $this, $nb_case ) = @_; $this->{x} -= $nb_case; } sub tourne_droite { my ( $this, $nb_case ) = @_; $this->{x} += $nb_case; } sub position { my $this = shift; print "Joueur $this->{joueur} se situe x=$this->{x} y=$this->{y}\n"; } sub AUTOLOAD { our $AUTOLOAD; print "ERREUR : La fonction $AUTOLOAD n'a pas été définie !\n"; } # Destructeur sub DESTROY { my $this = shift; print "$this->{joueur} : Partie terminée...\n"; } 1;