From 29551521f0fef917f775a9a5542099e6e5f0ba52 Mon Sep 17 00:00:00 2001 From: zidanmo99094 Date: Fri, 30 Oct 2026 15:11:20 +0100 Subject: [PATCH] test --- Startcode/game.c | 20 ++++++++++++-------- Startcode/runTests | Bin 56296 -> 56344 bytes 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Startcode/game.c b/Startcode/game.c index ac3c9b8..6ca273c 100644 --- a/Startcode/game.c +++ b/Startcode/game.c @@ -4,7 +4,7 @@ #include #include -#define MAX_RAND_TRIES_PER_WORD 200 +#define MAX_RAND_TRIES_PER_WORD 1000 #define EMPTY_CHAR 0 // Enum zur sauberen Unterscheidung der Platzierungsrichtung @@ -15,16 +15,20 @@ typedef enum { int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int wordCount, char words[][100], unsigned int gridSize) { - // 1. Spielfeld vollständig zurücksetzen + // 1. Spielfeld vollständig mit EMPTY_CHAR initialisieren memset(salad, EMPTY_CHAR, MAX_SEARCH_FIELD_LEN * MAX_SEARCH_FIELD_LEN); int placedWordsCount = 0; // 2. Wörter im Spielfeld platzieren for (unsigned int i = 0; i < wordCount; i++) { - unsigned int len = (unsigned int)strlen(words[i]); + // Wortlänge ermitteln und evtl. Steuerzeichen/Zeilenumbrüche am Ende ignorieren + size_t len = strlen(words[i]); + while (len > 0 && (words[i][len - 1] == '\n' || words[i][len - 1] == '\r' || words[i][len - 1] == ' ')) { + len--; + } - // Wörter ignorieren, die zu lang für das eingestellte Spielfeld sind + // Wörter ignorieren, die leer oder zu lang für das Spielfeld sind if (len == 0 || len > gridSize) { continue; } @@ -36,14 +40,14 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi int dr = (dir == DIR_VERTICAL) ? 1 : 0; int dc = (dir == DIR_HORIZONTAL) ? 1 : 0; - // Startkoordinaten so wählen, dass das Wort nicht aus dem Spielfeld herausragt - unsigned int maxRow = (dir == DIR_VERTICAL) ? (gridSize - len + 1) : gridSize; - unsigned int maxCol = (dir == DIR_HORIZONTAL) ? (gridSize - len + 1) : gridSize; + // Startkoordinaten so wählen, dass das Wort komplett im Spielfeld liegt + unsigned int maxRow = (dir == DIR_VERTICAL) ? (gridSize - (unsigned int)len + 1) : gridSize; + unsigned int maxCol = (dir == DIR_HORIZONTAL) ? (gridSize - (unsigned int)len + 1) : gridSize; unsigned int row = (unsigned int)(rand() % maxRow); unsigned int col = (unsigned int)(rand() % maxCol); - // Prüfen, ob die Felder frei oder mit demselben Buchstaben belegt sind + // Prüfen, ob alle benötigten Felder frei oder mit demselben Buchstaben belegt sind int canPlace = 1; for (unsigned int k = 0; k < len; k++) { char current = salad[row + k * dr][col + k * dc]; diff --git a/Startcode/runTests b/Startcode/runTests index 698f6e4c4a5157c40163ac7b1c0ca943a94114a2..b42c79db9307d58c599793f5f4ee83d82271b25d 100755 GIT binary patch delta 5440 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 AmH+?% delta 5460 zcmZ{o2~-rv7KW?4XP9Q+LD?6DVL(7YK+rgf#tjt_cLhaI(P$JjF)zl!;0r!6$WXjs zA}4NWz$HP47a27X#TeX0$qR|b;Bt}y&2hsBYBKLu_Z>|<=Z$Bo`}^;$TeogiH9c-_ z5KM=JvNrCh{)dq+)iVg;2qBH|WuNL9G=_W4C1<8AmogiCa%R%^x!0V#X36pzr7U;R z7H)|9ifmaelSRUqrxRy+Q!T%YE29T^Z_bIH=fmC03T4j#^kgicr-LD0u;F-h8){Rs z8br=|G4De%n6{@VvzzJvvMany!fLmyguW($?5Poa8)}5v4JJb3q`q)po02K@%_DN( zvn*!Q>;}=7EbruGt)^(UP7)TOFbx8ZCWYyu-DxlJJ!@}~h>JyzEH|mPdet=fH1z&U zkPR6480aocFOq}rL0t`TSRWg(4g0@wb#h>qwdHG0CPsE|O4b@hJ-2*=tDJ3Z)2s#& zf`%!{a%=akUL6U<$h0s>Py{x`5@QYX0Xt`zAylCjs==xVy0b||jIafux|t2^p3|{` zR9d4c3OjRTfKr7cOso^M zy9qj$y`7XjWR)&u1v9(DjImndVz7C;_F1)FLBJaov(el*xV$zF`q2LcApiq!XarI`*M zTq#{^pBSGLsTY)mmm?k7vqRf+Q>E>Zx~-1XbMP-1Y@x5(Hb>HX_SrW3UWBAG9eQ&U z=}L!0o49bO3?5k+q~WZP(?EE&-Wj_#a0&2GC`y--X%NM5KfCD=Z4w9oG z&}kvZ7bemY=ic1shF#7T9KS7@CcF0Lh8ZTiZsz#1D0@S>W?1{SATiL^zX* zb`|MqhXO#M$^sS9bd$SBB&*x2rqpP?zocn<+~9fx>IO9{Bibl>#a-hCkpn=MB11~Z%Qlez>}gR;O&(fVO-h3PpKy)aqU)&2F^pl4e2v>~!y-CzGc z=+i(aY~)5x*6m{SJ3vpj==yL3Pw5(s zr&6oX?|4c-(RhO=Esp54YgXv9p2A>4X7_m7qVYFW^~>Y=Y9&=ghp>^NqNTh>Mql8s ziPW=y44-CA$M(O;H!BQLF*7)JEs51|tjnP|4NJbL+gu5!u!nHkuiPLuRQNuD@L6qFbkbtMQ2cCKVVUGzIQ>ND@b8o|Sb_-cFd?n|?;BN-yyG(Etr zj-(O&1aM$aZJ3x8wrTorhNClvtE}1EH2b8|iGnNj$#x1LEW%YFb*a#-n+Z)748{-5&!77aaTvdHNp@~NaaEA#yEvjC z>$kD?`6sO1_YsF~QK`90$p8T!)AYdc5WD;DLX>N7LDRK@-Z~!YbaWNm-<|}0YW@k^ zmZzmH-gLkTH|Mev4lMOk!BVyUg=OUlH@+^1mYm4(?>fjFs>guC<^ycda|YHn?`LiG ze(KQFYn|w{)M=djKI*FgB%e(+NVyw(; zIhel)4=YxgD&*DUWIlwAD99D4@{#Rf$kE8JBWK`@r!j`(Q#?oZUx2&| zS%f92AQ+=3MagbW!U zviLynyEeId$DfGW9@}|wa_H_J&m5a4n)t^%X4{Re{rW~_NYDMogM;(L=S$Be>$-j%Q9OR1@=@g1HaDl{CuG;ht$E9{`HQi+pSqn%v$;O^ zT%(Hra%hqI_shy(gu(4Qo)#`DDL>Hn!XBJr`<@@7L`+IPJ|-9rGI%RD0DuVEUpf;rSmv z)7L#v(lJ4oW?gTa96xbgkgd&OpCebclxyh9t8-HR9lLPHpdmw&i^@L;`8v;}$P@0) zj!X&P8R|Y@%~$gu4+w7GeedTHQ=3%>0@S0PeBd%>r}${pxm9@&uYWWsV`##!P~!gq DS45UM