1 ' Haiku Ver. 1.2 2 rem clear 200 3 ' 10 ' supervisor 11 screen 1,4 20 GOSUB 120 30 GOTO 50 40 GOSUB 200 50 GOSUB 260 60 IF RAN = 1 THEN GOSUB 450 70 IF RAN = 2 THEN GOSUB 670 80 IF RAN = 3 THEN GOSUB 890 90 IF RAN = 4 THEN GOSUB 1110 100 GOTO 40 120 ' initialization 125 scnclr: print "I'm thinking....." 130 RANDOMIZE 140 ARTNMB = 4 150 ADJNMB = 50 160 NOUNNMB = 50 170 VERBNMB = 14 180 PREPNMB = 6 190 RETURN 195 ' 200 ' input 210 LIN$ = "" 220 RESTORE 221 for timer%=1 to 10000: next timer%:scnclr:goto 245 225 print at(25,22);"
rint - top"
230 GETKEY A$
240 IF A$="P" OR A$="p" THEN GOSUB 1350
242 if a$="S" or A$="s" THEN STOP ELSE SCNCLR
245 PRINT "I'm thinking....."
250 RETURN
260 ' determine pattern
270 RAN = INT(RND*5)
272 IF RAN<1 THEN 270
275 PRINT "Form ";RAN
280 RETURN
300 ' check articles
305 FOR I = 1 TO LEN(LIN$) - 2
310 IF MID$(LIN$,I,3)=" A " THEN B$=MID$(LIN$,I+3,1): IF B$="A" OR B$="E" OR B$="I" OR B$="O" OR B$="U" THEN LIN$=LEFT$(LIN$,I+1)+"N"+MID$(LIN$,I+2)
320 NEXT I
330 FOR I = 1 TO LEN(LIN$)-2
340 IF MID$(LIN$,I,4)=" AN " THEN B$=MID$(LIN$,I+4,1): IF B$="A" OR B$="E" OR B$="I" OR B$= "O" OR B$="U" THEN 350 ELSE LIN$=LEFT$(LIN$,I+1)+MID$(LIN$,I+3)
350 NEXT I
360 RETURN
380 ' SELECT WORDS
385 RAN=INT(RND*N+1)+P
387 IF RAN>124 THEN 385
390 FOR I=1 TO RAN
400 READ WRD$
410 NEXT I
420 LIN$=LIN$+ " "+ WRD$
430 RESTORE
440 RETURN
450 ' first pattern
460 N=ARTNMB:P=0:GOSUB 380
470 N=ADJNMB: P=ARTNMB: GOSUB 380
480 N=NOUNNMB: P=ARTNMB + ADJNMB: GOSUB 380
490 GOSUB 300
500 LIN$= LIN$ + "..."
510 PRINT AT (23,13); LIN$
515 LIN1$=LIN$
520 LIN$=""
530 N = ARTNMB: P=0: GOSUB 380
540 N=NOUNNMB: P=ARTNMB+ADJNMB:GOSUB 380
550 N=VERBNMB:P=ARTNMB+ADJNMB+NOUNNMB: GOSUB 380
560 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB: GOSUB 380
570 N=ARTNMB: P=0: GOSUB 380
580 N=NOUNNMB: P=ARTNMB+ADJNMB:GOSUB 380
590 GOSUB 300
599 REM CHANGED UP TO THIS POINT
600 PRINT AT (26,14); LIN$
605 LIN2$=LIN$
610 LIN$=""
620 N=ADJNMB:P=ARTNMB: GOSUB 380
630 GOSUB 380
640 N=NOUNNMB:P=ARTNMB+ADJNMB: GOSUB 380
650 PRINT AT (29,15); LIN$
655 LIN3$=LIN$
660 RETURN
670 ' second pattern
680 N= NOUNNMB:P=ARTNMB+ADJNMB: GOSUB 380
690 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB: GOSUB 380
700 N=ARTNMB:P=0: GOSUB 380
710 N=NOUNNMB:P=ARTNMB+ADJNMB: GOSUB 380
720 GOSUB 300
730 LIN$=LIN$+";"
740 PRINT AT (23,13); LIN$
745 LIN1$=LIN$
750 LIN$ = ""
760 N=ARTNMB:P=0:GOSUB 380
770 N=ADJNMB:P=ARTNMB: GOSUB 380
780 N=NOUNNMB:P=ARTNMB+ADJNMB: GOSUB 380
790 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB: GOSUB 380
800 N=ARTNMB:P=O: GOSUB 380
810 N=NOUNNMB: P=ARTNMB+ADJNMB: GOSUB 380
820 GOSUB 300
830 PRINT AT (26,14); LIN$
835 LIN2$=LIN$
840 LIN$=""
850 N=ADJNMB:P=0:GOSUB 380
860 N=NOUNNMB:P=ARTNMB+ADJNMB: GOSUB 380
870 PRINT AT (29,15); LIN$
875 LIN3$=LIN$
880 RETURN
890 ' third pattern
900 N=ARTNMB:P=0:GOSUB 380
910 N=ADJNMB:P=ARTNMB: GOSUB 380
920 GOSUB 380
930 N=NOUNNMB:P=ARTNMB+ADJNMB: GOSUB 380
940 GOSUB 300
950 LIN$=LIN$+";"
960 PRINT AT (23,13); LIN$
965 LIN1$=LIN$
970 LIN$=""
980 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB: GOSUB 380
990 N=ARTNMB:P=0: GOSUB 380
1000 N=ADJNMB:P=ARTNMB: GOSUB 380
1010 N=NOUNNMB: P=ARTNMB+ADJNMB: GOSUB 380
1020 GOSUB 300
1030 PRINT AT (26,14); LIN$
1035 LIN2$=LIN$
1040 LIN$=""
1050 N= ARTNMB:P=0: GOSUB 380
1060 N= NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 380
1070 N=VERBNMB:P=ARTNMB+ADJNMB+NOUNNMB: GOSUB 380
1080 GOSUB 300
1090 PRINT AT (29,15); LIN$
1095 LIN3$=LIN$
1100 RETURN
1110 ' fourth pattern
1120 N=ARTNMB:P=O: GOSUB 380
1130 N=ADJNMB:P=ARTNMB: GOSUB 380
1140 N=NOUNNMB:P=ARTNMB+ADJNMB: GOSUB 380
1150 N=VERBNMB:P=ARTNMB+ADJNMB+NOUNNMB: GOSUB 380
1160 GOSUB 300
1170 LIN$=LIN$+";"
1180 PRINT AT (23,13); LIN$
1185 LIN1$=LIN$
1190 LIN$=""
1200 N=ARTNMB:P=O: GOSUB 380
1210 N= ADJNMB:P=ARTNMB: GOSUB 380
1220 GOSUB 380
1230 N=NOUNNMB: P=ARTNMB+ADJNMB: GOSUB 380
1240 GOSUB 300
1250 PRINT AT (26,14); LIN$
1255 LIN2$=LIN$
1260 LIN$=""
1270 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB:GOSUB 380
1280 N=ARTNMB:P=0: GOSUB 380
1290 N=ADJNMB: P=ARTNMB: GOSUB 380
1300 N=NOUNNMB: P=ARTNMB+ADJNMB: GOSUB 380
1310 GOSUB 300
1320 PRINT AT (29,15); LIN$
1325 LIN3$=LIN$
1330 RETURN
1350 REM LPRINT STATEMENTS
2000 ' vocabulary
2010 ' articles
2020 DATA A,THE,AN,THE
2030 ' adjectives
2040 DATA HIDDEN,BITTER,MISTY,SILENT,EMPTY
2050 DATA DRY,DARK,ICY,DELICATE,QUIET
2060 DATA WHITE,COOL,DAPPLED
2070 DATA TWILIGHT,DAWN,CRIMSON,WISPY,AZURE
2080 DATA BLUE,BILLOWING,BROKEN,COLD,DAMP,FALLING
2090 DATA FROSTY,GREEN,LONG,LATE,LINGERING,LIMPID
2100 DATA LITTLE,MORNING,MUDDY,OLD,RED,ROUGH
2110 DATA STILL,SMALL,SPARKLING,GLOWING,VERMILLION
2120 DATA WANDERING,WITHERED,WILD,BLACK,YOUNG
2125 DATA AUTUMN,WINTER,SPRING,SUMMER
2130 ' nouns
2140 DATA WATERFALL,RIVER,BREEZE,MOON
2150 DATA RAIN,WIND,SEA,MORNING,SNOW,LAKE,SUNSET
2160 DATA PINE,SHADOW,LEAF,DAWN,GLITTER,FOREST
2170 DATA HILL,CLOUD,MEADOW,SUN,GLADE,BIRD,BROOK
2180 DATA BUTTERFLY,BUSH,DEW,MIST,FIELD,EVERGREEN
2190 DATA FLOWER,FIREFLY,FEATHER,GRASS,HAZE,MOUNTAIN
2200 DATA NIGHT,POND,SHADE,SNOWFLAKE
2210 DATA SILENCE,SOUND,SKY,SHAPE,SURF,THUNDER
2220 DATA VIOLET,WATER,WILDFLOWER,WAVE
2230 ' verbs
2240 DATA MOVES,DRIFTS,HAS STOPPED,STRUGGLES
2250 DATA HAS FALLEN,HAS PASSED,SLEEPS,CRIES
2260 DATA FLUTTERS, HAS RISEN, IS FALLING, IS TRICKLING
2270 DATA MURMURS,IS FLOATING
2280 ' prepositions
2290 DATA ON,IN,OF,UNDER,OVER,NEAR,end