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