private static void Display(Connect4 game)
        {
            for (int y = 3; y < game.LineCount - 3; y++)
            {
                for (int x = 3; x < game.ColCount - 3; x++)
                {
                    Console.Write($"| {game.GetPawn(x, y)} ");
                }

                Console.WriteLine("|");
                for (int x = 3; x < game.ColCount - 3; x++)
                {
                    Console.Write($"+---");
                }

                Console.WriteLine("+");
            }

            for (int x = 3; x < game.ColCount - 3; x++)
            {
                Console.Write($"  {x - 2} ");
            }

            Console.WriteLine();
        }
        static void Main(string[] args)
        {
            var   game = new Connect4();
            Regex rx   = new Regex(@"^[+]?[1-7]+$");

            do
            {
                Display(game);
                for (;;)
                {
                    Console.WriteLine($"Player {game.PlayerNumber()} : Which column 1-{game.ColCount-6} ?");

                    var turn = Console.ReadLine();
                    int column;
                    if (!rx.IsMatch(turn))
                    {
                        Console.Error.WriteLine("Invalid input.");
                    }
                    else if (Int32.Parse(turn) < 1 || Int32.Parse(turn) > game.ColCount)
                    {
                        Console.Error.WriteLine("Invalid column number.");
                    }
                    else if (int.TryParse(turn, out column))
                    {
                        game.Play(column);
                        break;
                    }
                }
            } while (!game.Ended());

            Display(game);
            if (game.Winner() == 3)
            {
                Console.WriteLine("Draw");
            }
            else
            {
                Console.WriteLine($"Player {game.Winner()} wins.");
            }
        }