Exemplo n.º 1
0
        public void Transform_GivenVerticalSection_ReturnsBar()
        {
            //Arrange
            var sut = new BoxDrawingTransformer();

            string[] test     = { "#", "#" };
            string   expected = "║";

            //Act
            var result = sut.Transform(test);

            //Assert
            Assert.AreEqual(expected, result[0]);
        }
Exemplo n.º 2
0
        public void Transform_GivenHorizontalSection_ReturnsBar()
        {
            //Arrange
            var sut = new BoxDrawingTransformer();

            string[] test     = { "##" };
            string[] expected = { "══" };

            //Act
            var result = sut.Transform(test);

            //Assert
            Assert.AreEqual(expected[0], result[0]);
        }
Exemplo n.º 3
0
        public void Transform_GivenInput_ReturnsNotNull()
        {
            //Arrange
            var sut = new BoxDrawingTransformer();

            string[] test = { "  ",
                              "  " };

            //Act
            var result = sut.Transform(test);

            //Assert
            Assert.NotNull(result);
        }
Exemplo n.º 4
0
        public void Transform_GivenBottomRightCornerSection_ReturnsCorner()
        {
            //Arrange
            var sut = new BoxDrawingTransformer();

            string[] test = { " #",
                              "##" };
            char     expected = '╝';

            //Act
            var result = sut.Transform(test);

            //Assert
            Assert.AreEqual(expected, result[1][1]);
        }
Exemplo n.º 5
0
        public void Transform_GivenVerticalLeftTeeSection_ReturnsTee()
        {
            //Arrange
            var sut = new BoxDrawingTransformer();

            string[] test = { " # ",
                              "## ",
                              " # " };
            char     expected = '╣';

            //Act
            var result = sut.Transform(test);

            //Assert
            Assert.AreEqual(expected, result[1][1]);
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            string[] lines     = File.ReadAllLines("input/pacmap.txt");
            string[] stretched = new string[lines.Length];
            Console.OutputEncoding = Encoding.Unicode;
            Console.CursorVisible  = false;
            int height = lines.Length;
            int width  = 0;

            for (int i = 0; i < lines.Length; i++)
            {
                var sb = new StringBuilder();
                foreach (char x in lines[i].ToCharArray())
                {
                    sb.Append(x).Append(x);
                }
                stretched[i] = sb.ToString();
                width        = Math.Max(width, stretched[i].Length);
            }

            Console.WindowHeight = height;
            Console.WindowWidth  = width + 1;

            Console.ForegroundColor = ConsoleColor.Blue;
            var drawing = new BoxDrawingTransformer().Transform(stretched);

            foreach (var line in drawing)
            {
                Console.WriteLine(line);
            }

            //draw objects
            int ghosts = 0;

            for (int i = 0; i < lines.Length; i++)
            {
                char[] x = lines[i].ToCharArray();
                for (int j = 0; j < x.Length; j++)
                {
                    if (x[j] == '.')
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.SetCursorPosition(j * 2, i);
                        Console.Write('╺');
                    }

                    if (x[j] == 'o')
                    {
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.SetCursorPosition(j * 2, i);
                        Console.Write('●');
                    }

                    if (x[j] == 'G')
                    {
                        string ghost = "";
                        switch (ghosts % 4)
                        {
                        case 0:
                            Console.ForegroundColor = ConsoleColor.Red;
                            ghost = "▲";
                            break;

                        case 1:
                            Console.ForegroundColor = ConsoleColor.Green;
                            ghost = "▼";
                            break;

                        case 2:
                            Console.ForegroundColor = ConsoleColor.Cyan;
                            ghost = "►";
                            break;

                        case 3:
                            Console.ForegroundColor = ConsoleColor.Magenta;
                            ghost = "◄";
                            break;
                        }
                        ghosts++;
                        Console.SetCursorPosition(j * 2, i);
                        Console.Write(ghost);
                    }

                    if (x[j] == 'P')
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.SetCursorPosition(j * 2, i);
                        Console.Write(@"(<  >)  ()\/");
                    }

                    if (x[j] == 'O')
                    {
                        Console.ForegroundColor = ConsoleColor.DarkYellow;
                        Console.SetCursorPosition(j * 2, i);
                        Console.Write("ὅ");
                    }

                    if (x[j] == 'C')
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.SetCursorPosition(j * 2, i);
                        Console.Write("ὡ");
                    }

                    if (x[j] == 'B')
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.SetCursorPosition(j * 2, i);
                        Console.Write("₼");
                    }

                    if (x[j] == 'A')
                    {
                        Console.ForegroundColor = ConsoleColor.DarkGreen;
                        Console.SetCursorPosition(j * 2, i);
                        Console.Write("ʘ");
                    }

                    Console.SetCursorPosition(0, lines.Length);
                }
            }

            Console.ForegroundColor = ConsoleColor.White;
            while (true)
            {
                var key = Console.ReadKey();

                var pressed = key.Key;
                Console.SetCursorPosition(width - 10, height / 2 - 1);

                switch (pressed)
                {
                case ConsoleKey.UpArrow:
                    Console.Write("↑ ");
                    break;

                case ConsoleKey.DownArrow:
                    Console.Write("↓ ");
                    break;

                case ConsoleKey.LeftArrow:
                    Console.Write("← ");
                    break;

                case ConsoleKey.RightArrow:
                    Console.Write("→ ");
                    break;

                default:
                    Console.Write(pressed.ToString().PadRight(2).Substring(0, 2));
                    break;
                }
            }
        }