/
demorse.rb
67 lines (58 loc) · 2.23 KB
/
demorse.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env ruby
# Stupid Morse Code decoder because MSPA decided to do an entire story arc in Morse. Idiots.
decodes = {
".-" => "A",
"-..." => "B",
"-.-." => "C",
"-.." => "D",
"." => "E",
"..-." => "F",
"--." => "G",
"...." => "H",
".." => "I",
".---" => "J",
"-.-" => "K",
".-.." => "L",
"--" => "M",
"-." => "N",
"---" => "O",
".--." => "P",
"--.-" => "Q",
".-." => "R",
"..." => "S",
"-" => "T",
"..-" => "U",
"...-" => "V",
".--" => "W",
"-..-" => "X",
"-.--" => "Y",
"--.." => "Z",
".----" => "1",
"..---" => "2",
"...--" => "3",
"....-" => "4",
"....." => "5",
"-...." => "6",
"--..." => "7",
"---.." => "8",
"----." => "9",
"-----" => "0"
}
code1 = ".-- .... .- - / .- / -.. .- .-. .. -. --. / -.. .-. . .- --"
code2 = "- --- / -.-. --- -- -... .. -. . / - .... . / ..-. .. -. . ... - / --.- ..- .- .-.. .. - .. . ... / --- ..-. / .... ..- -- .- -. .. - -.-- / .-- .. - .... / - .... . / . .-.. . --. .- -. -.-. . / .- -. -.. / -. --- -... .. .-.. .. - -.-- / --- ..-. / - .... . / .- -. .. -- .- .-.. / -.- .. -. --. -.. --- --"
code3 = ".... --- .-- / -.-- --- ..- / .-- .. ... .... / -.-- --- ..- / -.-. --- ..- .-.. -.. / -.- -. --- .-- / - .... . .. .-. / .-- --- .-. .-.. -.."
code4 = "- --- / .... . .- .-. / --- -. . / -. .. --. .... - / - .... --- ... . / -- ..- - . -.. / .--. .- .-- .--. .- -.. ... / - .-. .- .. .--. ... . / ..- .--. / -.-- --- ..- .-. / ... - .- .. .-. ..."
code5 = ".- / .-.. --- .-- / -... ..- - / ..-. .-. .. . -. -.. .-.. -.-- / --. .-. --- .-- .-.. / ..- -. ... . - - .-.. . ... / -.-- --- ..- .-. / ... .-.. ..- -- -... . .-."
code6 = ".- -. -.. / .- ... / - .... . / ... --- .--. --- .-. / ... . . .--. ... / ..-. .-. --- -- / -.-- --- ..- .-. / . -.-- . ..."
code7 = "- .... . -.-- / -.. . - . -.-. - / .- / ... .... .- .-. .--. / .--. .- .. .-. / --- ..-. / . .- .-. ... / -.-. ..- - - .. -. --. / -- --- --- -. .-.. .. --. .... -"
code8 = ".- / -- -.-- ... - . .-. .. --- ..- ... / .-- --- .-.. ...- . -. / - --- -. --. ..- . / .. -. ...- .. - . ..."
c = code8
c = " #{c} "
decodes.each do |code, decode|
puts c
code = code.gsub(/\./, "\\.")
r = Regexp.new "(\s+)#{code}(\s+)"
c.gsub! r, " #{decode} "
c.gsub! r, " #{decode} "
end
puts c