asp.net - How can I deal this deck(Dictionary) in C# -


i have 2 players, want each of them receive 26 random out of 52 card deck. have idea how can give each player, 26 random cards 52 card deck?

this should empty original 52 card deck dictionary, , create 2 smaller 26 card deck dictionary.

i have been struggle 3 day, , have done research do. here deck class:

class deck {     public dictionary<int, string> createnewdeck()     {         dictionary<int, string> newdeck = new dictionary<int, string>()         {             {1, "~/cards/c1.png"}, {2, "~/cards/c2.png"}, {3, "~/cards/c3.png"}, {4, "~/cards/c4.png"},             {5, "~/cards/c5.png"}, {6, "~/cards/c6.png"}, {7, "~/cards/c7.png"}, {8, "~/cards/c8.png"},             {9, "~/cards/c9.png"}, {10, "~/cards/c10.png"}, {11, "~/cards/cj.png"}, {12, "~/cards/cq.png"}, {13, "~/cards/ck.png"},             {14, "~/cards/d1.png"}, {15, "~/cards/d2.png"}, {16, "~/cards/d3.png"}, {17, "~/cards/d4.png"},             {18, "~/cards/d5.png"}, {19, "~/cards/d6.png"}, {20, "~/cards/d7.png"}, {21, "~/cards/d8.png"},             {22, "~/cards/d9.png"}, {23, "~/cards/d10.png"}, {24, "~/cards/dj.png"}, {25, "~/cards/dq.png"}, {26, "~/cards/dk.png"},             {27, "~/cards/h1.png"}, {28, "~/cards/h2.png"}, {29, "~/cards/h3.png"}, {30, "~/cards/h4.png"},             {31, "~/cards/h5.png"}, {32, "~/cards/h6.png"}, {33, "~/cards/h7.png"}, {34, "~/cards/h8.png"},             {35, "~/cards/h9.png"}, {36, "~/cards/h10.png"}, {37, "~/cards/hj.png"}, {38, "~/cards/hq.png"}, {39, "~/cards/hk.png"},             {40, "~/cards/s1.png"}, {41, "~/cards/s2.png"}, {42, "~/cards/s3.png"}, {43, "~/cards/s4.png"},             {44, "~/cards/s5.png"}, {45, "~/cards/s6.png"}, {46, "~/cards/s7.png"}, {47, "~/cards/s8.png"},             {48, "~/cards/s9.png"}, {49, "~/cards/s10.png"}, {50, "~/cards/sj.png"}, {51, "~/cards/sq.png"}, {52, "~/cards/sk.png"},         };         return newdeck;     } } 

and here method trying write divide deck can see, novice:

class dealer {     public dictionary<int, string> dealplayersdeck(deck deck, player human, player computer)     {         deck cards = new deck();         player humanplayer = new player();         player computerplayer = new player();          var fulldeck = cards.createnewdeck();         var playerdeck = humanplayer.playercards;         var computerdeck = computerplayer.playercards;          int halfdeck = fulldeck.count() / 2;          foreach (object in fulldeck)         {             list<int> keylist = new list<int>(fulldeck.keys);             random rand = new random();             int randomkey = keylist[rand.next(keylist.count)];              if (!playerdeck.containskey(randomkey))             {                 playerdeck.add(randomkey, fulldeck[randomkey]);                 fulldeck.remove(randomkey);             }         }         return playerdeck;     } } 

here reference link

you can following:keylist give list of 26 unique keys. loop through keys , add playerdeck in same time remove same fulldeck after iteration of loop full deck contains keys not in playerdeck can move computerdeck.

 list<int> keylist = new list<int>(fulldeck.keys);  random rand = new random();  var keylist = keylist.orderby(item => rand.next()).take(26).tolist();//will take 26 random keys  foreach (var randkey in keylist) // loop on keylist   {        playerdeck.add(randkey, fulldeck[randkey]);        fulldeck.remove(randkey);           }  computerdeck =fulldeck; 

Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -