using System.Collections.Generic;
static Random rand = new Random();
static List<string> deck = new List<string>();
static List<string> playerHand = new List<string>();
static List<string> dealerHand = new List<string>();
static void Main(string[] args)
Console.WriteLine("Üdvözlünk a kaszinóban!");
Console.WriteLine("Ismered a Blackjack játékot?");
string val = Console.ReadLine();
Console.WriteLine("Szuper! Akkor kezdheted is!");
Console.WriteLine("Semmi baj! Elmagyarázzuk a szabályokat.");
Console.WriteLine("A játék célja, hogy a játékos lapjainak összértéke minél közelebb legyen a huszonegyhez, de azt ne lépje túl.");
Console.WriteLine("A játékot meghatározott tétre játsszák. A játékosnak az osztás előtt meg kell tenni a tétet. Ha a játékos elveszti a játékot, akkor elveszíti a megtett tétet. ");
Console.WriteLine("Ha a játékos nyer, akkor a megtett tétet 2:1 arányban kapja vissza.");
Console.WriteLine("A játékos az osztást követően lapot kérhet (Hit), megállhat (Stand).");
else { Console.WriteLine("Sajnos ezt nem értem.");
} } while (val != igen & val != nem);
if (GetHandValue(playerHand) <= 21)
string[] suits = { "Hearts", "Diamonds", "Clubs", "Spades" };
string[] values = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A" };
foreach (string suit in suits)
foreach (string value in values)
deck.Add($"{value} of {suit}");
static void ShuffleDeck()
for (int i = 0; i < deck.Count; i++)
int j = rand.Next(deck.Count);
static void DealInitialCards()
Console.WriteLine("Your hand:");
Console.WriteLine("Dealer's visible card:");
Console.WriteLine(dealerHand[0]);
static void ShowHand(List<string> hand)
foreach (string card in hand)
static int GetHandValue(List<string> hand)
foreach (string card in hand)
string cardValue = card.Split(' ')[0];
else if (cardValue == "K" || cardValue == "Q" || cardValue == "J")
value += int.Parse(cardValue);
while (value > 21 && aceCount > 0)
Console.WriteLine($"Your hand value: {GetHandValue(playerHand)}");
if (GetHandValue(playerHand) > 21)
Console.WriteLine("You bust! Dealer wins.");
Console.WriteLine("Do you want to (h)it or (s)tand?");
string choice = Console.ReadLine().ToLower();
Console.WriteLine("You drew: " + playerHand[playerHand.Count - 1]);
Console.WriteLine("You chose to stand.");
Console.WriteLine("\nDealer's hand:");
while (GetHandValue(dealerHand) < 17)
Console.WriteLine("Dealer chooses to hit.");
Console.WriteLine("Dealer drew: " + dealerHand[dealerHand.Count - 1]);
if (GetHandValue(dealerHand) > 21)
Console.WriteLine("Dealer busts! You win.");
Console.WriteLine($"Dealer's hand value: {GetHandValue(dealerHand)}");
int playerValue = GetHandValue(playerHand);
int dealerValue = GetHandValue(dealerHand);
Console.WriteLine("You bust! Dealer wins.");
else if (dealerValue > 21)
Console.WriteLine("Dealer busts! You win.");
else if (playerValue > dealerValue)
Console.WriteLine("You win!");
else if (dealerValue > playerValue)
Console.WriteLine("Dealer wins.");
Console.WriteLine("It's a tie!");