Straddling checkerboard: Difference between revisions

(→‎{{header|C#}}: added C#)
Line 491:
encoded: 851250658510769169969669562650650702563524767622663912037028673288640
decoded: INTHEWINTER1965/WEWEREHUNGRY/JUSTBARELYALIVE</lang>
 
=={{header|C#}}==
Translation of [[Straddling_checkerboard#Java|Java]] via [[Straddling_checkerboard#D|D]]
<lang csharp>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
 
namespace StraddlingCheckerboard
{
class Program
{
public static Dictionary<char, string> Val2Key;
public static Dictionary<string, char> Key2Val;
 
static Program()
{
Val2Key = new Dictionary<char, string> {
{'A',"30"}, {'B',"31"}, {'C',"32"}, {'D',"33"}, {'E',"5"}, {'F',"34"}, {'G',"35"},
{'H',"0"}, {'I',"36"}, {'J',"37"}, {'K',"38"}, {'L',"2"}, {'M',"4"}, {'.',"78"},
{'N',"39"}, {'/',"79"}, {'O',"1"}, {'0',"790"}, {'P',"70"}, {'1',"791"}, {'Q',"71"},
{'2',"792"}, {'R',"8"}, {'3',"793"}, {'S',"6"}, {'4',"794"}, {'T',"9"}, {'5',"795"},
{'U',"72"}, {'6',"796"},{'V',"73"}, {'7',"797"}, {'W',"74"}, {'8',"798"}, {'X',"75"},
{'9',"799"}, {'Y',"76"}, {'Z',"77"}};
 
Key2Val = Val2Key.ToDictionary(kv => kv.Value, kv => kv.Key);
}
 
public static string Encode(string s)
{
return string.Concat(s.ToUpper().ToCharArray()
.Where(c => Val2Key.ContainsKey(c)).Select(c => Val2Key[c]));
}
 
public static string Decode(string s)
{
return string.Concat(Regex.Matches(s, "79.|7.|3.|.").Cast<Match>()
.Where(m => Key2Val.ContainsKey(m.Value)).Select(m => Key2Val[m.Value]));
}
 
static void Main(string[] args)
{
var enc = Encode("One night-it was on the twentieth of March, 1888-I was returning");
Console.WriteLine(enc);
Console.WriteLine(Decode(enc));
 
Console.ReadLine();
}
}
}</lang>
<pre>139539363509369743061399059745399365901344308320791798798798367430685972839363935
ONENIGHTITWASONTHETWENTIETHOFMARCH1888IWASRETURNING</pre>
 
=={{header|C++}}==
Anonymous user