Created
March 1, 2019 17:09
-
-
Save MSPigl/e8653cc97a4c459cb479591210451598 to your computer and use it in GitHub Desktop.
Script I wrote to experiment with C#. This script contains methods to convert a string to Morse Code, and play it back using console beeps.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Timers; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
using System.Threading; | |
using System.IO; | |
namespace CSharpTests | |
{ | |
class Morse | |
{ | |
static string toMorse(string text) | |
{ | |
text = text.ToLower(); | |
char[] arr = text.ToCharArray(); | |
StringBuilder morse = new StringBuilder(""); | |
foreach (char c in arr) | |
{ | |
if (Char.IsWhiteSpace(c)) | |
{ | |
morse.Append(" / "); | |
continue; | |
} | |
switch(c) | |
{ | |
case 'a': | |
morse.Append(".-"); | |
break; | |
case 'b': | |
morse.Append("-..."); | |
break; | |
case 'c': | |
morse.Append("-.-."); | |
break; | |
case 'd': | |
morse.Append("-.."); | |
break; | |
case 'e': | |
morse.Append("."); | |
break; | |
case 'f': | |
morse.Append("..-."); | |
break; | |
case 'g': | |
morse.Append("--."); | |
break; | |
case 'h': | |
morse.Append("...."); | |
break; | |
case 'i': | |
morse.Append(".."); | |
break; | |
case 'j': | |
morse.Append(".---"); | |
break; | |
case 'k': | |
morse.Append("-.-"); | |
break; | |
case 'l': | |
morse.Append(".-.."); | |
break; | |
case 'm': | |
morse.Append("--"); | |
break; | |
case 'n': | |
morse.Append("-."); | |
break; | |
case 'o': | |
morse.Append("---"); | |
break; | |
case 'p': | |
morse.Append(".--."); | |
break; | |
case 'q': | |
morse.Append("--.-"); | |
break; | |
case 'r': | |
morse.Append(".-."); | |
break; | |
case 's': | |
morse.Append("..."); | |
break; | |
case 't': | |
morse.Append("-"); | |
break; | |
case 'u': | |
morse.Append("..-"); | |
break; | |
case 'v': | |
morse.Append("...-"); | |
break; | |
case 'w': | |
morse.Append(".--"); | |
break; | |
case 'x': | |
morse.Append("-..-"); | |
break; | |
case 'y': | |
morse.Append("-.--"); | |
break; | |
case 'z': | |
morse.Append("--.."); | |
break; | |
case '0': | |
morse.Append("-----"); | |
break; | |
case '1': | |
morse.Append(".----"); | |
break; | |
case '2': | |
morse.Append("..---"); | |
break; | |
case '3': | |
morse.Append("...--"); | |
break; | |
case '4': | |
morse.Append("....-"); | |
break; | |
case '5': | |
morse.Append("....."); | |
break; | |
case '6': | |
morse.Append("-...."); | |
break; | |
case '7': | |
morse.Append("--..."); | |
break; | |
case '8': | |
morse.Append("---.."); | |
break; | |
case '9': | |
morse.Append("----."); | |
break; | |
case '.': | |
morse.Append(".-.-.-"); | |
break; | |
case ',': | |
morse.Append("--..--"); | |
break; | |
case ':': | |
morse.Append("---..."); | |
break; | |
case '?': | |
morse.Append("..--.."); | |
break; | |
case '\'': | |
morse.Append(".----."); | |
break; | |
case '-': | |
morse.Append("-....-"); | |
break; | |
case '/': | |
morse.Append("-..-."); | |
break; | |
case '(': | |
case ')': | |
morse.Append("-.--.-"); | |
break; | |
case '=': | |
morse.Append("-...-"); | |
break; | |
case '\n': | |
morse.Append(".-.-"); | |
break; | |
} | |
morse.Append(" "); | |
} | |
return morse.ToString(); | |
} | |
static void playMorse(string morse) | |
{ | |
char[] list = morse.ToCharArray(); | |
foreach(char c in list) | |
{ | |
if (Char.IsWhiteSpace(c)) | |
{ | |
Thread.Sleep(500); | |
} | |
else if (c == '.') | |
{ | |
Console.Beep(); | |
} | |
else if (c == '-') | |
{ | |
Thread.Sleep(250); | |
} | |
else | |
{ | |
Thread.Sleep(750); | |
} | |
} | |
} | |
static void Main(string[] args) | |
{ | |
string morse = toMorse("4 + 4 = 8"); | |
Console.WriteLine(morse); | |
playMorse(morse); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment