aboutsummaryrefslogtreecommitdiff
path: root/challenge-035
diff options
context:
space:
mode:
authorGiuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>2019-11-23 17:22:32 +0100
committerGiuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>2019-11-23 17:24:26 +0100
commita894eaaa172761238059561dbaab5212699b7958 (patch)
tree4ccc217f3a3b8531ac9a2dc95e401b09f8f76398 /challenge-035
parenta8335bfb9ca44cdfbb14bf712e226bab1470d8f6 (diff)
downloadperlweeklychallenge-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.pl86
-rw-r--r--challenge-035/giuseppe-terlizzi/perl5/ch-2.pl70
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;