Thanks. I have the do... while loop and the temporary variable done. The return is at the end, and it's at least choosing cards now. I put the time stuff and srand(now) in main(), but now it's generating ridiculously high values for the cards. Here's the output:
And here's drawCard():Code:A card was chosen. cardToDraw = 11. Card 1 is 4674324. A card was chosen. cardToDraw = 43. Card 2 is 2009310510. A card was chosen. cardToDraw = 7. Card 3 is 2009339772. A card was chosen. cardToDraw = 43. Card 4 is 2009310510. A card was chosen. cardToDraw = 45. Card 5 is 2358800. A card was chosen. cardToDraw = 4. Card 6 is 2358680. A card was chosen. cardToDraw = 19. Card 7 is 2009261398. A card was chosen. cardToDraw = 31. Card 8 is 2358840. A card was chosen. cardToDraw = 4. Card 9 is 2358680. A card was chosen. cardToDraw = 31. Card 10 is 2358840. A card was chosen. cardToDraw = 1. Card 11 is 2358624. A card was chosen. cardToDraw = 10. Card 12 is 2009261348 A card was chosen. cardToDraw = 11. Card 13 is 5316432. A card was chosen. cardToDraw = 29. Card 14 is 2358708. A card was chosen. cardToDraw = 11. Card 15 is 5316432. A card was chosen. cardToDraw = 13. Card 16 is 5316432. A card was chosen. cardToDraw = 31. Card 17 is 2358840. A card was chosen. cardToDraw = 9. Card 18 is 4000. A card was chosen. cardToDraw = 30. Card 19 is 1. A card was chosen. cardToDraw = 50. Card 20 is 2009463968 A card was chosen. cardToDraw = 16. Card 21 is 4000. A card was chosen. cardToDraw = 47. Card 22 is 17. A card was chosen. cardToDraw = 20. Card 23 is 5316432. A card was chosen. cardToDraw = 0. Card 24 is 2009471864 A card was chosen. cardToDraw = 30. Card 25 is 1. A card was chosen. cardToDraw = 34. Card 26 is -1. A card was chosen. cardToDraw = 15. Card 27 is 2009269136 A card was chosen. cardToDraw = 16. Card 28 is 4000. A card was chosen. cardToDraw = 13. Card 29 is 5316432. A card was chosen. cardToDraw = 47. Card 30 is 17. A card was chosen. cardToDraw = 19. Card 31 is 2009261398 A card was chosen. cardToDraw = 41. Card 32 is 4649038. A card was chosen. cardToDraw = 0. Card 33 is 2009471864 A card was chosen. cardToDraw = 39. Card 34 is 1. A card was chosen. cardToDraw = 30. Card 35 is 1. A card was chosen. cardToDraw = 36. Card 36 is 2009339602 A card was chosen. cardToDraw = 40. Card 37 is 2. A card was chosen. cardToDraw = 39. Card 38 is 1. A card was chosen. cardToDraw = 13. Card 39 is 5316432. A card was chosen. cardToDraw = 21. Card 40 is 2358748. A card was chosen. cardToDraw = 23. Card 41 is 1. A card was chosen. cardToDraw = 34. Card 42 is -1. A card was chosen. cardToDraw = 1. Card 43 is 2358624. A card was chosen. cardToDraw = 25. Card 44 is 2. A card was chosen. cardToDraw = 30. Card 45 is 1. A card was chosen. cardToDraw = 33. Card 46 is 2009146752 A card was chosen. cardToDraw = 4. Card 47 is 2358680. A card was chosen. cardToDraw = 0. Card 48 is 2009471864 A card was chosen. cardToDraw = 4. Card 49 is 2358680. A card was chosen. cardToDraw = 38. Card 50 is 4649036. A card was chosen. cardToDraw = 38. Card 51 is 4649036. A card was chosen. cardToDraw = 8. Card 52 is 2358765.
main() is the same as before, but with time_t now;, time(&now);, and srand(now); added.Code:int drawCard() { int deck[52]; int cardToDraw; int drawnCard; int loop; while (loop != 0) { int deck[52] = {1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13}; loop = 0; } do { cardToDraw = (rand() % 52);//Generates a random number between 0 and 51. This will be the card that is drawn. cout<< "A card was chosen.\n";//Debugging line. } while (deck[cardToDraw] == 0); cout<< "cardToDraw = "<< cardToDraw<< ".\n";//Debugging line. drawnCard = deck[cardToDraw]; deck[cardToDraw] = 0;//Removes the drawn card from the deck. return drawnCard; }
Edit: it's also repeating cards... none of the cards are being set to 0 after they're drawn.
Edit: Also, am I using the right modulus for rand()? I want it to generate values from 0 - 51. It seems to be doing that so far, but I figured I would ask just to be sure.