robert@0: package Card; robert@0: use List::Util qw(first max maxstr min minstr reduce shuffle sum); robert@0: robert@0: sub new robert@0: { robert@0: my $class = shift; robert@0: robert@0: my $hashREF = robert@0: { robert@0: _tags => {}, robert@0: _pix => "" robert@0: }; robert@0: robert@0: $objectREF = bless($hashREF, $class); robert@0: robert@0: return $objectREF; robert@0: robert@0: } robert@0: robert@0: robert@0: sub getTags robert@0: { robert@0: $bull = @_[0]->{'_tags'}; robert@0: return keys(%$bull); robert@0: }; robert@0: sub addTags robert@0: { robert@0: $object = shift; robert@0: @add = @_; robert@0: if (@add) robert@0: { robert@0: @ohYeah = ($object->getTags(),@add); robert@0: foreach(@ohYeah){$object->{_tags}{$_} = "";} robert@0: } robert@0: return $object->getTags(); robert@0: }; robert@0: robert@0: robert@0: sub hasTags robert@0: { robert@0: $card = shift; robert@0: @rest = @_; robert@0: @test = $card->getTags(); robert@0: foreach $e(@rest){if (! (first {$e eq $_} @test)){return 0;}} robert@0: return 1; robert@0: } robert@0: robert@0: robert@0: sub setPix { $_[0]->{_pix} = $_[1]; } robert@0: sub getPix {return $_[0]->{_pix} ; } robert@0: robert@0: robert@0: 1;