「微妙・五言絶句」をC#に移植してみた件
元ネタ
「微妙・五言絶句」を作成した件 - どんなジレンマ
「微妙・五言絶句」をF#に移植してしまった件 - GrayRecord
微妙なところが微妙に面白かったので、微妙な感じでやってみた。
using System; using System.Text; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { static Random random = new Random(); static void Main(string[] args) { System.Console.Title = "微妙・五言絶句"; string t = Console.ReadLine(); Func<string, string> k = x => GetKanji(x); Func<string, string> r = x => GetRandom(x); Console.WriteLine("{0} {1} {2} {3}", r(k(t)), r(k(t)), r(k(t)), r(k(t))); Console.WriteLine("{0} {1} {2} {3}", r(k(t)), r(k(t)), r(k(t)), r(k(t))); Console.WriteLine("{0} {1} {2} {3}", r(k(t)), r(k(t)), r(k(t)), r(k(t))); Console.WriteLine("{0} {1} {2} {3}", r(k(t)), r(k(t)), r(k(t)), r(k(t))); Console.WriteLine("{0} {1} {2} {3}", r(k(t)), r(k(t)), r(k(t)), r(k(t))); Console.Read(); } static string GetKanji(string s) { if (s == null) return string.Empty; var re = new Regex("[一-龠]"); var sb = new StringBuilder(); foreach (Match m in re.Matches(s)) sb.Append(m.Value); return sb.ToString(); } static string GetRandom(string s) { if (s == null | s.Equals(string.Empty)) return string.Empty; Func<int, int> ran = x => random.Next(0, x - 1); char[] c = s.ToCharArray(); return c[ran(s.Length)].ToString(); } } }