DIM let$(20, 20) DIM flag$(20, 20) DIM words$(100) RANDOMIZE TIMER CLS FOR outer = 1 TO 20 FOR inner = 1 TO 20 let$(outer, inner) = CHR$(INT(RND * 26 + 65)) NEXT inner NEXT outer INPUT "Number of words to find"; words FOR count = 1 TO words INPUT word$ word$ = UCASE$(word$) words$(count) = word$ dir = INT(RND * 2 + 1) ON dir GOSUB across, down NEXT count GOSUB viewlets INPUT "Print out word search (y/n)"; sel$ IF UCASE$(sel$) = "Y" THEN GOSUB printout END across: usedflag$ = "yes" WHILE usedflag$ = "yes" usedflag$ = "no" xstart = INT(RND * (20 - LEN(word$)) + 1) y = INT(RND * 20 + 1) FOR spot = xstart TO xstart + LEN(word$) IF flag$(spot, y) = "used" THEN usedflag$ = "yes" NEXT spot WEND FOR spot = 1 TO LEN(word$) let$(spot + xstart, y) = MID$(word$, spot, 1) flag$(spot + xstart, y) = "used" NEXT spot RETURN down: usedflag$ = "yes" WHILE usedflag$ = "yes" usedflag$ = "no" ystart = INT(RND * (20 - LEN(word$)) + 1) x = INT(RND * 20 + 1) FOR spot = ystart TO ystart + LEN(word$) IF flag$(x, spot) = "used" THEN usedflag$ = "yes" NEXT spot WEND FOR spot = 1 TO LEN(word$) let$(x, ystart + spot) = MID$(word$, spot, 1) flag$(x, ystart + spot) = "used" NEXT spot RETURN viewlets: FOR outer = 1 TO 20 FOR inner = 1 TO 20 PRINT let$(outer, inner); " "; NEXT inner PRINT NEXT outer PRINT "Words to Find" time = 1 indent = 0 WHILE words$(time) <> "" PRINT TAB(indent); words$(time); time = time + 1 indent = indent + 20 IF indent >= 80 THEN indent = 0 PRINT END IF WEND PRINT RETURN handler: IF ERR = 25 THEN PRINT "Turn printer on!" GOSUB printout printout: LINE INPUT "Title (ENTER for none)"; title$ FOR lines = 1 TO 8 ON ERROR GOTO handler LPRINT NEXT lines LPRINT TAB(40 - (LEN(title$) / 2)); title$ LPRINT LPRINT LPRINT FOR outer = 1 TO 20 LPRINT " "; FOR inner = 1 TO 20 LPRINT let$(outer, inner); " "; NEXT inner LPRINT NEXT outer LPRINT LPRINT LPRINT "Words to Find" LPRINT LPRINT time = 1 indent = 0 WHILE words$(time) <> "" LPRINT TAB(indent); words$(time); time = time + 1 indent = indent + 20 IF indent >= 80 THEN indent = 0 LPRINT END IF WEND FOR lines = 1 TO 15 LPRINT NEXT lines LPRINT TAB(55); "Word Search Maker" LPRINT TAB(55); "Created by Brian Emmer" RETURN