diff --git a/highscores.txt b/highscores.txt index 4bad879..a73fd89 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1,3 +1,7 @@ +NAME;21730 +jakob;11918 jakob;11860 Jakob;4974 player1;3999 +NAME;2997 +NAME;2995 diff --git a/numbers.c b/numbers.c index 8019cac..788af79 100644 --- a/numbers.c +++ b/numbers.c @@ -27,33 +27,29 @@ unsigned int setSeed(unsigned int seed_test) void create_unique_random_numbers(unsigned int len, unsigned int numbers[]) { - for (unsigned int i = 0; i < len; i++) - { - unsigned int same = 0; + TreeNode *root = NULL; + int isDuplicate; - do + for (unsigned int i = 0; i < len; i++) { - unsigned int value = 0; - value = (rand() % (len * 2) + 1); - - same = 0; - - for (unsigned int j = 0; j < i; j++) - { - if (numbers[j] == value) + unsigned int same = 0; + do { - same = 1; - break; - } - } + unsigned int value = rand() % (len * 2) + 1; + root = addToTree(root, &value, sizeof(unsigned int), compare, &isDuplicate); + if (isDuplicate) + { + same = 1; + } + else + { + numbers[i] = value; + same = 0; + } + } while (same); + } - if (same == 0) - { - numbers[i] = value; - } - - } while (same == 1); - } + clearTree(root); } unsigned int *createNumbers(unsigned int len)