From acc14b49d8d467a1905b5c6460c64ceccf0c96d1 Mon Sep 17 00:00:00 2001 From: Hofmann Jonas Date: Tue, 4 Nov 2025 16:48:22 +0100 Subject: [PATCH] Funktionaler Wortsalat mit Test-printf()-anweisungen --- Start_Windows/game.c | 28 ++++++++++++++++++++-------- Start_Windows/game.o | Bin 8951 -> 9279 bytes 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Start_Windows/game.c b/Start_Windows/game.c index f7fa67d..cd33f4e 100644 --- a/Start_Windows/game.c +++ b/Start_Windows/game.c @@ -55,7 +55,10 @@ wordPosition choserandomPosition(unsigned int searchFieldLen, unsigned int wordL //srand(time(NULL)); position.alignment = rand()%(VERTIKAL - HORIZONTAL + 1) + HORIZONTAL; position.rowOrColumn = rand()%(searchFieldLen); + printf("Wordlength: %d\n", wordLength); position.startingCell = rand()%(searchFieldLen - wordLength); + printf("Starting Cell: %d\n", position.startingCell); + return position; } @@ -112,7 +115,7 @@ int placeWord(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], wordPositi if (position.alignment == HORIZONTAL) { - for (i = position.startingCell; (i < serchFieldLen) || (j < currentWordLen); i++) + for (i = position.startingCell; (i < serchFieldLen) && (currentWord[j] != '\0'); i++) { salad[position.rowOrColumn][i] = currentWord[j]; printf("%c",currentWord[j]); @@ -122,7 +125,7 @@ int placeWord(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], wordPositi } else if (position.alignment == VERTIKAL) { - for (i = position.startingCell; (i < serchFieldLen) || (j < currentWordLen); i++) + for (i = position.startingCell; (i < serchFieldLen) && (currentWord[j] != '\0'); i++) { salad[i][position.rowOrColumn] = currentWord[j]; printf("%c",currentWord[j]); @@ -130,7 +133,7 @@ int placeWord(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], wordPositi } salad[i][position.rowOrColumn] = '\0'; } - + printf("\n"); return 1; } @@ -162,11 +165,19 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi { int i = 0; int j = 0; + int k = 0; int positionFound = 0; int placedWords = 0; + char nullWord[MAX_WORD_LEN]; char currentWord[MAX_WORD_LEN]; wordPosition currentWordPosition = {0,0,0}; + + for (k = 0; k < MAX_WORD_LEN; k++) + { + nullWord[k] = '\0'; + } + srand(time(NULL)); initializeWordsalad(salad, searchFieldLen); showWordSalad(salad, searchFieldLen); @@ -174,18 +185,19 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi for (i = 1; i <= wordCount; i++) { j = 0; + + strcpy(currentWord, nullWord); + strcpy(currentWord, words[i-1]); + do { - currentWordPosition = choserandomPosition(searchFieldLen, strlen(words[i])); - positionFound = checkIfPositionIsFree(salad, currentWordPosition, strlen(words[i]), searchFieldLen); + currentWordPosition = choserandomPosition(searchFieldLen, strlen(currentWord)); + positionFound = checkIfPositionIsFree(salad, currentWordPosition, strlen(currentWord), searchFieldLen); j++; } while ((j < MAX_RAND_TRIES_PER_WORD) && !(positionFound)); if (positionFound) { - strcpy(currentWord, "\0"); - strcpy(currentWord, words[i-1]); - printf("%d, %d, %d \n", currentWordPosition.alignment, currentWordPosition.rowOrColumn, currentWordPosition.startingCell); printf("%s\n", currentWord); placedWords += placeWord(salad, currentWordPosition, currentWord, strlen(currentWord), searchFieldLen); diff --git a/Start_Windows/game.o b/Start_Windows/game.o index b2fada6ef1cf0c3dddcbb90de172ad8129869c5f..8dc08259a7356f60dac851fb286fda92c243d4e8 100644 GIT binary patch delta 3055 zcma)7eQZ5|+@^YbgjwM?B)}g(gy_CL&|3z~X$Eq)xD% zGX4Oka!vJcqr|xbwNlzK6s=oFRVrswfpsGcB}_t7rcs5hn$)hFMn$WY4z1-w&CYqx ze#zEN+Lhitzk9y#x#!;ZS@>6yF>=g8aGdnzjGk3N10hWUAsuTJCRv?(Y(PjFbEm8I z*NlX0eIWN+uRaK}ji%hEmBtA@ArTWHwQISTR?^!%L~Hbm4nmH4d5n6EheSe3$_bhD z@{_buIO^i(X|*ux;(rE`c5|apX&j}5{N7E-KfQdD@NqaB_RE)~F^2IadG-cUWs)yt z!>&4z&dLktk^9*#c|i`}&xY?S1~y<74f2h;KT*9ka~ycw$96drj%@gI=|w5q8Itee{EKsD8tKcWJ3m%dC=>l+9p@ST7gIzQjBM z+fj1`Kt9~2EQ<+CW1WrCSa_jW?QBZf6_j`2VniBip91gip?3-gxvaJl%d@b$tcDHA zSJ2a)J4;I|RYLMbDI2~l$>Fov@KrhdRw2o;@L4IV6gVXRPLeO(7`dB*-DR+JX{D&J zdrY-7RhoWVDQGfN1jE_3tJ%&g;5Q`yCItP1t@a@1S}4!T3|8V0Wc+X0wBpVRxnTX( z?BtFrKjw7!-qI4y;2EZs+R&^*wq&pgtm*t0|E1Ww0rn45g)hf zA=x^VB2ZPz6Y>4A2+?1swnmhE2o}US9FNA5y@cJNR_yg}7d=++FU($HafW-#JT;5H zYrq$BgnB?{aW9$*IfD=-e=wkxkQ)>ZkU#RhWe=yO8FH`?I0nED2c3FX2lGaN)1I3E zi_WHZ7n~UnL5&h*dPEInQ`S3%Mq)`a{gSHVf`C6-5%ARl?iU8gj|=#l5n*^J5lu#i zV$EP2AwMYy_6Wm+`@4H0coYfpT7kPyh>Z*mB9HvE6jRjYJ~?W|xBN_DIm*9gsaX5^ zstZs^UGDY~Qnm}ExCKiBKsOQJml2uG8C-xhT?`po^FZzy^E52QDI9ov@)`5u%2|{rbv8aLjtQ9q}Ore5` zeeATl@VR6!Gby+fjJ@`H}&nfN&K8u%TDR}aW!*q(Qnw^I5X?{)e%ev1gA*vx8y(4A}> zk_NUDh^|Xn>Hfl;?abW8s?RXzb!M(-u1S8*>Hq5gVQ6k=u1{HY0~7n1=@c)iIF%CW z96x};R{anXX=CCm%n^j=6~fIiI|ffO;|V4rdS%4$1SqwlQt571a*Fx?!AcAhtm&7` zj|%5mtD%p1RA>?&b+CHC!U!_-6U?ZeoMeynGGha1wO(Lu;Mamt1u6-T*jWI9F4kKN zEb5#FzY?>J(Z2kq)j?{8C#0{wpCpoz=n#*)t_6zc7P8om2|LR4!r3`<2|Q+a{c&vP zeeTT<{%2Dw+98W8t!uKhhs}Dwu9MHYox*03Uw3=AY*1~#^t32u->@tQl3Bk%b-RT* zdr1xGRu%MTc#X%;C671tH{dwo6UpCU# SZJ5_9$OSE{O8tOTX)9dwT1EQ4hHBvE z6?lMD+gorq>J+^u=t#^|BnLF~44{VyX#(a;Dg>m5--8;?0!R(#0aULTR|5hQ&=a6; zYB(37{KuYdntC0w@qySxpbcP#Ye60Wr1EMtv|p2cPvafa(DyZTK|@P`RDTt)C)Hn- zh8|JTQ=rnQF;4?hP0ne&c@4dzp?jL19jc(Z_G_pEkm}_~{-L#H)U*dqVV$zaeLU8I?bK;) zXLxKDN9Y#483vdfH4@QKP*LMEqkjm-72OoIO3+|5Zdj3sK(d>VhG^Bs`hEA#+%}t- z>`CrDzw`Uv=lKuy$B+`)Qwr2p`Lc@Fd0-B}3JE~<>LfU`OJdU5qU@1+Ym)*n;mw}* zSsf^QOvz3JlmRQiv&dhl7CshW6(YzQtUs0mEUgi7=2KS701a~iR@R6oSU}oQDUP#x z>77b(0lSAhLXiT>b_Q_T1Mq5%SStNj+-j-GZLyqVQZgmZbC=k_?@$I`ONS<#L$?hc z6W>}~jxkw+E4wg>v}JgbCI5_D7!3UvLhF_*0Gd!QQh^QGpMX;9S*I_)2@a5 zE3}UJr$SRy;;GQ2(OosVYkD`5n4X?C&~_93Esx$N!Q~f!o}SiDUM8IG@~G*ML&f1+ z$j%z>V<`$Tg(bq3cKqkVr9)HdlWOd}h??&5tLzM!k|*t?n$csUkD&G;(VvjV-%$^0 z@2P2BU)4r7V0!5hN>UryLKw5kjHHNG(;beW_L-`^f7$*E%0pL&Lz8TH=VVbz8Qysn z%KqMmS_V3bX^e#)hMAa|dk$fFnCAOxCiHM2)pUkJr5~sHF>(lM9|g5D8ftN>#Zbih zXIst2L9F(7vu~$R8NDdV9*faB=lQ9E^H>23T^q((#T=J~=9dk>@T*a7ei5oMdSMZq zIE7cHP#n6Z?)oR~1F^$eFRoL<$^o;9gmPDrUFLS?1=%9Tlm%UtxLCL;f%;eQK+Ho- z{Ur;)V#L({guA;1G4%=_92GJ3d+_T-d_!cR-}wA^MgaOm)V@;MGbi_k{RoRy3=Hj%`DU!A%1@fZtwj#UvJyn1HUMOZ%d6;D0KQpmJNm7~DgH z8{-kMe#IPrCh`hO#k(awXMF8 zmfoBi<-|~V)SPHXjU76H#j_@aquz0Z1!tpc^UjoQ{ezJq7)=_X9QwGmKN(NJ=s`or zg8`4u3ixauZ;=N2hk6n{{qeT`TasAFb9uoAX`pZ8rf6i1?)v#W8!4mP>sS$GWXWC? zzA|^s3(gZbO_uC;4?)Qqlv0YNLkKp3d_vq?R+-vMt4FOI6{)d9i?K+(q`kh`CGA}| zGe7%grMth7E)?l$QC1Msr;Bz8wdJPolLg@p%3ocMxv^eTgt$IY-qtu=-BW}hMs8`eKFH}PTTQ?K}-bkaZ zhHHmz*1A6*76XOMKz-3fB0AWHOBaE*JR3Hb$l5&^jl!Mcf@7gQLm6OWhdvNh&Tw%( zJ`H*bf!cAg)7jzZMWT9rXU_vsV8Cwf&3)|*Gyh$4TdEko5H31w?nd^SS zX6jma5IZ@nkK`8aTE~mSy#8hG`id7fa?e^Z>h?GOABM&2xMzabw{Ux}m~bCX*|N!G zk~_C@#r83mDbzE`i`@P_mlM2bEx%_QUopY`#P8-|+h*QA!M(=FE-jnO8xc!)6JhP< ziuLeee*N9(s^uNN0R9BKdLdCS9qyoYxVs^tbSGaG+!*mn{{?G3X`EZqGG) z7PI0=Pk-YUz&g;8n9${?%dnXhESc)Y*LP1XvP1SyJUv+KjJX+1iPX<38 zKH7gWJa3{b9uY&j76UKPrAHCnq@&MG)Pb95q0Yq-xpcG@(IOq~M%1XIeTWR(FkZ$O z&4%IP1anKS+r&~Cj9iPFcDRVhj)=jO$tjqPAq^rjq+yfmHc`SvPnqZ&M25u=CMRS5 zhQD$HtwR;RN$y5um>e{@V*->gVNM}KD?P(}i3~k)2Gf{`ZciXXjV=)jqo>cQj|;!X z$i~D*8VJpQkd