home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #2
/
Image.iso
/
games1
/
grinch_.zip
/
GRINCH.BAS
Wrap
BASIC Source File
|
1993-06-12
|
9KB
|
176 lines
10 KEY OFF: CLS
20 SCREEN 0
30 WIDTH 40
40 PRINT "░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
50 PRINT "░┌───────────────────────────────────┐░"
60 PRINT "░│ │░"
70 PRINT "░│ 0016.BAS │░"
80 PRINT "░│ EL GRINCH │░"
90 PRINT "░│ │░"
100 PRINT "░│ │░"
110 PRINT "░│ BROUGHT TO YOU BY THE MEMBERS OF │░"
120 PRINT "░│ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ │░"
130 PRINT "░│ █ █ █ █ █ █ │░"
140 PRINT "░│ █ █▄▄▄█ █ █ █ │░"
150 PRINT "░│ █ █ █ █ █ │░"
160 PRINT "░│ ▄▄█▄▄ █ █▄▄▄▄ █▄▄▄█ │░"
170 PRINT "░│ │░"
180 PRINT "░│ International PC Owners │░"
190 PRINT "░│ │░"
200 PRINT "░│P.O. Box 10426, Pittsburgh PA 15234│░"
210 PRINT "░│ │░"
220 PRINT "░└───────────────────────────────────┘░"
230 PRINT "░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
240 PRINT
250 PRINT " PRESS ANY KEY TO CONTINUE"
260 A$ = INKEY$: IF A$ = "" THEN 260
270 WIDTH 80
280 CLS
1000 KEY 8, "SOUND ": KEY 6, ":": KEY 5, "GOSUB ": DIM M(88), O(70): KEY 9, "WIDTH 80"
1010 POKE &H417, 64: CLS : RANDOMIZE VAL(MID$(TIME$, 7)): KEY 7, "TAB(": DEF SEG = 0
1020 SCREEN 0, 0, 0: WIDTH 80: POKE &H417, 64
1030 KEY OFF: GOSUB 1820
1040 PRINT " ********************** THIS IS THE GAME OF EL'GRINCH *************************"
1050 PRINT : PRINT
1060 PRINT TAB(27); "DO YOU NEED INSTRUCTIONS ?": PRINT
1070 PRINT TAB(24); "(TYPE `Y' FOR YES OR `N' FOR NO)"
1080 Z$ = INKEY$: IF Z$ = "" THEN 1080: CLS
1090 IF Z$ = "N" THEN 1340
1100 CLS : PRINT TAB(15); "The Grinch is a little insect sort of like a Beanbug. ": PRINT : GOSUB 2060
1110 PRINT TAB(29); "He makes a sound like this:": GOSUB 2080: GOSUB 1810
1120 PRINT : PRINT TAB(16); "He likes to hide in the bean field and eat all day.": GOSUB 2060
1130 CLS : SCREEN 1, 0: PRINT TAB(5); "THE BEAN FIELD LOOKS LIKE THIS:"
1140 PRINT
1150 FOR K = 9 TO 0 STEP -1
1160 PRINT TAB(4); K; TAB(8); "& & & & & & & & & &": PRINT
1170 NEXT
1180 PRINT TAB(8); "A B C D E F G H I J": GOSUB 2090
1190 GOSUB 1810
1200 CLS : PRINT TAB(4); "THIS IS WHAT A GRINCH BUG LOOKS LIKE:": GOSUB 1900
1210 LOCATE 10, 13: PRINT "FAST ISN'T HE ?"
1220 GOSUB 2060
1230 SCREEN 0, 0, 0: WIDTH 80
1240 PRINT TAB(2); "The object of the game is to discover which bean plant the Grinch is hiding in.": PRINT : PRINT
1250 PRINT TAB(2); "Each plant is identified by letter and number found along the fence rows.": PRINT : PRINT
1260 PRINT TAB(2); "Enter the location of the plant where you think the Grinch is, first by number,"
1270 PRINT TAB(2); "then by letter. Each time you select a number/letter pair, the bush you have": PRINT
1280 PRINT TAB(2); "selected will disappear. The Grinch becomes frightened and chirps. Since he": PRINT
1290 PRINT TAB(2); "is not as frightened when you are far away as when you are close, the farther": PRINT
1300 PRINT TAB(2); "away you are, the longer he chirps. You must locate him by SOUND ONLY !": PRINT : PRINT : PRINT
1310 PRINT TAB(13); "(REMEMBER THE CLOSER YOU AER THE SHORTER THE CHIRPS.)"
1320 COLOR 15, 0: PRINT : PRINT : PRINT TAB(25); "PRESS ANY KEY TO BEGIN PLAY."
1330 G$ = INKEY$: IF G$ = "" THEN 1330
1340 A = INT(10 * RND(1)): J = 0: RESTORE
1350 B = INT(10 * RND(A))
1360 IF A = 0 THEN 1340
1370 GOSUB 2080
1380 CLS : SCREEN 1, 0: FOR K = 9 TO 0 STEP -1
1390 PRINT TAB(4); K; TAB(8); "& & & & & & & & & &": PRINT
1400 NEXT
1410 PRINT TAB(8); "A B C D E F G H I J": GOSUB 2080
1420 LOCATE 22, 5: PRINT " ";
1430 LOCATE 23, 5: PRINT "WHICH PLANT IS THE GRINCH IN ? ";
1440 LOCATE 25, 5: PRINT "ENTER NUMBER: ";
1450 IF INKEY$ <> "" THEN 1450
1460 N$ = INKEY$: IF N$ = "" THEN 1460
1470 U = ASC(N$): IF U < 48 OR U > 57 THEN GOSUB 1790: 'THROWS AWAY NON-NUMBERS
1480 IF N$ = CHR$(32) THEN 1440
1490 Y = VAL(N$): LOCATE 25, 19: PRINT N$;
1500 LOCATE 25, 22: PRINT "ENTER LETTER:";
1510 IF INKEY$ <> "" THEN 1510
1520 A$ = INKEY$: IF A$ = "" THEN 1520
1530 V = ASC(A$): IF V < 64 OR V > 74 THEN GOSUB 1780: 'THROWS AWAY NON-LETTERS
1540 X = ASC(A$) - 64: LOCATE 25, 36: PRINT A$; : IF X < 1 OR X > 10 THEN 1500
1550 C = ((3 * X) + 5): R = (19 - (2 * Y)): LOCATE R, C: PRINT CHR$(32): 'REMOVES DOTS
1560 IF X < 1 OR X > 10 THEN 1500
1570 D = SQR(((ABS(X - A)) ^ 2) + ((ABS(Y - B)) ^ 2)): 'STRAIGHT LINE DISTANCE TO GRINCH
1580 D = INT(10 * D) / 10: ' ROUND OFF D
1590 IF D = 0 GOTO 2330
1600 GOSUB 1860
1610 J = J + 1: IF J > 6 THEN 1630
1620 GOSUB 2140: GOTO 1430
1630 LOCATE 23, 4: PRINT "WAN'T TO KNOW WHERE THE GRINCH IS?"; : BEEP: SOUND 1000, 10: GOSUB 2110
1640 LOCATE 25, 12: PRINT "(TYPE `Y' OR `N') ";
1650 H$ = INKEY$: IF H$ = "" THEN 1650
1660 IF H$ = "N" THEN 1700
1670 LOCATE 25, 10: PRINT "THE GRINCH WAS AT "; B; CHR$(A + 64); : GOSUB 2060
1680 GOSUB 1810
1690 GOTO 2260
1700 GOSUB 2100: LOCATE 23, 7: PRINT "WOULD YOU LIKE A LITTLE HINT ?"; : PLAY "CAF"
1710 LOCATE 25, 12: PRINT "(TYPE `Y' OR `N')";
1720 J$ = INKEY$: IF J$ = "" THEN 1720
1730 IF J$ = "N" THEN 1380
1740 GOSUB 2100
1750 LOCATE 23, 5: PRINT "THE GRINCH IS HIDIHG IN ROW "; B; "."; : GOSUB 1810
1760 LOCATE 25, 5: PRINT "NOW GO BACK THERE AND GET HIM!"; : GOSUB 2070
1770 J = 2: GOSUB 2130: GOTO 1430
1780 SOUND 40, 10: SOUND 32767, 10: A$ = CHR$(32): RETURN: 'SETS A$ TO A BLANK
1790 SOUND 40, 10: SOUND 32767, 10: N$ = CHR$(32): RETURN:
1800 STOP
1810 FOR P = 2000 TO 3000 STEP 100: SOUND P, .5: NEXT: SOUND 30000, 2: FOR Q = 2000 TO 3000 STEP 100: SOUND Q, .5: NEXT: RETURN:
1820 FOR S = 1 TO 5 STEP 1: REM 5 CHIRPS
1830 FOR O = 3000 TO 4000 STEP 1000: SOUND O, .5: NEXT: SOUND 30000, 2
1840 NEXT
1850 RETURN
1860 FOR S = 1 TO D STEP 1: ' AUTO CHIRP DISTANCE ROUTENE
1870 FOR T = 3000 TO 3000 STEP 1000: SOUND T, .5: NEXT: SOUND 30000, 2
1880 NEXT
1890 RETURN
1900 FOR A = 2 TO 40 STEP 1
1910 LOCATE 23, A - 1: PRINT " "
1920 LOCATE 23, A: PRINT "*"
1930 NEXT
1940 LOCATE 22, 40: PRINT " "
1950 RETURN
1960 O(0) = 0
1970 O(39) = 5: O(40) = 7: O(41) = 8: O(42) = 9
1980 O(43) = 10: O(44) = 11: O(45) = 13: O(46) = 14
1990 O(47) = 15: O(48) = 16: O(49) = 17: O(50) = 18
2000 O(51) = 19: O(52) = 21: O(53) = 22: O(54) = 23
2010 O(55) = 24: O(56) = 25: O(57) = 27: O(58) = 28
2020 O(59) = 29: O(60) = 30: O(61) = 31: O(62) = 32
2030 O(63) = 33: O(64) = 35: O(65) = 36: O(66) = 37
2040 O(67) = 38: O(68) = 39: O(69) = 40: O(70) = 42
2050 GOTO 2380
2060 FOR S = 1 TO 10: SOUND 30000, 5: NEXT: RETURN:
2070 FOR S = 1 TO 15: SOUND 30000, 5: NEXT: RETURN:
2080 FOR S = 1 TO 5: SOUND 30000, 5: NEXT: RETURN:
2090 FOR S = 1 TO 20: SOUND 30000, 5: NEXT: RETURN:
2100 FOR I = 1 TO 39: LOCATE 23, I: PRINT " "; : NEXT: ' ERASES LINES 23-25
2110 FOR I = 1 TO 39: LOCATE 24, I: PRINT " "; : NEXT
2120 FOR I = 1 TO 39: LOCATE 25, I: PRINT " "; : NEXT: RETURN
2130 FOR I = 1 TO 39: LOCATE 23, I: PRINT " "; : NEXT: ' ERASES LINES 23 & 25
2140 FOR I = 1 TO 39: LOCATE 25, I: PRINT " "; : NEXT: RETURN
2150 COLOR 31, 0: PRINT "COLOR 31,0": GOSUB 2060
2160 COLOR 15, 0: PRINT "COLOR 15,0": GOSUB 2060
2170 COLOR 0, 7: PRINT "COLOR 0,7": GOSUB 2060
2180 COLOR 15, 0
2190 DATA 52,2,57,2,0,2,52,2,57,2,0,2,52,2,57,6,0,4,52,2,57,2,59,2,57,2,56,4
2200 DATA 57,2,59,2,0,8,52,2,56,2,0,2,52,2,56,2,0,2,52,2,56,6,0,4,52,2
2210 DATA 56,2,57,2,56,2,54,4,56,2,57,2,0,6,64,2,63,2,64,2,61,2,60,2,61,2
2220 DATA 57,2,56,2,57,2,52,2,0,4,49,2,50,2,52,2,54,2,56,2,57,2,59,2,61,2
2230 DATA 62,2,59,2,0,4,62,2,61,2,62,2,59,2,58,2,59,2,56,2,55,2,56,2,52,2
2240 DATA 0,4,64,2,63,2,64,2,66,2,64,2,62,2,61,2,59,2,57,2
2250 DATA -1,-1
2260 CLS : PRINT TAB(7); "WOULD YOU LIKE TO PLAY AGAIN?": PRINT
2270 PRINT TAB(12); "(TYPE `Y' OR `N')"
2280 O$ = INKEY$: IF O$ = "" THEN 2280
2290 IF O$ = "Y" THEN 1340
2300 CLS : PRINT TAB(14); "SO LONG AMIGO !": GOSUB 1820
2310 GOSUB 2070
2320 CLS : STOP
2330 CLS : LOCATE 12, 12, 0: PRINT "CONGRATULATIONS!!"
2340 T = J + 1: PRINT : PRINT TAB(1); "You found the Grinch after only"; T; "tries."
2350 FOR I = 7 TO 88: M(I) = 30 * (2 ^ (1 / 12)) ^ (I - 6): NEXT
2360 FOR I = 0 TO 6: M(I) = 32767: NEXT
2370 CLS : GOTO 1960
2380 READ J, K: IF J = -1 THEN 2260
2390 POKE 106, 0: Q = O(J) - 5: R = INT((O(J)) / 3): IF J > 64 OR J < 39 THEN 2410
2400 LOCATE R, Q: PRINT CHR$(2): GOTO 2410
2410 SOUND M(J), K: IF J = 0 AND K = 1 THEN 2430
2420 SOUND 32767, 1
2430 IF J > 64 OR J < 39 THEN 2380
2440 LOCATE R, Q: PRINT CHR$(32): GOTO 2380
2450 GOTO 2380