1: DECLARE SUB SolveDAProb (qt$) 2: DECLARE SUB ReadKey (prm$, t$, chrs!, brd$) 3: DECLARE SUB TeachMSmthing () 4: DECLARE SUB Define (t$) 5: DECLARE SUB Corr (n$) 6: DECLARE SUB Upper (n$) 7: RANDOMIZE TIMER 8: lne = 0 9: CLS 10: OPEN "greet.ai" FOR INPUT AS #1 11: DO UNTIL EOF(1): lne = lne + 1: LINE INPUT #1, a$: LOOP: 12: CLOSE 1 13: OPEN "Greet.ai" FOR INPUT AS #1 14: le = CINT(RND * lne) 15: IF le = 0 THEN le = lne 16: FOR qw = 1 TO le 17: LINE INPUT #1, grt$ 18: NEXT qw 19: Corr grt$ 20: PRINT "IS2000 Inteligentce Simulator 2000" 21: PRINT STRING$(LEN("-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\"), 205) 22: PRINT "IS2000>"; TAB(10); grt$ 23: LOCATE 4, 1, 0 24: ReadKey "Human>", grt2$, 69, "Hello?" 25: FOR sl = 1 TO LEN(grt2$) 26: IF MID$(grt2$, sl, 1) = "A" OR MID$(grt2$, sl, 1) = "E" OR MID$(grt2$, sl, 1) = "O" OR MID$(grt2$, sl, 1) = "I" OR MID$(grt2$, sl, 1) = "U" OR MID$(grt2$, sl, 1) = "Y" THEN slybl = slybl + 1 27: NEXT sl 28: IF slybl = 0 THEN g = -1: GOTO 333 29: Corr grt2$ 30: grt2$ = RTRIM$(grt2$) 31: grt2$ = LTRIM$(grt2$) 32: CLOSE #1 33: OPEN "Greets.ai" FOR INPUT AS #1 34: DO UNTIL EOF(1) 35: LINE INPUT #1, Mystr$ 36: IF grt2$ = Mystr$ THEN g = 1 37: LOOP 38: CLOSE 1 39: OPEN "NGreets.ai" FOR INPUT AS #1 40: DO UNTIL EOF(1) 41: LINE INPUT #1, Mystr$ 42: IF grt2$ = Mystr$ THEN g = -1 43: LOOP 44: CLOSE 1 45: OPEN "greet.ai" FOR APPEND AS #1 46: 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 47: GOTO 334 48: 333 LOCATE CSRLIN, 1, 0: PRINT "IS2000>"; TAB(10); "Ok?" 49: 334 ReadKey "Human>", m$, 69, "Hello?" 50: IF m$ = "TEACH" THEN TeachMSmthing 51: IF INSTR(m$, ")") > 0 THEN SolveDAProb m$ 52: IF m$ = "USE INFO" THEN SolveDAProb "" 53: 54: SUB Corr (n$) 55: IF n$ = " " THEN EXIT SUB 56: IF n$ = "" THEN EXIT SUB 57: 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) 58: IF LEN(n$) > 1 THEN ELSE EXIT SUB 59: FOR qw% = 2 TO LEN(n$) 60: 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) 61: NEXT qw% 62: END SUB 63: 64: SUB Define (t$) 65: DIM aii(0 TO LEN(t$)) AS STRING 66: ab = 1 67: bb% = 1 68: FOR ab = 1 TO LEN(t$) 69: t$ = LTRIM$(t$) 70: t$ = RTRIM$(t$) 71: t$ = t$ + " " 72: DO UNTIL MID$(t$, ab, 1) = " " 73: aii(bb%) = aii(bb%) + MID$(t$, ab, 1) 74: ab = ab + 1 75: LOOP 76: bb% = bb% + 1 77: NEXT ab 78: FOR bba = 1 TO bb% - 1 79: Upper a$ 80: c$ = aii(bba) + ":" 81: OPEN "vocab.ai" FOR INPUT AS #2 82: DO UNTIL b$ = c$ 83: IF EOF(2) THEN CLOSE 2: OPEN "vocab.ai" FOR INPUT AS #2 84: LINE INPUT #2, b$ 85: LOOP 86: LINE INPUT #2, meng$ 87: PRINT meng$ 88: CLOSE #2 89: a$ = "" 90: c$ = "" 91: NEXT bba 92: END SUB 93: 94: SUB DelRepChars (t$) 95: IF LEN(t$) < 3 THEN EXIT SUB 96: FOR q = 3 TO LEN(t$) 97: c$ = MID$(t$, q - 2, 1) 98: b$ = MID$(t$, q - 1, 1) 99: a$ = MID$(t$, q, 1) 100: 'IF a$ = b$ AND b$ = c$ AND c$ = a$ THEN 101: NEXT q 102: END SUB 103: 104: SUB FindWrd (phr$, wrd$, fd) 105: 'wrd$ = LTRIM$(RTRIM$(wrd$)): phr$ = LTRIM$(RTRIM$(phr$)): wrd$ = " " + wrd$ + " ": phr$ = " " + phr$ + " ": fd = 0 106: 107: 'FOR q = 0 TO LEN(phr$) - LEN(wrd$) + 1 108: ' FOR w = 1 TO LEN(wrd$) 109: ' p$ = p$ + MID$(phr$, q + w, 1) 110: ' NEXT w 111: ' IF UCASE$(p$) = UCASE$(wrd$) THEN fd = q + 1: phr$ = LTRIM$(RTRIM$(phr$)): EXIT SUB 112: ' p$ = "" 113: 'NEXT q 114: END SUB 115: 116: SUB ReadKey (prm$, t$, chrs, brd$) 117: t$ = "" 118: PRINT prm$; TAB(10); 119: DO UNTIL i$ = CHR$(13) OR i$ = CHR$(27) 120: IF q = 10000 THEN IF POS(0) > 1 THEN PRINT : PRINT "IS2000>"; TAB(10); brd$: q = 0: PRINT prm$; TAB(10); : t$ = "" ELSE PRINT "IS2000>"; TAB(10); brd$: t$ = "": q = 0: PRINT prm$; TAB(10); : t$ = "" ELSE q = q + 1 121: 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 122: i$ = INKEY$ 123: IF i$ = "" THEN GOTO 60 124: q = 0 125: IF (ASC(i$) > -1 AND ASC(i$) < 32) THEN GOTO 60 126: IF i$ = CHR$(13) OR i$ = CHR$(27) THEN GOTO 70 127: IF ASC(i$) < 123 AND ASC(i$) > 96 THEN i$ = CHR$(ASC(i$) - 32): PRINT i$; ELSE PRINT i$; 128: t$ = t$ + i$ 129: IF LEN(t$) >= chrs THEN t$ = MID$(t$, 1, LEN(t$) - 1): LOCATE CSRLIN, POS(0) - 1: PRINT " "; : LOCATE CSRLIN, POS(0) - 1 130: 60 LOOP 131: 70 PRINT "" 132: END SUB 133: 134: SUB SolveDAProb (qt$) 135: IF qt$ = "" THEN ELSE m$ = qt$: GOTO 12 136: 'ON ERROR GOTO 0 137: OPEN "KNLDGE.IS2" FOR INPUT AS #2 138: ln = 0 139: DO UNTIL EOF(2) 140: LINE INPUT #2, d$: ln = ln + 1 141: LOOP 142: CLOSE 2 143: IF ln = 1 THEN a$ = "thing" ELSE a$ = "things" 144: t$ = "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" 145: PRINT t$ 146: PRINT "ºI currently know"; ln; a$; TAB(LEN(t$)); "º" 147: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" 148: ReadKey "Enter Problem>", m$, 70, "Are you here?" 149: 12 fst = INSTR(m$, "(") 150: snd = INSTR(m$, ")") 151: IF fst = 0 OR snd = 0 THEN PRINT "I don't know what to do.": EXIT SUB 152: impotnt = INSTR(snd, m$, " ") 153: IF impotnt = 0 THEN wdbd$ = MID$(m$, snd + 1, LEN(m$) - (snd + 1)): GOTO 2 154: wdbd$ = MID$(m$, snd + 1, impotnt - snd - 1) 155: 2 tt$ = UCASE$(MID$(m$, fst, snd - fst)) 156: OPEN "KNLDGE.IS2" FOR INPUT AS #2 157: DO 158: LINE INPUT #2, f$ 159: ff$ = MID$(f$, 1, LEN(tt$)) 160: IF UCASE$(ff$) = UCASE$(tt$) THEN GOTO 3 161: IF EOF(2) THEN PRINT "IS2000>"; TAB(10); "I don't know how to "; LCASE$(MID$(ff$, 2, LEN(ff$) - 1)): CLOSE 2: EXIT SUB 162: LOOP UNTIL UCASE$(ff$) = UCASE$(tt$) 163: 3 FOR s = 1 TO LEN(tt$) 164: IF MID$(tt$, s, 1) = "$" THEN w$ = wdbd$ 165: NEXT s 166: gw$ = MID$(f$, LEN(tt$) + 3, LEN(f$) - LEN(tt$) - 2) 167: els = INSTR(gw$, "|") 168: FOR sl = 1 TO LEN(wdbd$) 169: IF MID$(wdbd$, sl, 1) = "A" OR MID$(wdbd$, sl, 1) = "E" OR MID$(wdbd$, sl, 1) = "O" OR MID$(wdbd$, sl, 1) = "I" OR MID$(wdbd$, sl, 1) = "U" OR MID$(wdbd$, sl, 1) = "Y" THEN slybl = slybl + 1 170: NEXT sl 171: IF slybl = 0 THEN PRINT "IS2000>"; TAB(10); "Use REAL words please.": EXIT SUB 172: FOR s = 1 TO LEN(gw$) 173: IF MID$(gw$, s, 2) = "*1" THEN IF slybl < 3 THEN f = 3 ELSE s = els 174: IF MID$(gw$, s, 2) = "$" + CHR$(34) THEN lnt = INSTR(s + 2, gw$, CHR$(34)): g$ = g$ + wdbd$ + MID$(gw$, s + 2, (lnt - s) - 2) ' ELSE G$ = G$ + MID$(M$, S, 1) 175: IF MID$(gw$, s, 2) = CHR$(34) + "$" AND f = 0 THEN lnt = INSTR(els + 1, gw$, CHR$(34)): ss = INSTR(lnt + 1, gw$, CHR$(34)): g$ = g$ + MID$(gw$, lnt + 1, ss - lnt - 1) + wdbd$ 176: NEXT s 177: FOR d = 1 TO LEN(m$) 178: IF d = fst THEN m2$ = m2$ + g$: d = impotnt - 1 ELSE m2$ = m2$ + MID$(m$, d, 1) 179: NEXT d 180: PRINT m2$ 181: END SUB 182: 183: SUB TeachMSmthing 184: ON ERROR GOTO 0 185: OPEN "KNLDGE.IS2" FOR INPUT AS #2 186: ln = 0 187: DO UNTIL EOF(2) 188: LINE INPUT #2, d$: ln = ln + 1 189: LOOP 190: CLOSE 2 191: IF ln = 1 THEN g$ = "thing" ELSE g$ = "things" 192: t$ = "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" 193: PRINT t$ 194: PRINT "ºI currently know"; ln; g$; TAB(LEN(t$)); "º" 195: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" 196: 197: END SUB 198: 199: SUB Upper (n$) 200: FOR qw% = 1 TO LEN(n$) 201: 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) 202: NEXT qw% 203: END SUB 204: |