fork download
  1. using System;
  2. using System.Linq;
  3.  
  4. public class Test
  5. {
  6. private const int Size = 8;
  7.  
  8. public static void Main()
  9. {
  10. Console.WriteLine(string.Join("\n", new[] { GetNose(), GetBody(), GetNose() }));
  11. }
  12.  
  13. private static string GetNose()
  14. {
  15. return string.Join("\n", Enumerable.Range(0, 2 * Size - 1).Select(GetNoseLine).ToArray());
  16. }
  17.  
  18. private static string GetNoseLine(int n)
  19. {
  20. return GetNoseHalfLine(n) + new string(Flip(GetNoseHalfLine(n)).Reverse().ToArray());
  21. }
  22.  
  23. private static string GetNoseHalfLine(int n)
  24. {
  25. return string.Join("", Enumerable.Range(0, n).Select(_ => "/").ToArray()).PadLeft(2 * Size, ' ') + "*";
  26. }
  27.  
  28. private static string GetBody()
  29. {
  30. var bar = "+" + string.Join("", Enumerable.Range(0, 2 * Size).Select(_ => "=*").ToArray()) + "+";
  31. return string.Join("\n", new[] { bar, GetTop(), GetBottom(), bar, GetBottom(), GetTop(), bar });
  32. }
  33.  
  34. private static string Flip(string line)
  35. {
  36. return new string(line.Select(c => c == '/' ? '\\' : c == '\\' ? '/' : c).ToArray());
  37. }
  38.  
  39. private static string GetTop()
  40. {
  41. return string.Join("\n", Enumerable.Range(1, Size).Select(GetLine).ToArray());
  42. }
  43.  
  44. private static string GetBottom()
  45. {
  46. return string.Join("\n", Enumerable.Range(1, Size).Reverse().Select(GetLine).Select(Flip).ToArray());
  47. }
  48.  
  49. private static string GetLine(int n)
  50. {
  51. return "|" + GetHalfLine(n) + GetHalfLine(n) + "|";
  52. }
  53.  
  54. private static string GetHalfLine(int n)
  55. {
  56. return string.Join("", Enumerable.Range(0, n).Select(_ => @"/\").ToArray()).PadLeft(Size + n, '.').PadRight(2 * Size, '.');
  57. }
  58. }
Success #stdin #stdout 0.04s 34000KB
stdin
Standard input is empty
stdout
                **                
               /**\               
              //**\\              
             ///**\\\             
            ////**\\\\            
           /////**\\\\\           
          //////**\\\\\\          
         ///////**\\\\\\\         
        ////////**\\\\\\\\        
       /////////**\\\\\\\\\       
      //////////**\\\\\\\\\\      
     ///////////**\\\\\\\\\\\     
    ////////////**\\\\\\\\\\\\    
   /////////////**\\\\\\\\\\\\\   
  //////////////**\\\\\\\\\\\\\\  
+=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*+
|......./\............../\.......|
|....../\/\............/\/\......|
|...../\/\/\........../\/\/\.....|
|..../\/\/\/\......../\/\/\/\....|
|.../\/\/\/\/\....../\/\/\/\/\...|
|../\/\/\/\/\/\..../\/\/\/\/\/\..|
|./\/\/\/\/\/\/\../\/\/\/\/\/\/\.|
|/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\|
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|.\/\/\/\/\/\/\/..\/\/\/\/\/\/\/.|
|..\/\/\/\/\/\/....\/\/\/\/\/\/..|
|...\/\/\/\/\/......\/\/\/\/\/...|
|....\/\/\/\/........\/\/\/\/....|
|.....\/\/\/..........\/\/\/.....|
|......\/\/............\/\/......|
|.......\/..............\/.......|
+=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*+
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|.\/\/\/\/\/\/\/..\/\/\/\/\/\/\/.|
|..\/\/\/\/\/\/....\/\/\/\/\/\/..|
|...\/\/\/\/\/......\/\/\/\/\/...|
|....\/\/\/\/........\/\/\/\/....|
|.....\/\/\/..........\/\/\/.....|
|......\/\/............\/\/......|
|.......\/..............\/.......|
|......./\............../\.......|
|....../\/\............/\/\......|
|...../\/\/\........../\/\/\.....|
|..../\/\/\/\......../\/\/\/\....|
|.../\/\/\/\/\....../\/\/\/\/\...|
|../\/\/\/\/\/\..../\/\/\/\/\/\..|
|./\/\/\/\/\/\/\../\/\/\/\/\/\/\.|
|/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\|
+=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*+
                **                
               /**\               
              //**\\              
             ///**\\\             
            ////**\\\\            
           /////**\\\\\           
          //////**\\\\\\          
         ///////**\\\\\\\         
        ////////**\\\\\\\\        
       /////////**\\\\\\\\\       
      //////////**\\\\\\\\\\      
     ///////////**\\\\\\\\\\\     
    ////////////**\\\\\\\\\\\\    
   /////////////**\\\\\\\\\\\\\   
  //////////////**\\\\\\\\\\\\\\