Created
January 9, 2021 20:38
-
-
Save Davidaredding/88e914f761191a336776adc664a1a27e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Collections.Generic; | |
| namespace Mikes_Code | |
| { | |
| public class Card | |
| { | |
| public string Face; | |
| public int Value; | |
| public String Suit; | |
| public override string ToString() | |
| { | |
| return $"{Face} of {Suit}: Value: {Value}"; | |
| } | |
| } | |
| class Player | |
| { | |
| public List<Card> Hand { get;set;} | |
| public int HandValue(){ | |
| return 0 ; | |
| } | |
| } | |
| class Deck{ | |
| private List<Card> cards; | |
| public void Shuffle(){ | |
| Console.WriteLine("Shuffling"); | |
| ResetTheDeck(); | |
| ShuffleTheDeck(); | |
| } | |
| private void ResetTheDeck() | |
| { | |
| Console.WriteLine("Resetting the deck"); | |
| cards = new List<Card>(); | |
| var suits = new List<string>{"Diamonds","Hearts","Spades","Clubs"}; | |
| var faces = new List<string>{"2","3","4","5","6","7","8","9","10","Jack","Queen","King","Ace"}; | |
| foreach(var s in suits) | |
| { | |
| for(var i = 0; i<13; i++) | |
| { | |
| int value = 0; | |
| if(i<9) | |
| value = i+2; | |
| else if(i>7 && i<12 ) | |
| value = 10; | |
| else if (i == 12) | |
| value = 11; | |
| var suit = s; | |
| var face = faces[i]; | |
| var card = new Card(); | |
| card.Value = value; | |
| card.Suit = suit; | |
| card.Face = face; | |
| cards.Add(card); | |
| } | |
| } | |
| } | |
| private void ShuffleTheDeck() | |
| { | |
| Console.WriteLine("Fischer Yates Shuffle"); | |
| var numberOfCards = cards.Count; | |
| var randomNumberGenerator = new Random(); | |
| for (var rightIndex = cards.Count - 1; rightIndex >= 1; rightIndex--) | |
| { | |
| var leftIndex = randomNumberGenerator.Next(rightIndex); | |
| var leftCard = cards[leftIndex]; | |
| var rightCard = cards[rightIndex]; | |
| cards[leftIndex] = rightCard; | |
| cards[rightIndex] = leftCard; | |
| } | |
| } | |
| public Card Draw() | |
| { | |
| if(cards == null) | |
| Shuffle(); | |
| var drawnCard = cards[0]; | |
| var isDrawn = cards.Remove(drawnCard); | |
| return drawnCard; | |
| } | |
| public void printToConsole(){ | |
| if(cards == null) | |
| ResetTheDeck(); | |
| foreach(var c in cards) | |
| Console.WriteLine(c); | |
| } | |
| } | |
| class Game | |
| { | |
| public Deck Deck{get;set;} | |
| public Player Dealer { get; set; } | |
| public Player Mike { get; set; } | |
| public void PlayGame() | |
| { | |
| Deck.Shuffle(); | |
| Dealer.Hand = new List<Card>(); | |
| Mike.Hand = new List<Card>(); | |
| } | |
| } | |
| class Program | |
| { | |
| static void Main(string[] args) | |
| { | |
| var d = new Deck(); | |
| var card = d.Draw(); | |
| Console.WriteLine($"{card.Face} of {card.Suit}"); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment