App-ForKids-LogicalPuzzleGenerator

 view release on metacpan or  search on metacpan

lib/App/ForKids/LogicalPuzzleGenerator/Variable/Fruit.pm  view on Meta::CPAN

package App::ForKids::LogicalPuzzleGenerator::Variable::Fruit;

use strict;
use warnings FATAL => 'all';
use Carp;
use base 'App::ForKids::LogicalPuzzleGenerator::Variable';


=head1 NAME

App::ForKids::LogicalPuzzleGenerator::Variable::Fruit

=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 @fruits =
(
	"apples",
	"pears",
	"cherries",
	"strawberries",
	"pinapples",
	"oranges"
);


=head1 SUBROUTINES/METHODS

=head2 new

=cut

sub new
{
	my $class = shift;
	my $this = $class->SUPER::new(@_);

	# select the fruits
	for my $i (0..$$this{amount_of_values}-1)
	{
		while (1)
		{
			my $value = $fruits[int(rand()*@fruits)];
			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 fruit";
}

=head2 get_description_I

=cut

sub get_description_I
{
	my ($this, $fruit) = @_;
	return sprintf("I like %s.", $fruit);
}

=head2 get_description_I_dont

=cut

sub get_description_I_dont
{
	my ($this, $fruit) = @_;
	return sprintf("I don't like %s.", $fruit);
}

=head2 get_description_he_does_not

=cut

sub get_description_he_does_not
{
	my ($this, $fruit) = @_;
	return sprintf("does not like %s.", $fruit);
}

=head2 get_description_the_one_who

=cut



( run in 0.946 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )