Sha256: 87eeb756c18057bb014349637456f5a91cfa59b0e264a6d686949a00574e5247
Contents?: true
Size: 997 Bytes
Versions: 168
Compression:
Stored size: 997 Bytes
Contents
using System; using System.Linq; public static class Diamond { public static string Make(char target) { var letters = GetLetters(target); var diamondLetters = letters.Concat(letters.Reverse().Skip(1)).ToArray(); return string.Join("\n", diamondLetters.Select(diamondLetter => MakeLine(letters.Length, diamondLetter))); } private static Tuple<char, int>[] GetLetters(char target) => Enumerable .Range('A', target - 'A' + 1) .Select((c, i) => Tuple.Create((char)c, i)) .ToArray(); private static string MakeLine(int letterCount, Tuple<char, int> rowLetter) { var letter = rowLetter.Item1; var row = rowLetter.Item2; var outerSpaces = "".PadRight(letterCount - row - 1); var innerSpaces = "".PadRight(row == 0 ? 0 : row * 2 - 1); return letter == 'A' ? $"{outerSpaces}{letter}{outerSpaces}" : $"{outerSpaces}{letter}{innerSpaces}{letter}{outerSpaces}"; } }
Version data entries
168 entries across 168 versions & 1 rubygems