home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1980-08-03 | 2.1 KB | 100 lines |
- 20
- Rem ** Vocabulary Builder Program **
- Rem ** By Josh Hale **
- Dim VERBS$(100)
- Dim NOUNS$(100)
- Dim ADJECTIVES$(100)
- Dim WORDL(50)
- Dim CHECKLIST(50)
- On Error Goto 20
- SPACES$=" "
- VERB$="ING"
- ADJECTIVE$="LY"
- VPOS=0
- NPOS=0
- APOS=0
- Curs Off
- Flash Off
- Hide On
- Palette $0,$0,$F00,$FFF,$F0,$F
- Cls
- Wind Open 1,0,16,37,23,1
- Curs Off
- Pen 3
- Print "Welcome to CAVL V1.0"
- 1 Pen 4
- Curs Off
- Input "> ";WRIT$
- HUMAN$=" "
- HUMAN$=HUMAN$+WRIT$
- HUMAN$=Upper$(HUMAN$)
- WORDS=-1
- WORDP=1
- VERBP=1
- ADJECTIVEP=1
- For A=0 To 50
- WORDL(A)=0
- Next A
- WORDLPOS=0
- 2
- WORDC=Instr(HUMAN$,SPACES$,WORDP)
- WORDP=WORDC+1
- WORDS=WORDS+1
- If WORDC=0 Then Goto 3
- WORDL(WORDLPOS)=WORDC
- WORDLPOS=WORDLPOS+1
- Goto 2
- 3
- A=WORDL(WORDS-1)
- WORDL(WORDS)=Len(HUMAN$)+1
- WORDL(WORDS+1)=A
- 4
- Rem **check for verbs**
- For A=0 To 50
- CHECKLIST(A)=0
- Next A
- For A=0 To WORDS-1
- BLOB=Instr(HUMAN$,VERB$,WORDL(A))
- If BLOB<>0 and BLOB<WORDL(A+1) Then CHECKLIST(A)=1
- Next A
- For A=0 To WORDS-1
- AFIRM=0
- If CHECKLIST(A)=1 Then VERBIN$=Mid$(HUMAN$,WORDL(A),WORDL(A+1)-WORDL(A)) : AFIRM=1
- If AFIRM=1 Then VERBS$(VPOS)=VERBIN$ : VPOS=VPOS+1
- If VPOS>98 Then VPOS=98
- Next A
- Rem **check for adjectives**
- For A=0 To WORDS-1
- BLOB=Instr(HUMAN$,ADJECTIVE$,WORDL(A))
- If BLOB<>0 and BLOB<WORDL(A+1) Then CHECKLIST(A)=2
- Next A
- For A=0 To WORDS-1
- AFIRM=0
- If CHECKLIST(A)=2 Then ADIN$=Mid$(HUMAN$,WORDL(A),WORDL(A+1)-WORDL(A)) : AFIRM=1
- If AFIRM=1 Then ADJECTIVES$(APOS)=ADIN$ : APOS=APOS+1
- If APOS>98 Then APOS=98
- Next A
- Rem **put the rest into the noun pile**
- For A=0 To WORDS-1
- AFIRM=0
- If CHECKLIST(A)=0 Then NOIN$=Mid$(HUMAN$,WORDL(A),WORDL(A+1)-WORDL(A)) : AFIRM=1
- If AFIRM=1 Then NOUNS$(NPOS)=NOIN$ : NPOS=NPOS+1
- If NPOS>98 Then NPOS=98
- Next A
- Rem **NOW FOR THE COMPUTED RESPONSE**
- A=Rnd(100)
- If A<90 Then RESPONSE$=NOUNS$(Rnd(NPOS))
- If A>90 and A<95 Then RESPONSE$=VERBS$(Rnd(VPOS)) Else RESPONSE$=ADJECTIVES$(Rnd(APOS))
- For A=0 To Rnd(15)
- B=Rnd(100)
- If B<40 Then RESPONSE$=RESPONSE$+NOUNS$(Rnd(NPOS))
- If B>40 and B<90 Then RESPONSE$=RESPONSE$+VERBS$(Rnd(VPOS)) Else RESPONSE$=RESPONSE$+ADJECTIVES$(Rnd(APOS))
- Next A
- Locate 0,4
- Pen 2
- Print RESPONSE$
- Curs Off
- Wait Key
- Clw
- Goto 1
- End