DECLARE SUB SolveDAProb () DECLARE SUB ReadKey (t$, chrs!) DECLARE SUB TeachMSmthing () DECLARE SUB Define (t$) DECLARE SUB Corr (n$) DECLARE SUB Upper (n$) RANDOMIZE TIMER lne = 0 CLS OPEN "greet.ai" FOR INPUT AS #1 DO UNTIL EOF(1): lne = lne + 1: LINE INPUT #1, a$: LOOP: CLOSE 1 OPEN "Greet.ai" FOR INPUT AS #1 le = CINT(RND * lne) IF le = 0 THEN le = lne FOR qw = 1 TO le LINE INPUT #1, Grt$ NEXT qw Corr Grt$ PRINT "IS2000 Inteligentce Simulator 2000" PRINT STRING$(LEN("----------------------------------"), 205) PRINT "IS2000>"; TAB(10); Grt$ LOCATE 4, 1, 0: PRINT "Human>"; TAB(10); ReadKey Grt2$, 69 Corr Grt2$ Grt2$ = RTRIM$(Grt2$) Grt2$ = LTRIM$(Grt2$) CLOSE #1 OPEN "Greets.ai" FOR INPUT AS #1 DO UNTIL EOF(1) LINE INPUT #1, Mystr$ IF Grt2$ = Mystr$ THEN g = 1 LOOP CLOSE 1 OPEN "NGreets.ai" FOR INPUT AS #1 DO UNTIL EOF(1) LINE INPUT #1, Mystr$ IF Grt2$ = Mystr$ THEN g = -1 LOOP CLOSE 1 OPEN "greet.ai" FOR APPEND AS #1 IF g = 1 THEN PRINT #1, Grt2$: CLOSE 1 ELSE IF g = -1 THEN GOTO 333 ELSE IF g = 0 THEN INPUT "Is that a greeting"; gt$: LOCATE 5, 1: PRINT " ": Upper gt$: IF gt$ = "Y" THEN CLOSE #1: OPEN "greets.ai" FOR APPEND AS #1: PRINT #1, Grt2$: CLOSE #1 ELSE CLOSE #1: OPEN "ngreets.ai" FOR APPEND AS #1: PRINT #1, Grt2$: LOCATE 5, 1: PRINT "IS2000>"; TAB(10); "Ok?": CLOSE #1 GOTO 334 333 LOCATE 5, 1, 0: PRINT "IS2000>"; TAB(10); "Ok?" 334 PRINT "Human>"; TAB(10); : ReadKey m$, 69 IF m$ = "TEACH" THEN TeachMSmthing IF m$ = "USE INFO" THEN SolveDAProb SUB Corr (n$) IF n$ = " " THEN EXIT SUB IF n$ = "" THEN EXIT SUB IF ASC(MID$(n$, 1, 1)) > 96 AND ASC(MID$(n$, 1, 1)) < 123 THEN MID$(n$, 1, 1) = CHR$(ASC(MID$(n$, 1, 1)) - 32) IF LEN(n$) > 1 THEN ELSE EXIT SUB FOR qw% = 2 TO LEN(n$) IF ASC(MID$(n$, qw%, 1)) > 64 AND ASC(MID$(n$, qw%, 1)) < 91 THEN MID$(n$, qw%, 1) = CHR$(ASC(MID$(n$, qw%, 1)) + 32) NEXT qw% END SUB SUB Define (t$) DIM aii(0 TO LEN(t$)) AS STRING ab = 1 bb% = 1 FOR ab = 1 TO LEN(t$) t$ = LTRIM$(t$) t$ = RTRIM$(t$) t$ = t$ + " " DO UNTIL MID$(t$, ab, 1) = " " aii(bb%) = aii(bb%) + MID$(t$, ab, 1) ab = ab + 1 LOOP bb% = bb% + 1 NEXT ab FOR bba = 1 TO bb% - 1 Upper a$ c$ = aii(bba) + ":" OPEN "vocab.ai" FOR INPUT AS #2 DO UNTIL b$ = c$ IF EOF(2) THEN CLOSE 2: OPEN "vocab.ai" FOR INPUT AS #2 LINE INPUT #2, b$ LOOP LINE INPUT #2, meng$ PRINT meng$ CLOSE #2 a$ = "" c$ = "" NEXT bba END SUB SUB FindWrd (phr$, wrd$, fd) wrd$ = LTRIM$(RTRIM$(wrd$)): phr$ = LTRIM$(RTRIM$(phr$)): wrd$ = " " + wrd$ + " ": phr$ = " " + phr$ + " ": fd = 0 FOR q = 0 TO LEN(phr$) - LEN(wrd$) + 1 FOR w = 1 TO LEN(wrd$) p$ = p$ + MID$(phr$, q + w, 1) NEXT w IF UCASE$(p$) = UCASE$(wrd$) THEN fd = q + 1: phr$ = LTRIM$(RTRIM$(phr$)): EXIT SUB p$ = "" NEXT q END SUB SUB ReadKey (t$, chrs) t$ = "" DO UNTIL i$ = CHR$(13) OR i$ = CHR$(27) IF i$ = CHR$(8) THEN IF LEN(t$) = 0 THEN i$ = "": GOTO 60 ELSE t$ = MID$(t$, 1, LEN(t$) - 1): LOCATE CSRLIN, POS(0) - 1: PRINT " "; : LOCATE CSRLIN, POS(0) - 1 i$ = INPUT$(1) IF (ASC(i$) > -1 AND ASC(i$) < 32) OR (ASC(i$) > 32 AND ASC(i$) < 48) THEN GOTO 60 IF i$ = CHR$(13) OR i$ = CHR$(27) THEN GOTO 70 IF ASC(i$) < 123 AND ASC(i$) > 96 THEN i$ = CHR$(ASC(i$) - 32): PRINT i$; ELSE PRINT i$; t$ = t$ + i$ IF LEN(t$) >= chrs THEN t$ = MID$(t$, 1, LEN(t$) - 1): LOCATE CSRLIN, POS(0) - 1: PRINT " "; : LOCATE CSRLIN, POS(0) - 1 60 LOOP 70 PRINT "" END SUB SUB SolveDAProb ON ERROR GOTO 0 OPEN "KNLDGE.IS2" FOR INPUT AS #2 ln = 0 DO UNTIL EOF(2) LINE INPUT #2, d$: ln = ln + 1 LOOP CLOSE 2 IF ln = 1 THEN g$ = "thing" ELSE g$ = "things" t$ = "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" PRINT t$ PRINT "ºI currently know"; ln; g$; TAB(LEN(t$)); "º" PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" PRINT "Enter Problem>"; : ReadKey m$, 70 END SUB SUB TeachMSmthing ON ERROR GOTO 0 OPEN "KNLDGE.IS2" FOR INPUT AS #2 ln = 0 DO UNTIL EOF(2) LINE INPUT #2, d$: ln = ln + 1 LOOP CLOSE 2 IF ln = 1 THEN g$ = "thing" ELSE g$ = "things" t$ = "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" PRINT t$ PRINT "ºI currently know"; ln; g$; TAB(LEN(t$)); "º" PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" 'ReadKey END SUB SUB Upper (n$) FOR qw% = 1 TO LEN(n$) IF ASC(MID$(n$, qw%, 1)) > 96 AND ASC(MID$(n$, qw%, 1)) < 123 THEN MID$(n$, qw%, 1) = CHR$(ASC(MID$(n$, qw%, 1)) - 32) NEXT qw% END SUB