Skip to content
This repository has been archived by the owner on Aug 2, 2023. It is now read-only.

Add per-platform ANSI art to HelloWorld #9

Merged
merged 1 commit into from
Feb 3, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 120 additions & 14 deletions demos/CoreClrConsoleApplications/HelloWorld/HelloWorld.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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++)
Expand All @@ -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 :)
}
}