Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Davidaredding/9d64b02e3a2f8566020d405f48cd1752 to your computer and use it in GitHub Desktop.
Save Davidaredding/9d64b02e3a2f8566020d405f48cd1752 to your computer and use it in GitHub Desktop.
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()
{
return null;
}
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();
d.printToConsole();
d.printToConsole();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment