App-ForKids-LogicalPuzzleGenerator
view release on metacpan or search on metacpan
lib/App/ForKids/LogicalPuzzleGenerator/Variable/Color.pm view on Meta::CPAN
package App::ForKids::LogicalPuzzleGenerator::Variable::Color;
use strict;
use warnings FATAL => 'all';
use Carp;
use base 'App::ForKids::LogicalPuzzleGenerator::Variable';
=head1 NAME
App::ForKids::LogicalPuzzleGenerator::Variable::Color
=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 @colors =
(
"white",
"blue",
"green",
"black",
"red",
"grey",
"yellow"
);
=head1 SUBROUTINES/METHODS
=head2 new
=cut
sub new
{
my $class = shift;
my $this = $class->SUPER::new(@_);
# select the colors
for my $i (0..$$this{amount_of_values}-1)
{
while (1)
{
my $value = $colors[int(rand()*@colors)];
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 favourite color";
}
=head2 get_description_I
=cut
sub get_description_I
{
my ($this, $color) = @_;
return sprintf("I like %s.", $color);
}
=head2 get_description_the_one_who
=cut
sub get_description_the_one_who
{
my ($this, $color) = @_;
return sprintf("The one who likes %s", $color);
}
=head2 get_description_he_does_not
=cut
sub get_description_he_does_not
{
my ($this, $color) = @_;
return sprintf("does not like %s.", $color);
}
=head2 get_description_I_dont
( run in 0.557 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )