Érdekességként írtam ezt a kódrészletet, ami a Console.Beep()-pet hasznossá teszi. Megadsz neki egy üzenetet, azt meg átalakítja morse kóddá és lecsipogja. Hasznos lehet például tanulás céljából, de akármilyen célra fel lehet használni. Mondjuk puskázás céljából.
A függvény pedig a következő: Nem, nem működik szervereken, így ASP.Net-ből nem lehet a szervergépet csipogtatni a szerverteremben. Shit.
// A tábla forrása: http://hu.wikipedia.org/wiki/Morzekód
public static readonly Dictionary<char, string> Table = new Dictionary<char, string>
{
// latin betűk
{ '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', "--.." },
// számok
{ '1', ".----" }, { '2', "..---" }, { '3', "...--" }, { '4', "....-" }, { '5', "....." },
{ '6', "-...." }, { '7', "--..." }, { '8', "---.." }, { '9', "----." }, { '0', "-----" },
// speciális karakterek
{ '/', "-..-." }, { '+', ".-.-." }, { '=', "-...-" }, { '.', ".-.-.-" }, { ',', "--..--" },
{ '?', "..--.." }, { '!', "--.--" }, { '(', "-.--." }, { ')', "-.--.-" }, { '-', "-....-" },
{ '_', "..--.-" }, { '\'', ".----." }, { ':', "---..." }, { ';', "-.-.-." }, { '$', "...-..-" },
{ '@', ".--.-." }, { ' ', " " },
// magyar ékezetes karaterek
{ 'Á', ".--.-" }, { 'É', "..-.." }, { 'Ö', "---." }, { 'Ü', "..--" }, { 'Í', ".." },
{ 'Ó', "---" }, { 'Ú', "..-" }, { 'Ő', "---." }, { 'Ű', "..--" }
};
public static void Morse(string message)
{
Console.Write(String.Format("Üzenet: '{0}'\r\nMorse : ", message));
foreach (var codes in from chr in message.ToUpper() where Table.ContainsKey(chr) select Table[chr])
{
foreach (var code in codes)
{
Console.Write(code);
switch (code)
{
case '.':
Console.Beep(392, 500); // ti esetén 392 Hz 500 milliszekundumig
Thread.Sleep(100);
break;
case '-':
Console.Beep(220, 1000); // tá esetén 220 Hz 1 másodpercig
Thread.Sleep(100);
break;
case ' ':
Thread.Sleep(1000); // szóköz esetén 1 másodpercig kussol
break;
}
}
Console.Write(" ");
Thread.Sleep(1000);
}
}
lab.rolisoft.net