Shuffle Funktion in numbers.c

This commit is contained in:
Nicolas Reckert 2025-12-16 12:43:36 +01:00
parent be3cb9e2fc
commit 9c0db0ff31
9 changed files with 16 additions and 5 deletions

BIN
bintree.o Normal file

Binary file not shown.

BIN
doble.exe Normal file

Binary file not shown.

BIN
highscore.o Normal file

Binary file not shown.

View File

@ -1,5 +1 @@
player_name;4993
player_name;4992
player_name;4990
player_name;4953
player1;3999

BIN
main.o Normal file

Binary file not shown.

View File

@ -16,6 +16,18 @@ static int compareUInt(const void *a, const void *b)
return 0; return 0;
} }
// --- Hilfsfunktion: Shuffle des Arrays (Fisher-Yates) ------------------
static void shuffle(unsigned int *array, unsigned int len)
{
for (unsigned int i = len - 1; i > 0; i--)
{
unsigned int j = rand() % (i + 1);
unsigned int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
// Gibt ein Array mit len zufälligen Zahlen zwischen 1 und 2*len zurück, die alle unterschiedlich sind, // Gibt ein Array mit len zufälligen Zahlen zwischen 1 und 2*len zurück, die alle unterschiedlich sind,
// außer zwei Einträgen (ein Duplikat). Verwendet den Binärbaum, um Duplikate zu vermeiden. // außer zwei Einträgen (ein Duplikat). Verwendet den Binärbaum, um Duplikate zu vermeiden.
unsigned int *createNumbers(unsigned int len) unsigned int *createNumbers(unsigned int len)
@ -54,6 +66,9 @@ unsigned int *createNumbers(unsigned int len)
unsigned int duplicateIndex = rand() % (len - 1); unsigned int duplicateIndex = rand() % (len - 1);
arr[len - 1] = arr[duplicateIndex]; arr[len - 1] = arr[duplicateIndex];
// Shuffle das Array, damit das Duplikat nicht immer am Ende steht
shuffle(arr, len);
// Baum freigeben // Baum freigeben
clearTree(root); clearTree(root);
return arr; return arr;

BIN
numbers.o Normal file

Binary file not shown.

BIN
stack.o Normal file

Binary file not shown.

BIN
timer.o Normal file

Binary file not shown.