public override void Update()
        {
            ConsoleKeyInfo keyInfo = Console.ReadKey();
            char           keyChar = keyInfo.KeyChar;

            if (keyInfo.Key == ConsoleKey.Spacebar)
            {
                game.DrawCard();
            }

            // 0 to 9 to select a stack.
            if (keyChar >= 48 && keyChar <= 57)
            {
                int       chosenStackIndex = (int)keyChar - 48;
                CardStack chosenStack      = game.GetStack(chosenStackIndex);

                if (chosenStack.IsFaceUp)
                {
                    game.SelectedStackIndex = chosenStackIndex;
                    game.NumCardsSelected   = 1;
                    game.SetState(new SolitaireStateSelectingDestinationStack());
                }
                else
                {
                    game.FlipCardUp(chosenStackIndex);
                    game.SetState(new SolitaireStateSelectingStack());
                }
            }
        }
        public override void Update()
        {
            ConsoleKeyInfo keyInfo = Console.ReadKey();

            char keyChar = keyInfo.KeyChar;

            // up or down to select an amount of cards.
            if (keyInfo.Key == ConsoleKey.DownArrow)
            {
                game.NumCardsSelected--;
            }
            else if (keyInfo.Key == ConsoleKey.UpArrow)
            {
                game.NumCardsSelected++;
            }

            // 0 to 9 to select a stack.
            else if (keyChar >= 48 && keyChar <= 57)
            {
                int chosenStack;
                chosenStack = (int)keyChar - 48;
                game.MoveCards(chosenStack);
                game.SelectedStackIndex = -1;
                game.SetState(new SolitaireStateSelectingStack());
            }
        }