From 0eb68cc339c5f484b2582311a39190c1bd96df11 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Tue, 3 Feb 2015 13:32:40 -0500 Subject: [PATCH] Add per-platform ANSI art to HelloWorld --- .../HelloWorld/HelloWorld.cs | 134 ++++++++++++++++-- 1 file changed, 120 insertions(+), 14 deletions(-) diff --git a/demos/CoreClrConsoleApplications/HelloWorld/HelloWorld.cs b/demos/CoreClrConsoleApplications/HelloWorld/HelloWorld.cs index b4bd3ef5859..a6ce0294c29 100644 --- a/demos/CoreClrConsoleApplications/HelloWorld/HelloWorld.cs +++ b/demos/CoreClrConsoleApplications/HelloWorld/HelloWorld.cs @@ -7,20 +7,29 @@ internal class Program { private static void Main(string[] args) { - int squareSize = 20; - - // If the user specified an argument, we'll use it as the size - // of the squares. - - if (args.Length == 1) + if (args.Length == 1 && args[0] == "linux") + { + DrawLinux(); + } + else if (args.Length == 1 && args[0] == "mac") { - int.TryParse(args[0], out squareSize); - squareSize = Math.Max(1, Math.Min(40, squareSize)); + DrawMac(); } + else + { + DrawWindows(); + } + + Console.WriteLine(); + Console.WriteLine("Press ENTER to exit ..."); + Console.ReadLine(); + } - // Draw flag + private static void DrawWindows() + { + Console.WriteLine("Hello, Windows..."); - const char filled = '@'; + const int squareSize = 20; var colors = new[] { ConsoleColor.Red, ConsoleColor.Green, ConsoleColor.Blue, ConsoleColor.Yellow }; for (int row = 0; row < 2; row++) @@ -31,16 +40,113 @@ private static void Main(string[] args) Console.Write(" "); for (int col = 0; col < 2; col++) { + Console.BackgroundColor = colors[row * 2 + col]; Console.ForegroundColor = colors[row * 2 + col]; - for (int j = 0; j < squareSize; j++) Console.Write(filled); + for (int j = 0; j < squareSize; j++) Console.Write('@'); Console.ResetColor(); - Console.Write(" "); } } } Console.WriteLine(); + } + + private static void DrawLinux() + { + Console.WriteLine("Hello, Linux..."); + + const string Penguin = @" + + @@@@@ + @@@@@@@@@@ + @@@@@@@@@@@@@ + @@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@ + @@@ @@@@@@@ @@@@@ + @@ @@@@ @@@@@ + @@ @@ @@ @@ @@@@ + @@ @@ @@@ @@@ @@@@ + @ @@---- @@@ @@@@ + @ @-------@ @@@@@ + @------------@@@@@ + @------------@@@@@ + @------------@@@@@ + @------------@@@@@ + @ --------- @@@@@@ + @ ------ @@@@@@@ + @@ -- @@@@@@ + @@@ @@@@@@@ + @@ @@@@@@ + @@@ @@@@@@@ + @@@ @@@@@@@ + @@@@ @@@@@@@@ + @@@@@ @@@@@@@@@ + @@@@@ @@@@@@@@ + @@@@ @@@@@@@@ + @@@@ * @@@@@@@@ + @@@@ **** @@@@@@@@ + @@@ ***** @@@@@@@@ + @@@@ * ****** @@@@@@@@ + @@@ ** *** *** @@@@@@@@ + @@@@ ******* *** @@@@@@@@@ + @@@@ * **** *** @@@@@@@@@ + @@@@@ ******* *** @@@@@@@@@ + @@@@@ ** *** *** @@@@@@@@@ + @@@@@ * ****** @@@@@@@@@ + @@@@@ ***** @@@@@@@@@ + ---@@ **** @@@@@@@@ + -----@@ * ---@@@@@@@ + ------@@ ----@@@@@@-- + ------------@@ ---@@@@@@-- + ------------@@@@ ----@@@@---- + -------------@@@@ ------------- + --------------@@@@ -------------- + --------------@@@@ --------------- + ---------------@@@ @---------------- + ---------------- @@----------------- + ---------------- @@@----------------- + ------------------ @@@@@---------------- + ------------------@@ @@@@@@@@-------------- + -------------------@@@@@@@@@@@@@@------------ + ------------------@@@@@@@@@@@@@@---------- + --------------@@@@@@@@@@@@@@@--------- + @---------@ @------- + @----@@ @@----- + @@ @@@ + +"; + foreach (char c in Penguin) + { + if (c == '\n') + { + Console.ResetColor(); + Console.WriteLine(); + } + else + { + ConsoleColor cc = + c == '*' ? ConsoleColor.Blue : + c == '@' ? ConsoleColor.Black : + c == '-' ? ConsoleColor.Yellow : + ConsoleColor.White; + Console.BackgroundColor = cc; + Console.ForegroundColor = cc; + Console.Write(" "); + } + } + + Console.ResetColor(); Console.WriteLine(); - Console.WriteLine("Press ENTER to exit ..."); - Console.ReadLine(); + } + + private static void DrawMac() + { + Console.WriteLine("Hello, Mac..."); + Console.WriteLine(); + + // TODO: Something pretty here :) } } \ No newline at end of file