Back to Main page.
Back to Main tapes page.
1000 REM:BY BILL MCFADDEN OF BENSON
1010 REM:COMPLETED 5-24-77
1020 REM:ALL RIGHTS RESERVED
1030 REM:MADLIB, A WORD INSERTION GAME
1040 DIM X$[255],Y$[72],X[30,60]
1050 MAT X=ZER
1060 FILES MAD1.B904
1070 ENTER 1,A,Y$
1080 IF A>0 THEN 1140
1090 PRINT "This is the game of Madlib. You will be asked to type in"
1100PRINT "words which will be inserted by the computer into one"
1110 PRINT "or more humerous stories."
1120 PRINT '10"Be sureyou remember to hit the 'RETURN' key after each"
1125 PRINT "word."
1130 REM:INPUT WORDS
1140 PRINT '10"Type in ten adjectives (e.g. blue, tall, crazy, etc.)."
1150 Z=0
1160 FOR X=1 TO 10
1170 GOSUB 1930
1180 NEXT X
1190 PRINT '10"Good. Now I need ten nouns (e.g. book,telephone, etc.)."
1191 PRINT "Make sure you type them in their singular form"
1192 PRINT"(e.g. instead of 'KNIVES' you would want to type 'KNIFE')."
1200 FOR X=1 TO 10
1210 GOSUB 1930
1220 NEXT X
1230 PRINT '10"Thank you for your patience. Next, type three adverbs"
1240 PRINT "(e.g. slowly, quickly, etc.)."
1250 GOSUB 1930
1260 GOSUB 1930
1270 GOSUB 1930
1280 PRINT "A girl's first name ";
1290 GOSUB 1930
1300 PRINT "A liquid ";
1310 GOSUB 1930
1320 PRINT "Someone's last name ";
1330 GOSUB 1930
1340 PRINT "An exclamatory phrase (e.g. 'Wow!', 'Far out!', etc.)"
1350 GOSUB 1930
1360 PRINT "A boy's first name ";
1370 GOSUB 1930
1380 PRINT "A geographical location (e.g. Portland, Africa, etc.)"
1390 GOSUB 1930
1400 PRINT "A number ";
1410 INPUT X
1420 CONVERT X TO X$
1430 GOSUB 1940
1440 REM:CHOOSE MADLIB
1450 PRINT '10"Now the fun begins. Choose the 'Madlib' you would like."
1460 REM
1470 PRINT " (1) Newspaper ad"'13'10" (2) Western"'13'10" (3) Army ad"
1480 PRINT " (4) Shark story"'13'10" (5) Allgoo face cream"
1490 PRINT " (6) Waterbed complaint"
1500 REM:READ 'MAD' FILE
1510 PRINT '10"Type in the number of the 'Madlib' you would like: ";
1520 LINPUT Y$
1530 IF Y$="" THEN 1460
1540 CONVERT Y$ TO A,1460
1550 IF A<0 OR A>6 OR INT(A)#A THEN 1460
1560 B=A
1570 IF A THEN 1600
1580 PRINT "----- BLOCK MODE -----"'13'10"Start, stop";
1590 INPUT A,B
1600 IF END #1 THEN 1510
1610 PRINT LIN(-10)
1620 FOR D=A TO B
1630 C=D*2-1
1640 READ #1,C
1650 GOTO TYP(-1)-1 OF 1800,2020,1880
1660 REM:READ NO. AND PRINT CORRESPONDING STRING
1670 READ #1;Z
1680 IF Z THEN 1710
1690 PRINT ". ";
1700 GOTO 1650
1710 X$=""
1720 FOR X=1 TO 60
1730 IF X[Z,X]=0 THEN 1760
1740 X$[X,X]=CHR$(X[Z,X])
1750 NEXT X
1760 IF Z#27 THEN 1780
1770 X$[LEN(X$)+1]="!"
1780 PRINT " ";X$;
1790 GOTO 1650
1800 REM:READ STORY AND PRINT
1805 READ #1;Y$
1810 X=POS("'S",Y$[1,1])
1815 IF X AND LEN(Y$)<4 THEN 1825
1820 PRINT " ";
1825 Q=1
1830 Q1=Q+POS(Y$[Q]," ")-1
1835 IF Q1=Q-1 THEN 1855
1840 PRINT Y$[Q,Q1];
1845 Q=Q1+1
1850 GOTO 1830
1855 PRINT Y$[Q];
1860 GOTO 1650
1870 REM:NEXT RECORD
1880 C=C+1
1890 IF C=D*2+1 THEN 2020
1900 GOTO 1640
1910 REM:INPUTWORD
1920 PRINT "SORRY, THAT'S TOO LONG...PLEASE SHORTEN IT."
1930 INPUT X$
1940 IF LEN(X$)>60 THEN 1920
1950 X$=UPS$(X$)
1960 Z=Z+1
1970 FOR C=1 TO LEN(X$)
1980 X[Z,C]=NUM(X$[C,C])
1990 NEXT C
2000 RETURN
2010 REM:AGAIN?
2020 PRINT LIN(-10)
2030 NEXT D
2040 GOSUB 100
2050 PRINT "WOULD YOU LIKE TO USE THE SAME WORDS"
2060 PRINT "IN A DIFFERENT STORY ";
2070 LINPUT Y$
2080 IF Y$[1,1]="Y" THEN 1510
2090 GOTO 130
2100 END