diff --git a/Makefile b/Makefile deleted file mode 100755 index 5228043..0000000 --- a/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -JAVA = /usr/bin/java -# JAVAFLAGS = -version # -classpath $(LIBS) -JAVAC = /usr/bin/javac -JFLAGS = -g # -classpath $(LIBS) - -SRCS = uk/org/mafoo/wordsearch/GridFactory.java \ - uk/org/mafoo/wordsearch/Bounds.java \ - uk/org/mafoo/wordsearch/CouldNotPlaceWordException.java \ - uk/org/mafoo/wordsearch/Direction.java \ - uk/org/mafoo/wordsearch/DistributedRandomNumberGenerator.java \ - uk/org/mafoo/wordsearch/Modes.java - -OBJS = ${SRCS:.java=.class} - -.SUFFIXES: .java .class - -all: build wordsearch.jar - -run: all - $(JAVA) uk.org.mafoo.wordsearch.GridFactory 15 15 - -.java.class: - $(JAVAC) $(JFLAGS) $< - -build: $(OBJS) - -clean: - rm -f $(OBJS) wordsearch.jar wordsearch.war - -wordsearch.jar: build - jar cf $@ $(OBJS) - cp wordsearch.jar war/WEB-INF/lib diff --git a/src/Makefile b/src/Makefile deleted file mode 100755 index 3a57958..0000000 --- a/src/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -CC=gcc -CFLAGS=-DDEBUG_GRID_MAIN -std=c99 -g -DEPS=dir.o rnd.o grid.o - -wordsearch: $(DEPS) - $(CC) -o wordsearch $(DEPS) $(CFLAGS) - -%.o: %.c - $(CC) -c -o $@ $< $(CFLAGS) - -clean: - rm $(DEPS) diff --git a/src/a.out b/src/a.out deleted file mode 100755 index 7878bcb..0000000 Binary files a/src/a.out and /dev/null differ diff --git a/src/dir.c b/src/dir.c deleted file mode 100755 index ad37f48..0000000 --- a/src/dir.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "dir.h" -#include "rnd.h" - -int directions[] = { - DIRECTION_N, - DIRECTION_NE, - DIRECTION_E, - DIRECTION_SE, - DIRECTION_S, - DIRECTION_SW, - DIRECTION_W, - DIRECTION_NW -}; - -int get_direction(int simple) -{ - if (simple) { - if (random_number(0, 1) == 0) { - return DIRECTION_E; - } else { - return DIRECTION_S; - } - } else { - return directions[random_number(0, NUM_DIRECTIONS)]; - } -} - -#ifdef DEBUG_DIR_MAIN -#include - -int main() -{ - int n = 32; - while (--n > 0) { - printf("%d\n", get_direction(1)); - } - return 0; -} -#endif diff --git a/src/dir.h b/src/dir.h deleted file mode 100755 index ff18361..0000000 --- a/src/dir.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef WORDSEARCH_DIR -#define WORDSEARCH_DIR - -enum direction { - DIRECTION_N, - DIRECTION_NE, - DIRECTION_E, - DIRECTION_SE, - DIRECTION_S, - DIRECTION_SW, - DIRECTION_W, - DIRECTION_NW -}; - -#define NUM_DIRECTIONS 8 - -int get_direction(int simple); - -#endif diff --git a/src/dir.o b/src/dir.o deleted file mode 100755 index b5c48b4..0000000 Binary files a/src/dir.o and /dev/null differ diff --git a/src/grid.c b/src/grid.c deleted file mode 100755 index 94bb86d..0000000 --- a/src/grid.c +++ /dev/null @@ -1,197 +0,0 @@ -#include -#include -#include -#include -#include - -#include "rnd.h" -#include "dir.h" -#include "grid.h" - -enum exitcodes { - EXIT_WORDTOOLONG, -}; - -bounds *get_bounds(int height, int width, enum direction direction, int length) -{ - if (length > height || length > width) { - return NULL; - } - - length--; - - bounds *b = (bounds *) malloc(sizeof(bounds)); - - b->min_x = 0; - b->max_x = width-1; - b->min_y = 0; - b->max_y = height-1; - if (direction == DIRECTION_N || - direction == DIRECTION_NE || direction == DIRECTION_NW) { - b->min_y = length; - } - - if (direction == DIRECTION_W || - direction == DIRECTION_NW || direction == DIRECTION_SW) { - b->min_x = length; - } - - if (direction == DIRECTION_E || - direction == DIRECTION_NE || direction == DIRECTION_SE) { - b->max_x = width - length; - } - - if (direction == DIRECTION_S || - direction == DIRECTION_SW || direction == DIRECTION_SE) { - b->max_y = height - length; - } - - return b; -} - -int move_x(int x, enum direction d) { - if( - d == DIRECTION_E || - d == DIRECTION_NE || - d == DIRECTION_SE - ) { - x++; - } else if ( - d == DIRECTION_W || - d == DIRECTION_NW || - d == DIRECTION_SW - ) { - x--; - } - - return x; -} - -int move_y(int y, enum direction d) { - if( - d == DIRECTION_N || - d == DIRECTION_NE || - d == DIRECTION_NW - ) { - y--; - } else if ( - d == DIRECTION_S || - d == DIRECTION_SE || - d == DIRECTION_SW - ) { - y++; - } - - return y; -} - -char **make_grid(char **words, int height, int width, int simple, int count) -{ - char **grid = init_grid(NULL, height, width); - for(int i=0; imin_x, b->max_x); - y = random_number(b->min_y, b->max_y); - - char** tempgrid = init_grid(grid, height, width); - /* Now we have two copies of the grid, try to place the word... */ - int i; - for(i=0; i -int main() -{ - char *words[4] = { - "test", - "word", - "longer", - "verylong" - }; - char **grid = make_grid(words, 10, 10, 0, 4); - print_grid(grid, 4); -} -#endif diff --git a/src/grid.h b/src/grid.h deleted file mode 100755 index 2019bb9..0000000 --- a/src/grid.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef WORDSEARCH_GRID -#define WORDSEARCH_GRID - -#define WORDSEARCH_MAXTRIES 500 - -char **make_grid(char **words, int height, int width, int simple, int count); - -typedef struct bounds { - int min_y; - int max_y; - int min_x; - int max_x; -} bounds; - -/* returns NULL if cannot fit word; caller needs to free() the response */ -bounds *get_bounds(int height, int width, enum direction direction, int length); - -int place_word(char *word, char **grid, int height, int width, int simple); - -char **init_grid(char** old, int height, int width); -void free_grid(char** grid, int height); -int move_x(int x, enum direction d); -int move_y(int y, enum direction d); -void print_grid(char** grid, int height); - -#endif diff --git a/src/grid.o b/src/grid.o deleted file mode 100755 index 41aa031..0000000 Binary files a/src/grid.o and /dev/null differ diff --git a/src/rnd.c b/src/rnd.c deleted file mode 100755 index 8c7bd0e..0000000 --- a/src/rnd.c +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include -#include - -#include "rnd.h" - - /* https://www.math.cornell.edu/~mec/2003-2004/cryptography/subs/frequencies.html */ - -#define ALPHABET_SIZE 26 -#define RND_MAXINT 10000 - -struct letter_frequency { - int p; /* pegged to 10000 rather than 1 */ - char c; -} letter_frequencies[] = { - { - 7, 'Z'}, { - 10, 'J'}, { - 11, 'Q'}, { - 17, 'X'}, { - 69, 'K'}, { - 111, 'V'}, { - 149, 'B'}, { - 182, 'P'}, { - 203, 'G'}, { - 209, 'W'}, { - 211, 'Y'}, { - 230, 'F'}, { - 261, 'M'}, { - 271, 'C'}, { - 288, 'U'}, { - 398, 'L'}, { - 432, 'D'}, { - 592, 'H'}, { - 602, 'R'}, { - 628, 'S'}, { - 695, 'N'}, { - 731, 'I'}, { - 768, 'O'}, { - 812, 'A'}, { - 910, 'T'}, { -1202, 'E'},}; - -/* from http://stackoverflow.com/questions/822323/how-to-generate-a-random-number-in-c */ -int random_number(int min_num, int max_num) -{ - static int initialised = 0; - int result = 0; - int low_num = 0; - int hi_num = 0; - if (min_num < max_num) { - low_num = min_num; - hi_num = max_num + 1; // this is done to include max_num in output. - } else { - low_num = max_num + 1; // this is done to include max_num in output. - hi_num = min_num; - } - if (!initialised) { - srand(time(NULL)); - initialised = 1; - } - result = (rand() % (hi_num - low_num)) + low_num; - return result; -} - -char get_random_letter() -{ - int rnd = random_number(0, RND_MAXINT); - for (int i = 0; i < ALPHABET_SIZE; i++) { - if (rnd < letter_frequencies[i].p) { - return letter_frequencies[i].c; - } - rnd -= letter_frequencies[i].p; - } - return '\0'; -} - -#ifdef DEBUG_RND_MAIN -#include - -int main() -{ - int n = 32; - while (--n > 0) { - printf("%c", get_random_letter()); - } - return 0; -} - -#endif diff --git a/src/rnd.h b/src/rnd.h deleted file mode 100755 index 624fcb9..0000000 --- a/src/rnd.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef WORDSEARCH_RND -#define WORDSEARCH_RND - -char get_random_letter(); -int random_number(int min_num, int max_num); - -#endif diff --git a/src/rnd.o b/src/rnd.o deleted file mode 100755 index 9003e0b..0000000 Binary files a/src/rnd.o and /dev/null differ diff --git a/src/t b/src/t deleted file mode 100755 index ab0dbb5..0000000 Binary files a/src/t and /dev/null differ diff --git a/src/t.c b/src/t.c deleted file mode 100755 index 6148e2f..0000000 --- a/src/t.c +++ /dev/null @@ -1,17 +0,0 @@ -char** t(int a, int b); -char** t(int a, int b) { - char t[a][b]; - int i, j; - for (i=0; i