added horizontal orientation
This commit is contained in:
1 parent
ec2b060d8d
commit
d5d547a051
1 file changed
+20
-3
+20
-3
@@ -34,8 +34,8 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi
|
|||||||
int placed = 0;
|
int placed = 0;
|
||||||
if(strlen(words[word]) >= searchFieldLen) break;
|
if(strlen(words[word]) >= searchFieldLen) break;
|
||||||
|
|
||||||
// int vertical = rand() / (RAND_MAX / 2);
|
int vertical = rand() / (RAND_MAX / 2);
|
||||||
int vertical = 1;
|
// int vertical = 0;
|
||||||
while (!placed && retries > 0)
|
while (!placed && retries > 0)
|
||||||
{
|
{
|
||||||
unsigned int x = 0;
|
unsigned int x = 0;
|
||||||
@@ -54,7 +54,10 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi
|
|||||||
}
|
}
|
||||||
|
|
||||||
// printf("Placing %s at %d,%d\n", words[word], x, y);
|
// printf("Placing %s at %d,%d\n", words[word], x, y);
|
||||||
|
if (vertical)
|
||||||
placed = tryPlaceVertical(salad, searchFieldLen, words[word], x, y);
|
placed = tryPlaceVertical(salad, searchFieldLen, words[word], x, y);
|
||||||
|
else
|
||||||
|
placed = tryPlaceHorizontal(salad, searchFieldLen, words[word], x, y);
|
||||||
|
|
||||||
// if (placed) printf("Placed %s at %d,%d!\n", words[word], x, y);
|
// if (placed) printf("Placed %s at %d,%d!\n", words[word], x, y);
|
||||||
|
|
||||||
@@ -103,6 +106,20 @@ int tryPlaceVertical(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], uns
|
|||||||
|
|
||||||
int tryPlaceHorizontal(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char word[], unsigned int x, unsigned int y)
|
int tryPlaceHorizontal(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char word[], unsigned int x, unsigned int y)
|
||||||
{
|
{
|
||||||
// TODO;
|
int wordLen = strlen(word);
|
||||||
|
|
||||||
|
for (int testX = x; testX < (x + wordLen); testX++)
|
||||||
|
{
|
||||||
|
if (salad[y][testX] != '\0') {
|
||||||
|
// printf("Besetzt!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// if ok then put my word in
|
||||||
|
for (int placeChar = 0; placeChar < wordLen; placeChar++)
|
||||||
|
{
|
||||||
|
salad[y][x + placeChar] = word[placeChar];
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user