namespace QuizTwoOne
{
class Deck
{
public Card[] spades = new Card[13];
public Card[] clubs = new Card[13];
public Card[] diamonds = new Card[13];
public Card[] hearts = new Card[13];
private Card[] deck = new Card[52];
private Random rand = new Random();
public Deck()
{
for (int i = 0; i < 13; i++)
{
spades[i] = new Card(i+1, 's');
clubs[i] = new Card(i+1, 'c');
diamonds[i] = new Card(i+1, 'd');
hearts[i] = new Card(i+1, 'h');
}
}
public Card[] CreateDeck()
{
Card[] deck = new Card[52];
for (int i = 0; i < 13; i++)
{
spades[i] = new Card(i + 1, 's');
clubs[i] = new Card(i + 1, 'c');
diamonds[i] = new Card(i + 1, 'd');
hearts[i] = new Card(i + 1, 'h');
}
deck = Merge(deck, spades);
deck = Merge(deck, clubs);
deck = Merge(deck, hearts);
deck = Merge(deck, diamonds);
return deck;
}
public Card[] Shuffle(Card[] deck)
{
Card[] retVal = new Card[52];
//shuffle spades
for(int i = spades.Length -1; i > 0; i--)
{
int n = rand.Next(i + 1);
Swap(spades, i, n);
}
return retVal;
}
private void Swap(Card[] numbers, int index1, int index2)
{
Card temp = numbers[index1];
numbers[index1] = numbers[index2];
numbers[index2] = temp;
}
public Card[] Merge(Card[] destination, Card[] addition)
{
if(destination == null)
{
throw new ArgumentNullException("Destination array is Null");
}
if(addition == null)
{
throw new ArgumentNullException("Addition Array is Null");
}
Type firstType = destination.GetType();
Type secondType = addition.GetType();
if(firstType != secondType)
{
throw new InvalidOperationException("Type mismatch");
}
Hashtable table = new Hashtable();
ArrayList items = new ArrayList();
MergeHelper(destination, table, items);
MergeHelper(addition, table, items);
return (Card[])items.ToArray(firstType.GetElementType());
}
public void MergeHelper(Card[] array, Hashtable table, ArrayList items)
{
for(int i =0; i < array.Length; i++)
{
Card item = array[i];
if(!table.Contains(item))
{
table.Add(item, 1);
items.Add(item);
}
}
}
}
}
namespace QuizTwoOne
{
public partial class Form1 : Form
{
Card card = new Card();
Card[] deckOfCards = new Card[52];
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
deckOfCards = card.CreateSuiteArray();
}
private void button1_Click(object sender, EventArgs e)
{
Card[] spades = card.CreateSuiteArray();
string imageName = card.Value + card.Suites + ".gif";
for(int i =0; i < spades.Length; i++)
{
spades[i].CardImage =(Image)Properties.Resources.ResourceManager.GetObject(imageName);
}
for(int i =0; i < spades.Length; i++)
{
textBox1.Text +=Environment.NewLine + spades[i].ToString();
//textBox1.Text += Environment.NewLine + spades[i].CardImage;
}
spades[0].CardImage = (Image)Properties.Resources.ResourceManager.GetObject("10c.gif");
pictureBox2.Image = spades[0].CardImage;
}
}
}
namespace QuizTwoOne
{
namespace QuizTwoOne
{
class Card
{
private char _suites;
private int _value;
private Image _cardImage;
public Card[] spades = new Card[13];
public Card[] clubs = new Card[13];
public Card[] diamonds = new Card[13];
public Card[] hearts = new Card[13];
private Card[] deck = new Card[52];
private string imageName;
public Card() {}
public Card( int value, char suite)
{
this.Value = value;
this.Suites = suite;
imageName = Value + Suites + ".gif";
CardImage = (Image)Properties.Resources.ResourceManager.GetObject(imageName);
}
public char Suites
{
get
{
return _suites;
}
set
{
try
{
_suites = value;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
}
public int Value
{
get
{
return _value;
}
set
{
try
{
_value = value;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
}
public Image CardImage
{
get
{
return _cardImage;
}
set
{
try
{
_cardImage = value;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
}
public Card[] CreateSuiteArray()
{
for (int i = 0; i < 13; i++)
{
spades[i] = new Card(i + 1, 's');
clubs[i] = new Card(i + 1, 'c');
diamonds[i] = new Card(i + 1, 'd');
hearts[i] = new Card(i + 1, 'h');
}
return spades;
}
public Card[] CreateDeckOfCards()
{
Card[] deck = new Card[52];
for (int i = 0; i < 13; i++)
{
spades[i] = new Card(i + 1, 's');
clubs[i] = new Card(i + 1, 'c');
diamonds[i] = new Card(i + 1, 'd');
hearts[i] = new Card(i + 1, 'h');
}
deck = Merge(deck, spades);
deck = Merge(deck, clubs);
deck = Merge(deck, hearts);
deck = Merge(deck, diamonds);
return deck;
}
public Card[] Merge(Card[] destination, Card[] addition)
{
if (destination == null)
{
throw new ArgumentNullException("Destination array is Null");
}
if (addition == null)
{
throw new ArgumentNullException("Addition Array is Null");
}
Type firstType = destination.GetType();
Type secondType = addition.GetType();
if (firstType != secondType)
{
throw new InvalidOperationException("Type mismatch");
}
Hashtable table = new Hashtable();
ArrayList items = new ArrayList();
MergeHelper(destination, table, items);
MergeHelper(addition, table, items);
return (Card[])items.ToArray(firstType.GetElementType());
}
public void MergeHelper(Card[] array, Hashtable table, ArrayList items)
{
for (int i = 0; i < array.Length; i++)
{
Card item = array[i];
if (!table.Contains(item))
{
table.Add(item, 1);
items.Add(item);
}
}
}
public override string ToString()
{
return String.Format("This card has a value of {0} and a a suite of {1} and uses {2} as an image!", Value, Suites, CardImage);
}
}
namespace QuizTwoOne
{
public partial class Form1 : Form
{
Card card = new Card();
Card[] deckOfCards = new Card[52];
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
deckOfCards = card.CreateSuiteArray();
}
private void button1_Click(object sender, EventArgs e)
{
Card[] spades = card.CreateSuiteArray();
string imageName = card.Value + card.Suites + ".gif";
for(int i =0; i < spades.Length; i++)
{
spades[i].CardImage =(Image)Properties.Resources.ResourceManager.GetObject(imageName);
}
for(int i =0; i < spades.Length; i++)
{
textBox1.Text +=Environment.NewLine + spades[i].ToString();
//textBox1.Text += Environment.NewLine + spades[i].CardImage;
}
spades[0].CardImage = (Image)Properties.Resources.ResourceManager.GetObject("10c.gif");
pictureBox2.Image = spades[0].CardImage;
}
}
}
This post has been edited by tlhIn`toq: 07 December 2012 - 06:23 PM

New Topic/Question
Reply



MultiQuote






|