Wednesday, April 30, 2014

Classes and Objects

Here are the class diagrams for the Card and Deck objects:

Here is the C# code for the Card Object. It uses a short cut syntax that lets us not have to explicitly write the get and set methods.

Here is the Deck program. I have added all the methods in the diagram, but I haven't implemented all of them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DeckOfCards
{
    class Deck
    {
        private List cards;

        public Deck()
        {
            //initialize the list in constructor
            cards = new List();
            //initilize the deck with 52 cards
            InitializeDeck();
        }

        private void InitializeDeck()
        {
            string suit = null;
            
            for (int i = 0; i < 4; i++)
            {
                //chose the suit
                switch (i)
                {
                    case 0:
                        suit = "hearts";
                        break;
                    case 1:
                        suit="diamonds";
                        break;
                    case 2:
                        suit="clubs";
                        break;
                    default:
                        suit="spades";
                        break;
                }
                //get the card numbers for each suit
                for (int j = 1; j < 14; j++)
                {
           Card c = new Card();
                    c.Suit=suit;
                    c.Number=j;
                    cards.Add(c);
       }
                
            }
        }

        public List GetDeck()
        {
            return cards;
        }

        public void Shuffle()
        {
        }

        public void AddCard(Card c)
        {
            cards.Add(c);
        }

        public void RemoveCard(Card c)
        {
            foreach (Card card in cards)
            {
                if (c.Suit.Equals(card.Suit) && c.Number == card.Number)
                {
                    cards.Remove(c);
                }
            }
        }

        public Card GetCard(int index)
        {
            return cards[index];
        }
    }
}

Here is the code to get the deck and display all the cards

And here is a picture of it running

No comments:

Post a Comment