diff options
| author | Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com> | 2019-11-23 17:22:32 +0100 |
|---|---|---|
| committer | Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com> | 2019-11-23 17:24:26 +0100 |
| commit | a894eaaa172761238059561dbaab5212699b7958 (patch) | |
| tree | 4ccc217f3a3b8531ac9a2dc95e401b09f8f76398 /challenge-035 | |
| parent | a8335bfb9ca44cdfbb14bf712e226bab1470d8f6 (diff) | |
| download | perlweeklychallenge-club-a894eaaa172761238059561dbaab5212699b7958.tar.gz perlweeklychallenge-club-a894eaaa172761238059561dbaab5212699b7958.tar.bz2 perlweeklychallenge-club-a894eaaa172761238059561dbaab5212699b7958.zip | |
Perl Weekly Challenge 035
Diffstat (limited to 'challenge-035')
| -rw-r--r-- | challenge-035/giuseppe-terlizzi/perl5/ch-1.pl | 86 | ||||
| -rw-r--r-- | challenge-035/giuseppe-terlizzi/perl5/ch-2.pl | 70 |
2 files changed, 156 insertions, 0 deletions
diff --git a/challenge-035/giuseppe-terlizzi/perl5/ch-1.pl b/challenge-035/giuseppe-terlizzi/perl5/ch-1.pl new file mode 100644 index 0000000000..b589191f95 --- /dev/null +++ b/challenge-035/giuseppe-terlizzi/perl5/ch-1.pl @@ -0,0 +1,86 @@ +#!/usr/bin/perl + +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-035/ + +# dot: 1 +# dash: 111 +# intra-character gap: 0 +# character gap: 000 +# word gap: 0000000 + +use strict; +use warnings; +use v5.10; + + +my %morse = ( + a => '10111', + b => '111010101', + c => '11101011101', + d => '1110101', + e => '1', + f => '101011101', + g => '111011101', + h => '1010101', + i => '101', + j => '1011101110111', + k => '111010111', + l => '101110101', + m => '1110111', + n => '11101', + o => '11101110111', + p => '10111011101', + q => '1110111010111', + r => '1011101', + s => '101010', + t => '111', + u => '1010111', + v => '101010111', + w => '101110111', + x => '11101010111', + y => '1110101110111', + z => '11101110101', + + 0 => '1110111011101110111', + 1 => '10111011101110111', + 2 => '101011101110111', + 3 => '1010101110111', + 4 => '10101010111', + 5 => '101010101', + 6 => '11101010101', + 7 => '1110111010101', + 8 => '111011101110101', + + 9 => '11101110111011101', + + ' ' => '0000000', + +); + +my $string = shift; +my @items = split //, $string; + +my $code = ''; + +foreach ( @items ) { + + my $b = $morse{lc($_)}; + my $s = $b; + $s =~ s/111/—/g; + $s =~ s/1/•/g; + $s =~ s/0/ /g; + + #say "$_ : $b \t $s"; + + say $s; + #print "000"; + + $code .= $b; + $code .= '000'; + +} + +$code =~ s/0000000000/0000000/g; +$code =~ s/000$//; + +say $code; diff --git a/challenge-035/giuseppe-terlizzi/perl5/ch-2.pl b/challenge-035/giuseppe-terlizzi/perl5/ch-2.pl new file mode 100644 index 0000000000..b317beeb4c --- /dev/null +++ b/challenge-035/giuseppe-terlizzi/perl5/ch-2.pl @@ -0,0 +1,70 @@ +#!/usr/bin/perl + +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-035/ + +# dot: 1 +# dash: 111 +# intra-character gap: 0 +# character gap: 000 +# word gap: 0000000 + +use strict; +use warnings; +use v5.10; + + +my %morse = ( + '10111' => 'a', + '111010101' => 'b', + '11101011101' => 'c', + '1110101' => 'd', + '1' => 'e', + '101011101' => 'f', + '111011101' => 'g', + '1010101' => 'h', + '101' => 'i', + '1011101110111' => 'j', + '111010111' => 'k', + '101110101' => 'l', + '1110111' => 'm', + '11101' => 'n', + '11101110111' => 'o', + '10111011101' => 'p', + '1110111010111' => 'q', + '1011101' => 'r', + '101010' => 's', + '111' => 't', + '1010111' => 'u', + '101010111' => 'v', + '101110111' => 'w', + '11101010111' => 'x', + '1110101110111' => 'y', + '11101110101' => 'z', + + '1110111011101110111' => 0, + '10111011101110111' => 1, + '101011101110111' => 2, + '1010101110111' => 3, + '10101010111' => 4, + '101010101' => 5, + '11101010101' => 6, + '1110111010101' => 7, + '111011101110101' => 8, + '11101110111011101' => 9, + + '0000000' => ' ', +); + +my $string = shift; +$string =~ s/0000000/ /; + +my @items = split /000/, $string; +my $words = ''; +foreach ( @items ) { + + my $b = $morse{$_} || ' '; + $words .= $b; + +} + +say $words; |
