I'm writing a program which generates every number from 0 to 53 in a random order without repeats (shuffling and dealing a full card deck). Every time I run the program, however, it always generates 0 as the first number. Here's my code:
Any idea what's going on?Code:void DealCards() { int RandNum; bool Dealt[54]; int i; PlayerTypes ePlayer = (PlayerTypes)((Dealer + 1) % 4); GamePlayers* pPlayer; for (i = 0; i < 54; i++) { Dealt[i] = false; } for (i = 0; i < 54; i++) { RandNum = ((float)rand()/(RAND_MAX + 1)) * 54; pPlayer = GetPlayer(ePlayer); if (Dealt[RandNum]) { i--; } else { for (int j = 0; j < 14; j++) { if (pPlayer->Hand[j] == -1) { pPlayer->Hand[j] = (CardTypes)RandNum; break; } } Dealt[RandNum] = true; ePlayer = (PlayerTypes)((ePlayer + 1) % 4); } } }



LinkBack URL
About LinkBacks



