From 2ad09399f4a93b424a3fc708488ade806c536904 Mon Sep 17 00:00:00 2001 From: Musty Mustelidae Date: Fri, 7 Mar 2014 09:09:56 -0500 Subject: [PATCH] =?UTF-8?q?Implemented=20Fisher=E2=80=93Yates=20shuffle.?= =?UTF-8?q?=20Assumes=20RNG=20function=20is=20in=20form=20getNumber(min,ma?= =?UTF-8?q?x),=20with=20min=20and=20max=20inclusive=20(Did=20not=20find=20?= =?UTF-8?q?documentation=20on=20function)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/server_cardzone.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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)