From 4b0630ecef99062e97bc5ac24ebb47c8f0883885 Mon Sep 17 00:00:00 2001 From: maxgrf Date: Thu, 11 Dec 2025 12:05:02 +0100 Subject: [PATCH] bugfix --- doble.exe | Bin 66873 -> 66873 bytes highscores.txt | 1 + numbers.c | 95 ++++++++++++++++++++++++++++--------------------- numbers.o | Bin 1915 -> 1943 bytes 4 files changed, 56 insertions(+), 40 deletions(-) diff --git a/doble.exe b/doble.exe index 2df53f1dc51731354edc9b991f7ba1bf5be46fce..0c6e1e4d34ea3349196ccff13267ea04e031498b 100644 GIT binary patch delta 5764 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 delta 5757 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

>oxz|HT5)oj}fu@oWoS zznG4@D(X@rUS>X*b=aC+F6;QV&%B(56F%>9I`gO9m(8e)?h0;4$LK4m3|rCmO*$sw z`o@d}OS+042{i2LDAksP)+_0a{Ji|>`0YNCKD)}_k=O7{Aw_*T>b|nRK$Y9(IovXJ zYA#Od5{IE7ghfnjYsj1Q`pd8jIC)QBds@}p*1(Ok@WqiumDkb{^(#DkQ_#0&W}>&g ztyUd-!1GNte{pudu0xH7UQb8D3$LfEX0`deGBtn7tCR8sJDs|2MgboCE*<~losQ=k z+WcKPc3b+5(Ks9BHwK9f33TCxTXmtW^Mw4@a;6&71SOsQp8_~N|GkclqM6@UtM;_{ tpcIy=uj9jvy1Mzo3~}pJk!`JfGFA;f&8Wm(jU#Mm)G?D|aAQ-a{{Zyax6uFq diff --git a/highscores.txt b/highscores.txt index 726db3c..db80136 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1,4 +1,5 @@ player_name;6979 player_name;4982 player1;3999 +player_name;3992 player_name;2996 diff --git a/numbers.c b/numbers.c index e83fabb..8ade6b3 100644 --- a/numbers.c +++ b/numbers.c @@ -5,105 +5,120 @@ #include "numbers.h" #include "bintree.h" -//TODO: getDuplicate und createNumbers implementieren +// TODO: getDuplicate und createNumbers implementieren /* * * Erzeugen eines Arrays mit der vom Nutzer eingegebenen Anzahl an Zufallszahlen. - * Sicherstellen, dass beim Befüllen keine Duplikate entstehen. - * Duplizieren eines zufälligen Eintrags im Array. - * in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */ + * Sicherstellen, dass beim Befüllen keine Duplikate entstehen. + * Duplizieren eines zufälligen Eintrags im Array. + * in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */ // Returns len random numbers between 1 and 2x len in random order which are all different, except for two entries. // Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while // creating random numbers. -//ohne Binärbaum +/* +// ohne Binärbaum unsigned int *createNumbers(unsigned int len) { if (len <= 2) return NULL; - + // Zufallszahlen erzeugen srand(time(NULL)); unsigned int *numbers = malloc(len * sizeof(unsigned int)); - //prüfen, ob Speicher richtig reserviert wurde - if(numbers == NULL){ + // prüfen, ob Speicher richtig reserviert wurde + if (numbers == NULL) + { printf("Es konnte nicht genügend Speicher reserviert werden"); free(numbers); return NULL; } - //einsetzen der Zahlen ins array - for (size_t i = 0; i < len; i++){ - numbers[i] = rand()%((2*len)+1); - //stellt sicher, dass keine Duplikate vorhanden sind - for(size_t j = 0; j < i; j++){ - if(numbers[i] == numbers[j]){ + // einsetzen der Zahlen ins array + for (size_t i = 0; i < len; i++) + { + numbers[i] = rand() % ((2 * len) + 1); + // stellt sicher, dass keine Duplikate vorhanden sind + for (size_t j = 0; j < i; j++) + { + if (numbers[i] == numbers[j]) + { i--; break; } } - } - //numbers[rand()% (len+1)] = rand()% ((2* len) + 1); - size_t dupIndex = rand() % len; // Index, der dupliziert wird - size_t targetIndex = rand() % len; // Ziel-Index, wo das Duplikat hin soll - if (dupIndex != targetIndex) { + // numbers[rand()% (len+1)] = rand()% ((2* len) + 1); + size_t dupIndex = rand() % len; // Index, der dupliziert wird + size_t targetIndex = rand() % len; // Ziel-Index, wo das Duplikat hin soll + if (dupIndex != targetIndex) + { numbers[targetIndex] = numbers[dupIndex]; // echtes Duplikat -} + } return numbers; free(numbers); } -int compare(const void *a, const void *b) { - return (*(int*)a - *(int*)b); +int compare(const void *a, const void *b) +{ + return (*(int *)a - *(int *)b); } +*/ +// mit Binärbaum -//mit Binärbaum -/* unsigned int *createNumbers(unsigned int len) { if (len <= 2) return NULL; - + // Zufallszahlen erzeugen srand(time(NULL)); unsigned int *numbers = malloc(len * sizeof(unsigned int)); - //prüfen, ob Speicher richtig reserviert wurde - if(numbers == NULL){ + // prüfen, ob Speicher richtig reserviert wurde + if (numbers == NULL) + { printf("Es konnte nicht genügend Speicher reserviert werden"); free(numbers); return NULL; } TreeNode *root = NULL; - for(size_t i= 0; i < len; i++){ - unsigned int isDup = 0; - numbers[i] = (rand()%(2*len))+1; + for (size_t i = 0; i < len; i++) + { + unsigned int isDup = 0; + numbers[i] = (rand() % (2 * len)) + 1; root = addToTree(root, &numbers, sizeof(numbers), compare, &isDup); - if(isDup != 1){ + if (isDup != 1) + { i--; } } - numbers[rand()% len] = (rand()% (2* len) + 1); + // numbers[rand()% len] = (rand()% (2* len) + 1); + size_t dupIndex = rand() % len; // Index, der dupliziert wird + size_t targetIndex = rand() % len; // Ziel-Index, wo das Duplikat hin soll + if (dupIndex != targetIndex) + { + numbers[targetIndex] = numbers[dupIndex]; // echtes Duplikat + } return numbers; clearTree(root); free(numbers); } -*/ - // Returns only the only number in numbers which is present twice. Returns zero on errors. unsigned int getDuplicate(const unsigned int numbers[], unsigned int len) { unsigned int dobble; - // neues Array zum reinkopieren initialisieren + // neues Array zum reinkopieren initialisieren unsigned int *nums = malloc(len * sizeof(unsigned int)); - for(int l = 0; l < len; l++) - nums[l] = numbers[l]; + for (int l = 0; l < len; l++) + nums[l] = numbers[l]; - //array sortieren + // array sortieren qsort(nums, len, sizeof(unsigned int), compare); - for(int k = 0; k < len; k++){ - if(nums[k] == nums[k+1]){ + for (int k = 0; k < len; k++) + { + if (nums[k] == nums[k + 1]) + { dobble = nums[k]; break; } diff --git a/numbers.o b/numbers.o index e0c80fc31bd0ee342119ae4eed50dbaa0020efb6..bbdafec78b6aa2ac8ba964068a92ab6659313874 100644 GIT binary patch delta 501 zcmey(H=Um|rH!2d1R^GKN^?$NVqnl=WMG&uQMZ_J&%}kwtO`J>KNC-?v&yhAF#MbN zRoU4A$Up`T3;_-mOfTUiw0|~IKW9LDTg3XL|^#UH2u0Qyja{mAS50=^mQu)19pz}iK0gq1C z2iOE}cyzly@UV8hQKAKA^@_BDbOG5fJQxoFsT&@>JV-((x`jFgz_QIp0%8w?{Q>lZ zM`x(S=2=WkjJy+&!Q|P@PV5}atQ?bAm?ytrmXR$1`T+z$^dunW0kT1KBQP9ACM&W8 zrzrwO#DJKEK?6vNgIVT4QUc8K1d@DURv?g+1hZm+q!gG{2_&V#EMB0Q5S9|0wFbz7 sm?FS5`4-D2#*)b!Sw;ETfEpk`7D!D3is>>oPQK6DDpN)qR0IcG6hyVZp delta 493 zcmbQv|C^69rH!2d1Z*a9N^=%4F)-*bGBA`()GcP5GjX9Zs|rx+&cu`ItPCs+438#$ zRd!baGLV4-Lx4kQSg=R)8wZcx92JL7Uxnsc1*USY9UxUNt%1hv1hHO#h|Ysxs@qjz zax|lb%xj>K$8pymAgPz_Kmsi5*m)47U_E19w1S7F>ks~>od5s-L-Zd5$}k@2jbMau z4*|Ko9*mtAc7cre{;~5y=K+sikya4Tqucd`M=uXk=Ld-7XP_h_Sg`qsLv-Bcc}xO~ zllL$?y6~{N@-VX(F&i)?Fa|I%FtRYQvM@6SFmf=nauk7BAk!Eal7K#e(G5Vh0FVQs z^MQdTG1-FgtXV)7#FT$PmJC=OkYL~dVrEd(fLN3HS!XgPO