c# - Create deck of card using multiple enums -


i have made following code create deck of cards using 2 enums , switch statement. not think switch statement elegant solution. question is, therefore: possible avoid switch statement looping through enum?

the variable value31 used stored value cards have in game of "31".

namespace cardgame31 { public enum suitpossiblevalues { clubs, diamonds, hearts, spades }; public enum rankpossiblevalues { two, three, four, five, six, seven, eight, nine, ten, jack, queen, king, ace };  class program {     static void main(string[] args)     {         carddeck mycarddeck = new carddeck();     } }  class carddeck {     list<card> carddecklist = new list<card>();      public carddeck()     {         foreach (suitpossiblevalues colourpossiblevalues in enum.getvalues(typeof(suitpossiblevalues)))         {             foreach (rankpossiblevalues namepossiblevalues in enum.getvalues(typeof(rankpossiblevalues)))             {                 card nextcard = new card(colourpossiblevalues.tostring(), namepossiblevalues.tostring());                 carddecklist.add(nextcard);             }         }     } }  class card {     public string colour { get; }     public string name { get; }     public int value31 { get; }      public card(string colour, string name)     {         colour = colour;         name = name;          switch (name)         {             case ("two"):                 value31 = 2;                 break;             case ("three"):                 value31 = 3;                 break;             case ("four"):                 value31 = 4;                 break;             case ("five"):                 value31 = 5;                 break;             case ("six"):                 value31 = 6;                 break;             case ("seven"):                 value31 = 7;                 break;             case ("eight"):                 value31 = 8;                 break;             case ("nine"):                 value31 = 9;                 break;             case ("ten"):                 value31 = 10;                 break;             case ("jack"):                 value31 = 10;                 break;             case ("queen"):                 value31 = 10;                 break;             case ("king"):                 value31 = 10;                 break;             case ("ace"):                 value31 = 11;                 break;             default:                 throw new system.argumentoutofrangeexception("name", "name should have 1 of following values: two, three, four, five, six, seven, eight, nine, ten, jack, queen, king, ace");         }     } } 

}

you can assign value directly in enum declaration following:

public enum rankpossiblevalues {  2 =2,  three=3,  four=4,  five=5,  six=6,  seven=7,  eight=8,  nine=9,  ten=10,  jack=11,  queen=12,  king=13,  ace=14  }; 

then can underlying integer value simple int cast in example shown below:

int _value31 = (int)rankpossiblevalues.two; 

hope help.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -