My BlackJack game in the C # console

what do you think of my BlackJack game regarding object-oriented programming?

My code is at the address https://github.com/ngaisteve1/BlackJack

using the system;
using System.Threading;

public class BlackJackGame
{
deckCard static private deck;
public void Play ()
{
bool continuePlay = true;

Console.Title = "Steve BlackJack Game (Version 2)";
Console.Write ("Steve BlackJack Game");
Utility.MakeColor2 ("", ConsoleColor.White);
Utility.MakeColor2 ("♥", ConsoleColor.Red);
Utility.MakeColor2 ("", ConsoleColor.White);
Utility.MakeColor2 ("♦", ConsoleColor.Red);

deck = new deckCard ();
Console.Write (" n  nEnter the player name:");

// Create a player
var player = new Player (Console.ReadLine ());

// Create a reseller
var dealerComputer = new player ();

while (continuePlay)
{
// Initialize the screen and some properties of the player - Start
Console.Clear ();
player.IsNaturalBlackJack = false;
player.IsBusted = false;
dealerComputer.IsNaturalBlackJack = false;
dealerComputer.IsBusted = false;
// Initialize the screen and some properties of the player - End

if (deck.GetRemainingDeckCount () <20)
{
// Gets a new mixed deck.
deck.Initialize ();
Console.WriteLine ("Low number of cards remaining, a new cold deck has been created.");
}

deck.ShowRemainingDeckCount ();

// show the player's bank
Console.WriteLine ($ "{player.Name} Chip Balance: {player.ChipsOnHand}");

// Get the amount of the player bet
Console.Write ("Enter bet amount:");
player.ChipsOnBet = Convert.ToInt16 (Console.ReadLine ());

// distribute the first two cards to the player
deck.DealHand (player);

// show the player's hand
player.ShowUpCard ();
Thread.Sleep (1500);

// Distribute the first two cards to the dealer
bridge.DealHand (dealerComputer);

// show the dealer's hand
dealerComputer.ShowUpCard (true);
Thread.Sleep (1500);
// Check black jack natural
if (! checkNaturalBlack (player, reseller))
{
// if both do not have natural blackjack either,
// then, the player's turn to continue.
PlayerAction (player);

Console.WriteLine (" n ------------------------------------------- ---- ------- ");

PlayerAction (dealerComputer);

Console.WriteLine (" n ------------------------------------------- ---- ------- ");

// Announce the winner.
AnnounceWinner (player, dealerComputer);
}

Console.WriteLine ("This turn is over.");

Console.Write (" nplay again? Y or N?");

continuePlay = Console.ReadLine () == "Y"? right wrong;
// for the sake of brevity, no validation of entry
}

Console.WriteLine ($ "{player.Name} has gained {player.TotalWins} times.");
Console.WriteLine ($ "{dealerComputer.Name} earned {dealerComputer.TotalWins} times.");
Console.WriteLine ("Completed game, thank you for playing.");

}

PlayerAction (Player currentPlayer) static private
{
// put on the player's turn

bool playerTurnContinue = true;

string opt = "";

while (playerTurnContinue)
{
Console.Write ($ " n {currentPlayer.Name}, in turn.");

if (currentPlayer.Name.Equals ("Dealer")))
{
Thread.Sleep (2000); // simulating the reflection time.
// Mini A.I for the dealer.
opt = currentPlayer.GetHandValue () < 16 ? "H" : "S";
        }
        else
        {
            // Prompt player to enter Hit or Stand.
            Console.Write("Hit (H) or Stand (S): ");
            opt = Console.ReadLine();
        }

        switch (opt.ToUpper())
        {
            case "H":
                Console.Write($"{currentPlayer.Name} hits. ");
                Thread.Sleep(1500);
                // Take a card from the deck and put into player's Hand.
                currentPlayer.Hand.Add(deck.DrawCard());
                Thread.Sleep(1500);

                // Check if there is any Ace in the Hand. If yes, change all the Ace's value to 1.
                if (currentPlayer.GetHandValue() > 21 && currentPlayer.CheckAceInHand ())
currentPlayer.Hand = currentPlayer.ChangeAceValueInHand ();

currentPlayer.ShowHandValue ();

Pause;
case "S":
if (currentPlayer.GetHandValue () < 16)
                    Console.WriteLine($"{currentPlayer.Name} is not allowed to stands when hand value is less than 16.");
                else
                {
                    Console.WriteLine($"{currentPlayer.Name} stands.");
                    Thread.Sleep(1500);
                    // Show player's hand
                    currentPlayer.ShowUpCard();
                    Thread.Sleep(1500);
                    Console.WriteLine($"{currentPlayer.Name}'s turn is over.");
                    Thread.Sleep(1500);
                    playerTurnContinue = false;
                }

                break;
            default:
                Console.WriteLine("Invalid command.");
                break;
        }

        // If current player is busted, turn is over.
        if (currentPlayer.GetHandValue() > 21)
{
Utility.MakeColor ("Busted!", ConsoleColor.Red);
Thread.Sleep (1500);
Console.WriteLine (the turn of $ "{currentPlayer.Name} is complete.");
Thread.Sleep (1500);
currentPlayer.IsBusted = true;
playerTurnContinue = false;
}
// If the total of the player in hand is 5, the turn is over.
else if (currentPlayer.Hand.Count == 5)
{
Console.WriteLine ($ "{currentPlayer.Name} already has 5 cards in hand.");
Thread.Sleep (1500);
Console.WriteLine (the turn of $ "{currentPlayer.Name} is complete.");
Thread.Sleep (1500);
playerTurnContinue = false;
}


}
}



private static bool checkNaturalBlack (Player _player, Player _dealer)
{
Console.WriteLine ();
if (_dealer.IsNaturalBlackJack && _player.IsNaturalBlackJack)
{
Console.WriteLine ("The player and the dealer have a natural Blackjack.Tie Game!");
_dealer.ShowUpCard ();

return true;
}
else if (_dealer.IsNaturalBlackJack &&! _player.IsNaturalBlackJack)
{
Console.WriteLine ($ "{_ dealer.Name} got a natural BlackJack. {_Dealer.Name} won!");
_dealer.ShowUpCard ();
_dealer.AddWinCount ();
_player.ChipsOnHand = _player.ChipsOnHand - (int) Math.Floor (_player.ChipsOnBet * 1.5);
return true;
}
else if (! _dealer.IsNaturalBlackJack && _player.IsNaturalBlackJack)
{
Console.WriteLine ($ "{_ player.Name} got a natural BlackJack. {_Player.Name} won!");
_player.AddWinCount ();
_player.ChipsOnHand = _player.ChipsOnHand + (int) Math.Floor (_player.ChipsOnBet * 1.5);
return true;
}

// guard block
returns false;
}

AnnounceWinner (Player _player, Player _dealer)
{
Console.WriteLine ();
if (! _dealer.IsBusted && _player.IsBusted)
{
Console.WriteLine ($ "{_ dealer.Name} won.");
_dealer.AddWinCount ();
}
else if (_dealer.IsBusted &&! _player.IsBusted)
{
Console.WriteLine ($ "{_ player.Name} won.");
_player.AddWinCount ();
_player.ChipsOnHand = _player.ChipsOnHand + _player.ChipsOnBet;
}
else if (_dealer.IsBusted && _player.IsBusted)
Console.WriteLine ("Tie game.");
if not (! _dealer.IsBusted &&! _player.IsBusted)
if (_player.GetHandValue ()> _dealer.GetHandValue ())
{
Console.WriteLine ($ "{_ player.Name} won.");
_player.AddWinCount ();
_player.ChipsOnHand = _player.ChipsOnHand + _player.ChipsOnBet;
}
else if (_player.GetHandValue () <_dealer.GetHandValue ())
{
Console.WriteLine ($ "{_ dealer.Name} won.");
_dealer.AddWinCount ();
_player.ChipsOnHand = _player.ChipsOnHand - _player.ChipsOnBet;
}

else if (_player.GetHandValue () == _dealer.GetHandValue ())
Console.WriteLine ("Tie Game.");


}

}