home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
articles
/
Sughrue
/
wordhunt.txt
< prev
Wrap
Text File
|
2006-10-19
|
10KB
|
371 lines
.IF DSK1.C3
.CE 2
*IMPACT/99*
by Jack Sughrue
XB SPEED
.IF DSK1.C2
WORD HUNTING
Puzzles are a word-processing tool we
often forget about. Although I'm not
much of a word hunt person (word
search, find-a-word, whatever), my
fifth-grade students are. I prefer
crosswords or cryptograms, but
wordhunts have their value. They are
also a very pleasant way to introduce
the names of bones in the human
skeleton or the Presidents or
geometrical terms. Computers are
great teacher helpers in these
matters. All one has to do is find a
puzzle-creator program from somewhere
and type in the words. The sorting
and placement and completion of the
puzzle is done by our 99. So is the
making of hardcopies of puzzle,
wordlist, answers. It's so easy.
But not always so quick.
Way back in 1982 WORD SAFARI
was programmed for TI. It's amazing
how many people own it but never use
it. Most people got it with OLDIES
BUT GOODIES before they got printers
or disk drives. By the time they got
these things they'd long since
forgotten this puzzle gem.
I have six word hunt programs, PD
and commercial, but there was always
a few things about WS that appealed
to me. (The "thinking numbers" on
the lower right screen, for one.)
Though it was soundless and colorless
and was SLOW BASIC and had very poor
printouts, the program had a
structure I liked. The way the menu
operation worked appealed to me.
I decided to use that original
structure to make a more modern
version of this puzzle, suited for
disk. First it had to be XB for
speed and because I don't know
assembly. Then it had to have a
continuing music pattern while the
reading was going on internally. It
also had to have color. And some
better screen directions. And much
better hardcopies (enlarged, double
strike, etc.) with a better overall
look. It also had to be drastically
reduced in size, though XB would take
care of some of that automatically.
I printed out all six of my word
hunt puzzles to see what features I
wanted for this new one and how I
could most efficiently program it.
It was fun. Besides the menu
operation, I found the sizes offered
were excellent for the different
kinds of things I planned to do in my
classroom. Each of the programs
presented me with interesting
concepts and interesting problems.
However, after three days (nights,
actually) I had a debugged version
which satisfied me. Then, as I do
with all programs, I gave it to some
adults and some kids to play with.
The input from them helped me fine
tune the project. I then (as I
always do) put it away for a couple
weeks.
Later, I took the "worker" disk
out of storage, turned on my Gemini,
and set out to do my first "official"
school puzzle: names of dinosaurs
(thus I had to use the large
square).
Perfect.
I made 27 copies of the puzzle
and word list for the kids and one
copy of the answers for me. FAST!
Then I put this right on my
FUNLPLUS! and was ready to use it
whenever I word processed. Very
handy. I since have added a few
subprograms from Jim Peterson's
wonderful NUTS 'n BOLTS disk which
will not appear in the succinct piece
below.
Anyway, I'm not permitted to
print the six original hunt programs,
but if you have a copy of WORD
SAFARI and/or some others you might
want to try them out if you haven't
used them for a while; then print out
a copies of the listing.
Next type in a copy of WORD
HUNT, try it out, and make some
comparisons. This will give you a
good idea of how I went about the
task.
Think about some really good
programs you recall from the past,
dig them out, look them over, see if
you can brighten them up, make them
better. Sometimes it'll take drastic
changes. Sometimes little. But in
either case you've had some fun with
some programs you probably would have
left forgotten in a box in the
closet. Now you can enjoy them all
over again.
NOTE: When I first wrote the
program I was going to write it in
BASIC. After I translated quite a
few line from my flowchart notes, I
decided to go into XB. I continued
with the PRINT and colon lines
instead of DISPLAY AT statements
until testing. It turned out to be
fine and fast as it was, so I left
them in. Those of you who'd like to
tighten this even more, adding or
changing features, send me a copy.
If the improvements are really good,
I'll print an update in a future
column. (Am also looking for
original SHORT programs in XB for
inclusion here with full credit.)
JACK SUGHRUE, Box 459, E.Douglas
MA 01516
WORD HUNT
.TL 126:94;
.TL 123:64;
.TL 125:38;
.TL 124:42;
.TL 92:46;
.NF
100 {=1 :: CALL CLEAR :: DIM
A$(728),A(7),B$(25)
110 C$="0" :: FOR B={ TO 8 :
: CALL COLOR(B,2,13)
120 NEXT B :: CALL CHAR(96,"
0"):: GOSUB 200 :: PRINT "
WORD HUNT PUZZLE ": : : : :
: : : : : : :: PRINT " ~~~s
trike~~~any~~~key~~~" :: GOS
UB 750
130 GOSUB 200 :: PRINT " WOR
D HUNT PUZZLE ": : :: PRINT
: :" CHOOSE" :: PRINT :"
1 SETUP (CHOOSE FIRST)" ::
PRINT :" 2 INPUT PUZZLE"
140 PRINT :" 3 OUTPUT LIS
T"
150 PRINT :" 4 OUTPUT ANS
WER" :: PRINT :" 5 QUIT":
: : : :
160 GOSUB 750 :: IF C<49 THE
N 160
170 IF C>53 THEN 160
180 ON C-48 GOSUB 770,230,97
0,870,190 :: GOTO 130
190 CALL CLEAR :: STOP
200 CALL CLEAR :: CALL SCREE
N(11):: CALL VCHAR({,{,96,48
):: CALL VCHAR({,31,96,48)::
FOR D={ TO 8
210 CALL SOUND(-999,VAL(SEG$
("26226229433034939244049452
3587659698784",INT(12|RND+{)
|3-2,3)),0,VAL(SEG$("1311751
96",INT(3|RND+{)|3-2,3)),5)
220 NEXT D :: RETURN
230 GOSUB 200 :: PRINT " CHO
OSE " :: PRINT :" 1 10
X10 PUZZLE" :: PRINT :" 2
20X20 PUZZLE" :: PRINT :
" 3 25X25 PUZZLE": : :
: : : : : : : : :
240 GOSUB 750 :: IF C<49 THE
N 240
250 IF C>51 THEN 240
260 E=(C-48)|10-5|INT(C/51):
: GOSUB 200 :: F={ :: G={ ::
H={ :: IF I=0 THEN 280
270 INPUT " TITLE OF PUZZLE?
":D$ :: INPUT " HOW MANY CO
PIES? ":F
280 INPUT " HOW MANY WORDS?
":J :: IF J<26 THEN 300
290 PRINT "SORRY: 25-WORD MA
XIMUM\" :: GOTO 280
300 FOR B=0 TO J-{
310 INPUT " WORD "}STR$(B+{)
}" ? ":B$(B):: IF LEN(B$(B))
>2 THEN 330
320 PRINT "SORRY: 3-LETTER M
INIMUM\" :: GOTO 310
330 IF LEN(B$(B))<11 THEN 35
0
340 PRINT "SORRY: 10-LETTER
MAXIMUM\" :: GOTO 310
350 NEXT B
360 INPUT "ANY CHANGES? (Y/N
) ":E$ :: IF E$<>"Y" THEN 39
0
370 INPUT "WHICH NUMBER? ":B
380 INPUT "MAKE CORRECTION?"
:B$(B-{):: GOTO 360
390 GOSUB 200 :: PRINT : : :
" THINKING\\\" :: A(
0)={ :: A(4)=-{ :: A({)=E+{
:: A(5)=-A({):: A(2)=A({)+{
:: A(6)=-A(2):: A(3)=A(2)+{
:: A(7)=-A(3):: B=E+3
400 K=(E+2)~2-{-B :: FOR L=B
TO K :: A$(L)=" "
410 NEXT L :: M=E+2 :: K=M|M
-M :: FOR B=0 TO K STEP M ::
A$(B)="||" :: A$(B+E+{)="||
" :: A$(B/M)="||" :: A$(K+B/
M)="||"
420 NEXT B :: K=0 :: FOR N=0
TO J-{ :: D=0
430 D=D+{ :: E$=STR$(D)}" "
:: CALL HCHAR(23,25,ASC(E$))
:: CALL HCHAR(23,26,ASC(SEG$
(E$,2,{))):: IF D<76 THEN 49
0
440 J=N :: GOSUB 200 :: PRIN
T "SORRY: CAN ONLY SQUEEZE I
N";STR$(J);" WORDS\": : : :
: :: PRINT " CHOOSE" :: PRIN
T :" 1 USE ";STR$(J):"P
RESENT LIST\" :: PRINT :"
2 BEGIN AGAIN": : : : : :
: : : : : :
450 GOSUB 750 :: IF C<>49 TH
EN 470
460 GOSUB 200 :: PRINT "
THINKING\\\": : : : : :
: : : : : : :: GOTO 620
470 IF C=50 THEN 740
480 GOTO 450
490 B=INT(((E+2)~2-E)|RND)+E
:: IF A$(B)<>" " THEN 430
500 FOR O=0 TO 7
510 IF K<8 THEN 530
520 K=0
530 L=B+A(K):: FOR P=2 TO LE
N(B$(N)):: IF L<E+2 THEN 570
540 IF A$(L)<>" " THEN 570
550 L=L+A(K)
560 NEXT P :: GOTO 590
570 K=K+{
580 NEXT O :: GOTO 430
590 L=B :: FOR P={ TO LEN(B$
(N)):: A$(L)=SEG$(B$(N),P,{)
:: A$(L)=A$(L)}A$(L):: L=L+A
(K)
600 NEXT P :: K=K+{
610 NEXT N
620 FOR B=0 TO (E+2)~2-{ ::
IF A$(B)<>" " THEN 640
630 A$(B)=CHR$(INT(26|RND)+6
5)}" "
640 NEXT B :: GOSUB 200 :: I
F I=0 THEN 660
650 PRINT " P R I N T I N G"
660 FOR M={ TO F :: IF I=0 T
HEN 680
670 PRINT #I:CHR$(27)}CHR$(8
7)}CHR$({): : :" ";D$:"
~~~~~~~~~~":
680 FOR B=0 TO E+{ :: PRINT
#I:CHR$(27)}CHR$(87)}CHR$({)
:" ";:: FOR K=B|(E+2)TO (B
+{)|(E+2)-{ :: PRINT #I:SEG$
(A$(K),{,{);
690 NEXT K
700 NEXT B
710 NEXT M :: IF I<>0 THEN 7
30
720 PRINT :" PRESS ANY
KEY";:: GOSUB 750
730 PRINT #I:CHR$(27)}CHR$(8
7)}CHR$({): : :
740 RETURN
750 CALL KEY(0,C,Q):: IF Q<=
0 THEN 750
760 RETURN
770 GOSUB 200 :: PRINT " CHO
OSE" :: PRINT :" 1 SCREE
N" :: PRINT :" 2 PARALLE
L PRINTER" :: PRINT :" 3
OTHER": : : : : : : : : : :
: : : : :
780 GOSUB 750 :: IF C<49 THE
N 780
790 IF C>51 THEN 780
800 I=0 :: IF C=49 THEN 860
810 I={ :: F$="PIO" :: IF C=
50 THEN 830
820 INPUT " DEVICE ? ":F$
830 IF C$="0" THEN 850
840 CLOSE #{
850 OPEN #{:F$,OUTPUT :: C$=
"1"
860 RETURN
870 GOSUB 200 :: IF I=0 THEN
890
880 INPUT "HOW MANY COPIES?
":G :: PRINT : : :"PRINTING
ANSWERS\"
890 FOR M={ TO G :: IF I=0 T
HEN 910
900 PRINT #I: : : :" ";D
$:" ~~~~~~~~~~":
910 FOR B=0 TO E+{ :: PRINT
#I: :" ";:: FOR K=B|(E+2)T
O (B+{)|(E+2)-{ :: PRINT #I:
SEG$(A$(K),2,{);
920 NEXT K
930 NEXT B
940 NEXT M :: IF I<>0 THEN 9
60
950 PRINT :" PRESS ANY
KEY";:: GOSUB 750
960 PRINT #I: : : : :: RETUR
N
970 GOSUB 200 :: IF I=0 THEN
990
980 INPUT "HOW MANY COPIES?
":H :: PRINT : : :"PRINTING
LIST\"
990 FOR M={ TO H :: IF I=0 T
HEN 1010
1000 PRINT #I: : : :" ";
D$:" ~~~~~~~~~~": :
1010 FOR B=0 TO J-{ :: PRINT
#I:" ";B$(B)
1020 NEXT B :: PRINT #I: : :
:
1030 NEXT M :: IF I<>0 THEN
1050
1040 PRINT " PRESS ANY
KEY";:: GOSUB 750
1050 RETURN
.FI;AD;
ÇçǼçïÉòƒ⌐╒╒╒╒╒╒╒╒╒╒Çï