home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 4.4 KB | 152 lines |
- 1 REM SCRAMBLED WORD 7/1983
- 2 REM
- 3 REM UNSCRAMBLE LETTERS TO
- 4 REM SPELL A GIVEN WORD
- 5 REM
- 6 REM IBM BASICA 64k
- 7 REM
- 9 REM
- 10 REM ADAPTED TO IBM FROM THE APPLE FROM THE PET
- 11 REM ***********************
- 13 REM * *
- 14 REM * SAN MATEO COUNTY *
- 15 REM * OFFICE OF EDUCATION *
- 16 REM * *
- 17 REM * COMPUTER-USING *
- 18 REM * EDUCATORS *
- 19 REM * *
- 20 REM * SOFTSWAP *
- 21 REM * *
- 22 REM * 333 MAIN STREET *
- 23 REM * REDWOOD CITY *
- 24 REM * CA 94063 *
- 25 REM * (415)363-5472 *
- 26 REM * *
- 28 REM * *
- 29 REM ***********************
- 30 REM *PROGRAM MAY BE COPIED*
- 31 REM *FOR EDUCATIONAL USE &*
- 33 REM *RIGHT 1983 CUE,INC *
- 34 REM ***********************
- 100 SCREEN 0,1: WIDTH 40: KEY OFF: CLS
- 110 CLS : PRINT : PRINT : PRINT
- 120 PRINT TAB( 8);"SCRAMBLED WORD GAME": PRINT : PRINT : PRINT
- 130 LOCATE 5
- 140 DIM B$(20),A(20)
- 150 RESTORE
- 160 A$ = ""
- 170 B$ = ""
- 180 C$ = ""
- 190 FOR Z = 1 TO 20
- 200 A(Z) = 0
- 210 NEXT Z
- 220 A = INT ( RND (1) * 30 + 1)
- 230 FOR B = 1 TO A
- 240 READ A$
- 250 IF A$ = "END" THEN RESTORE :B = B - 1
- 260 NEXT B
- 270 C = LEN (A$)
- 280 FOR E = 1 TO C
- 290 D = INT ( RND (1) * C + 1)
- 300 IF A(D) = 1 THEN 290
- 310 B$(E) = MID$ (A$,D,1)
- 320 B$ = B$ + B$(E)
- 330 A(D) = 1
- 340 NEXT E
- 350 IF A$ = B$ THEN 280
- 360 LOCATE 10: PRINT " UNSCRAMBLE: ";B$;:CV=5: GOSUB 1120
- 370 LOCATE 14
- 380 PRINT "WHAT'S YOUR GUESS";
- 390 GOSUB 1010
- 400 PRINT : PRINT
- 410 C$ = EE$
- 420 IF A$ = C$ THEN 480
- 430 GOTO 470
- 440 GOSUB 1220:WW = WW + 1: IF WW < 3 THEN GOSUB 1200: GOTO 370
- 450 PRINT " THE ANSWER IS: ";: PRINT A$: PRINT
- 460 WW = 0: GOTO 500
- 470 W = W + 1: GOTO 440
- 480 PRINT "CORRECT!!": PRINT
- 490 R = R + 1
- 500 PRINT : PRINT "SCORE: CORRECT ";R;" WRONG ";W
- 510 LOCATE 23: PRINT "ANOTHER WORD? (Y OR N) ==>";
- 520 QQ$=INKEY$: IF QQ$ = "" THEN 520
- 530 IF QQ$ = "Y" OR QQ$="y" THEN CLS : LOCATE 3: GOTO 160
- 540 IF QQ$ < > "N" AND QQ$<>"n" THEN 520
- 550 : CLS : PRINT : PRINT "YOU ANSWERED: "
- 560 T = W + R
- 570 X = INT (R / T * 100 + 0.5)
- 580 Y = INT (W / T * 100 + 0.5)
- 590 PRINT : PRINT
- 600 PRINT X;"% CORRECT ";Y;"% WRONG"
- 610 PRINT : PRINT
- 620 PRINT "IS THERE ANYONE ELSE WAITING TO PLAY?"
- 630 PRINT "(Y FOR YES OR N FOR NO)=>";
- 640 QQ$=INKEY$: IF QQ$ = "" THEN 640
- 650 IF QQ$ = "Y"OR QQ$="y" THEN RUN
- 660 IF QQ$ < > "N" AND QQ$<>"n" THEN 640
- 670 PRINT : PRINT : LOCATE , 8: PRINT "* * * T H E E N D * * *"
- 680 CHAIN "MENU",170: RUN
- 690 DATA HOBBY,BUILT,DIVERT,FLOWER
- 700 DATA GRIMY,SMART,ENGINE,MUFFIN
- 710 DATA RUSTY,DESTROY,ICEBOX,DEBTOR
- 720 DATA SCHOOL,HENNA,ARCADE,PURPLE
- 730 DATA RAINY,LAPEL,FROZEN,CIPHER
- 740 DATA NUTTY,MAGIC,PASTRY,SOLACE
- 750 DATA BOOTY,CLOUT,DROWSY,WINDOW
- 760 DATA FELON,DICED,THROW,CLOUDY
- 770 DATA DARING,BAFFLE,INVITE,ENAMEL,DAHLIA,OBJECT
- 780 DATA WINCE,CRESS,DRUG,INVERT
- 790 DATA SNORT,MOTIF,CHORUS,GENDER
- 800 DATA POUCH,EXACT,BUTTON,ORIOLE
- 810 DATA YOKEL,ARMOR,VANDAL,PICKET
- 820 DATA LIMIT,GAUDY,SINGLE,DOUBLY
- 830 DATA SOUSE,FUZZY,AFFRAY,ESTATE
- 840 DATA CLEFT,STEED,OUTBID,WIDEST
- 850 DATA LINEAR,THYME,DISMAL,HELMET
- 860 DATA CLOVE,HITCH,DUPLEX,ARTERY
- 870 DATA WEDGE,TAFFY,QUAVER,BUTTER
- 880 DATA ENACT,JOINT,THRUSH,WISDOM
- 890 DATA DOUBT,QUEEN,MARINA,BEHELD
- 900 DATA BEGIN,CANAL,GHOST,NIMBLE
- 910 DATA YIELD,ABYSS,EMPLOY,FASTEN
- 920 DATA ALBUM,TWINE,RANSOM,BEDECK
- 930 DATA IGLOO,WHINE,GRIMLY,SOLID
- 940 DATA LOUSY,APRON,BANGLE,ANKLET
- 950 DATA FINISH,PREFER,IODINE,DABBLE
- 960 DATA GUTTER,NICKLE,POISON,OUTING,MOBILE,RAMROD
- 970 DATA NERVE,CHIME,HYMNAL,FACTOR
- 980 DATA CHAIR,AWOKE,AROUSE,SIPHON
- 990 DATA ZIGZAG,DONKEY,SPENT,VANITY,FAMOUS,INFUSE
- 1000 DATA END,END
- 1010 REM
- 1020 REM CURSOR INPUT ROUTINE
- 1030 EE$ = "":CV = 2 + 1:CH = 4 + 1
- 1040 INPUT EE$:Z$ = EE$:GOSUB 10000: EE$=Z$:GOTO 1110
- 1050 IF AA < > 8 THEN EE$ = EE$ + CHR$ (AA): PRINT CHR$ (AA);: GOTO 1040
- 1060 IF LEN (EE$) = 0 THEN 1040
- 1070 IF LEN (EE$) = 1 THEN EE$ = "": GOTO 1090
- 1080 EE$ = LEFT$ (EE$, LEN (EE$) - 1)
- 1090 IF CV + INT ( LEN (EE$) / 40) > 24 THEN CV = CV - 1: GOTO 1090
- 1100 LOCATE CV: LOCATE , CH: PRINT EE$;: CALL - 958: GOTO 1040
- 1110 PRINT CHR$ (13);: RETURN
- 1120 LOCATE CV: LOCATE , 17: PRINT "/";
- 1130 FOR A = 1 TO LEN (B$) - 2: PRINT "-";: NEXT
- 1140 PRINT CHR$ (92);
- 1150 LOCATE CV + 1: LOCATE , 16: PRINT "<";: LOCATE , 16 + LEN (B$) + 1: PRINT ">";
- 1160 LOCATE CV + 2: LOCATE , 17: PRINT CHR$ (92);
- 1170 FOR A = 1 TO LEN (B$) - 2: PRINT "-";: NEXT
- 1180 PRINT "/"
- 1190 RETURN
- 1200 FOR XX = 1 TO 500: NEXT XX
- 1210 LOCATE 14: LOCATE , 19: PRINT : RETURN
- 1220 LOCATE , 19: PRINT "SORRY!!";: FOR XX = 1 TO 500: NEXT XX: LOCATE , 19: PRINT : RETURN
- 10000 REM
- 10010 Z2$="":FOR VI=1 TO LEN(Z$)
- 10020 Z1$=MID$(Z$,VI,1)
- 10030 IF Z1$=>"a" OR Z1$=<"z" THEN Z2$=Z2$+CHR$(ASC(Z1$)-32):GOTO 10050
- 10040 Z2$=Z2$+Z1$
- 10050 NEXT VI
- 10060 Z$=Z2$
- 10070 RETURN
-