diff --git a/common/server_cardzone.cpp b/common/server_cardzone.cpp index 018abae8..d39c71b7 100644 --- a/common/server_cardzone.cpp +++ b/common/server_cardzone.cpp @@ -43,14 +43,14 @@ Server_CardZone::~Server_CardZone() void Server_CardZone::shuffle() { - QList temp; - for (int i = cards.size(); i; i--) - temp.append(cards.takeAt(rng->getNumber(0, i - 1))); - cards = temp; - + for (int i = cards.size() - 1; i > 0; i--){ + int j = rng->getNumber(0, i);//Assuming i is inclusive, i + 1 if exclusive (end result should be a number between 0 and i [0 and i included]) + cards.swap(j,i) + } playersWithWritePermission.clear(); } + void Server_CardZone::removeCardFromCoordMap(Server_Card *card, int oldX, int oldY) { if (oldX < 0)