Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Text;
- var deck = new List<KeyValuePair<string, int>>();
- var pickedCards = new List<KeyValuePair<string, int>>();
- new List<string> { "♠", "♥", "♦", "♣" }.ForEach(s => Enumerable.Range(2, 13).ToList().ForEach(n => deck.Add(new(s, n))));
- //for (int b = 0, a = 0, c = 0, k = 9, u = 0, p = k * k - 1, _ = deck.First().Value; u < 12; Write((
- //a == 0 | a == 8 | c == 0 | c == 8 ? "X" : a == k / 2 - 1 & c == k / 2 ? deck.First().Key : a == k / 2 & c == k / 2 ? _ == 10 ? "T" : _ == 11 ? "B" : _ == 12 ? "D" : _ == 13 ? "K" : _ == 14 ? "Á" : _ : " ") + (a == 8 ? "\n" : "")),
- // a = b % k, c = b / k, deck.Remove(b == p ? deck.First() : new()), b = b++ == p ? 0 : b, _ = deck.First().Value, u += b == p ? _ == 14 ? u + 11 > 21 ? 1 : 11 : _ > 9 ? 10 : _ : 0) ;
- const int size = 9;
- deck = Shuffle(deck);
- var cardsTotalValue = 0;
- while (cardsTotalValue <= 11)
- {
- var pickedCard = deck.First();
- pickedCards.Add(pickedCard);
- var cardString = DisplayCard(pickedCard, size);
- cardsTotalValue = GetValue(pickedCards);
- Console.WriteLine(cardString);
- deck.Remove(pickedCard);
- }
- Console.WriteLine($"Kártyák összértéke: {cardsTotalValue}\n");
- Console.WriteLine($"A következő lap ez lett volna: \n\n{DisplayCard(deck.First(),size)} ");
- static int GetValue(List<KeyValuePair<string, int>> pickedCards)
- {
- var result = 0;
- foreach (var card in pickedCards)
- {
- switch (card.Value)
- {
- case <= 10:
- result += card.Value;
- break;
- case <= 13:
- result += 10;
- break;
- }
- }
- var aces = pickedCards.FindAll(c => c.Value == 14).ToList();
- result += aces.Count;
- if (aces.Count > 0 && result !<= 11)
- {
- result += 10;
- }
- return result;
- }
- static List<KeyValuePair<string, int>> Shuffle(List<KeyValuePair<string, int>> deck)
- {
- return deck.OrderBy(l => new Random().Next()).ToList();
- }
- static string DisplayCard(KeyValuePair<string, int> card, int size)
- {
- const char border = 'X';
- const char space = ' ';
- const char ten = 'T';
- const char jack = 'J';
- const char queen = 'D';
- const char king = 'K';
- const char ace = 'Á';
- var displayCard = new StringBuilder();
- var endBorder = size - 1;
- const int startBorder = 0;
- var suitPlace = size / 2 - 1;
- var center = size / 2;
- for (var row = 0; row < size; row++)
- {
- for (var column = 0; column < size; column++)
- {
- if (row == startBorder || row == endBorder || column == startBorder || column == endBorder)
- {
- displayCard.Append(border);
- }
- else if (row == center && column == suitPlace)
- {
- displayCard.Append(card.Key);
- }
- else if (row == center && column == center)
- {
- switch (card.Value)
- {
- case < 10:
- displayCard.Append(card.Value);
- break;
- case 10:
- displayCard.Append(ten);
- break;
- case 11:
- displayCard.Append(jack);
- break;
- case 12:
- displayCard.Append(queen);
- break;
- case 13:
- displayCard.Append(king);
- break;
- case 14:
- displayCard.Append(ace);
- break;
- }
- }
- else
- {
- displayCard.Append(space);
- }
- if (column == endBorder)
- {
- displayCard.Append(Environment.NewLine);
- }
- }
- }
- return displayCard.ToString();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement