App-ForKids-LogicalPuzzleGenerator
view release on metacpan or search on metacpan
lib/App/ForKids/LogicalPuzzleGenerator/Variable/Animal.pm view on Meta::CPAN
package App::ForKids::LogicalPuzzleGenerator::Variable::Animal;
use strict;
use warnings FATAL => 'all';
use Carp;
use base 'App::ForKids::LogicalPuzzleGenerator::Variable';
=head1 NAME
App::ForKids::LogicalPuzzleGenerator::Variable::Animal
=head1 VERSION
Version 0.01
=cut
our $VERSION = '0.01';
=head1 SYNOPSIS
The module is used by the App::ForKids::LogicalPuzzleGenerator.
use App::ForKids::LogicalPuzzleGenerator;
=cut
our @pets =
(
"dog",
"cat",
"parrot",
"owl",
"wolf",
"bat"
);
=head1 SUBROUTINES/METHODS
=head2 new
=cut
sub new
{
my $class = shift;
my $this = $class->SUPER::new(@_);
# select the pets
for my $i (0..$$this{amount_of_values}-1)
{
while (1)
{
my $value = $pets[int(rand()*@pets)];
if (!grep {$_ eq $value } @{$$this{selected_values}})
{
push @{$$this{selected_values}}, $value;
last;
}
}
}
return $this;
}
=head2 get_description
=cut
sub get_description
{
return "Each has a different pet";
}
=head2 get_description_I
=cut
sub get_description_I
{
my ($this, $animal) = @_;
return sprintf("I have a %s.", $animal);
}
=head2 get_description_I_dont
=cut
sub get_description_I_dont
{
my ($this, $animal) = @_;
return sprintf("I don't have a %s.", $animal);
}
=head2 get_description_he_does_not
=cut
sub get_description_he_does_not
{
my ($this, $animal) = @_;
return sprintf("does not have a %s.", $animal);
}
( run in 0.567 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )