// Card class members implementation for
//	WAR card game
//
//	Described in Chapter 2 of
//	Data Structures in C++ using the STL
//	Published by Addison-Wesley, 1997
//	Written by Tim Budd, budd@cs.orst.edu
//	Oregon State University
//
# include <iostream>
using namespace std;

#include "card.h"

Card::Card	( )
	// initialize a new Card
	// default value is the ace of spades
{
	rank = 1;
	suit = spade;
}

Card::Card 	(suits sv, int rv)
	// initialize a new Card using the argument values
{
	rank = rv;
	suit = sv;
}

ostream & operator << (ostream & out, Card & aCard)
	// output a textual representation of a Card
{
		// first output rank
	switch (aCard.rank) {
		case 1:  out << "Ace";   break;
		case 11: out << "Jack";  break;
		case 12: out << "Queen"; break;
		case 13: out << "King";  break;
		default:	// output number
			out << aCard.rank; break;
		}

		// then output suit
	switch (aCard.suit) {
		case diamond: out << " of Diamonds"; break;
		case spade:   out << " of Spades";   break;
		case heart:   out << " of Hearts";   break;
		case club:    out << " of Clubs";    break;
		}
	return out;
}
