Sha256: d663213cecedd737d0cbae0afc88240d6b933eb8167252420789e277b2b42f8d

Contents?: true

Size: 607 Bytes

Versions: 323

Compression:

Stored size: 607 Bytes

Contents

package Example;

use strict;
use warnings;
use List::Util 'first';

sub new {
    my ($class, $word) = @_;
    return bless { word => lc $word } => $class;
}
sub score {
    my ($self, %extension) = @_;
    my $score = 0;

    my %values = qw(
        aeioulnrst 1 dg 2 bcmp 3 fhvwy 4
        k 5 jx 8 qz 10
        ZERO 0
    );

    foreach my $c (split '' => $self->{word}) {
        $score += $values{ first { /$c/ } keys %values or 'ZERO' }
    }

    $score *= (2 ** $extension{double}) if $extension{double};
    $score *= (3 ** $extension{triple}) if $extension{triple};

    return $score ;
}

1;

Version data entries

323 entries across 323 versions & 1 rubygems

Version Path
trackler-2.2.1.25 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.24 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.23 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.22 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.21 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.20 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.19 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.18 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.17 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.16 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.15 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.14 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.13 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.12 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.11 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.10 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.9 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.8 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.7 tracks/perl5/exercises/scrabble-score/Example.pm
trackler-2.2.1.6 tracks/perl5/exercises/scrabble-score/Example.pm