****************************************************************************** File Name : requirements.txt Date : 27th October 2005 Author : Richard Woolcock ****************************************************************************** The MudMagic Code Challenge consists of a series of library functions which can be used as the basis for creating card games within a mud, utilising a standard 52 card deck. ****************************************************************************** Requirements ****************************************************************************** 1. Required functionality for the deck consists of the following: 1.1 Creation of a deck of 52 cards. 1.2 Shuffle a deck of cards. 1.3 Return the top card of a deck and removes it from the deck. 1.4 Add a card to the bottom of the deck (should not already be in the deck). 1.5 Return a value with total number of cards in deck. 1.6 Reset the deck to 52 cards. 1.7 Return values of the cards in the deck (H6, C3, SK, etc). 2. Required functionality for the hand consists of the following: 2.1 Add a new empty hand to a player. 2.2 Add a card to a players hand. 2.3 Count how many cards are in a hand. 2.4 Remove a particular card from a hand. 2.5 Returns true if the hand contains one or more cards of a given value. 2.6 Returns true if the hand contains one or more cards of a given suit. 2.7 Return values of the cards in a hand (H6, C3, SK, etc). ****************************************************************************** Functionality ****************************************************************************** The Deck module provides the following functions: - DeckCreate : Requirement 1.1 - DeckShuffle : Requirement 1.2 - DeckDrawCard : Requirement 1.3 - DeckReturnCard : Requirement 1.4 - DeckCountCards : Requirement 1.5 - DeckReset : Requirement 1.6 - DeckShow : Requirement 1.7 The Hand module provides the following functions: - HandCreate : Requirement 2.1 - HandAddCard : Requirement 2.2 - HandCountCards : Requirement 2.3 - HandRemoveCard : Requirement 2.4 - HandCountSuitRank : Requirement 2.5 - HandCountSuit : Requirement 2.6 - HandCountRank : Additional functionality - HandShow : Requirement 2.7 The Card module provides the following functions: - CardInit : Derived requirement - CardValue : Derived requirement - CardName : Additional functionality - CardRank : Derived requirement - CardRankRepresentation : Derived requirement - CardSuit : Derived requirement - CardSuitRepresentation : Derived requirement - CardGraphicRepresentation : Additional functionality The Misc module provides the following functions: - HighestOf : Additional functionality Derived requirements are those which are not explictly listed, but which are required in order to fulfill the numbered requirements. Functions listed as 'Additional functionality' are not used within the library itself, but were deemed useful enough to add.