5748100 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$ cat -n ai.bas
   1: DECLARE SUB SolveDAProb ()
   2: DECLARE SUB ReadKey (t$, chrs!)
   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: PRINT "Human>"; TAB(10);
  24: ReadKey Grt2$, 69
  25: Corr Grt2$
  26: Grt2$ = RTRIM$(Grt2$)
  27: Grt2$ = LTRIM$(Grt2$)
  28: CLOSE #1
  29: OPEN "Greets.ai" FOR INPUT AS #1
  30: DO UNTIL EOF(1)
  31: LINE INPUT #1, Mystr$
  32: IF Grt2$ = Mystr$ THEN g = 1
  33: LOOP
  34: CLOSE 1
  35: OPEN "NGreets.ai" FOR INPUT AS #1
  36: DO UNTIL EOF(1)
  37: LINE INPUT #1, Mystr$
  38: IF Grt2$ = Mystr$ THEN g = -1
  39: LOOP
  40: CLOSE 1
  41: OPEN "greet.ai" FOR APPEND AS #1
  42: 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
  43: GOTO 334
  44: 333 LOCATE 5, 1, 0: PRINT "IS2000>"; TAB(10); "Ok?"
  45: 334 PRINT "Human>"; TAB(10); : ReadKey m$, 69
  46: IF m$ = "TEACH" THEN TeachMSmthing
  47: IF m$ = "USE INFO" THEN SolveDAProb
  48: 
  49: SUB Corr (n$)
  50: IF n$ = " " THEN EXIT SUB
  51: IF n$ = "" THEN EXIT SUB
  52: 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)
  53: IF LEN(n$) > 1 THEN  ELSE EXIT SUB
  54: FOR qw% = 2 TO LEN(n$)
  55: 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)
  56: NEXT qw%
  57: END SUB
  58: 
  59: SUB Define (t$)
  60: DIM aii(0 TO LEN(t$)) AS STRING
  61: ab = 1
  62: bb% = 1
  63: FOR ab = 1 TO LEN(t$)
  64: t$ = LTRIM$(t$)
  65: t$ = RTRIM$(t$)
  66: t$ = t$ + " "
  67: DO UNTIL MID$(t$, ab, 1) = " "
  68: aii(bb%) = aii(bb%) + MID$(t$, ab, 1)
  69: ab = ab + 1
  70: LOOP
  71: bb% = bb% + 1
  72: NEXT ab
  73: FOR bba = 1 TO bb% - 1
  74: Upper a$
  75: c$ = aii(bba) + ":"
  76: OPEN "vocab.ai" FOR INPUT AS #2
  77: DO UNTIL b$ = c$
  78: IF EOF(2) THEN CLOSE 2: OPEN "vocab.ai" FOR INPUT AS #2
  79: LINE INPUT #2, b$
  80: LOOP
  81: LINE INPUT #2, meng$
  82: PRINT meng$
  83: CLOSE #2
  84: a$ = ""
  85: c$ = ""
  86: NEXT bba
  87: END SUB
  88: 
  89: SUB FindWrd (phr$, wrd$, fd)
  90: wrd$ = LTRIM$(RTRIM$(wrd$)): phr$ = LTRIM$(RTRIM$(phr$)): wrd$ = " " + wrd$ + " ": phr$ = " " + phr$ + " ": fd = 0
  91: 
  92: FOR q = 0 TO LEN(phr$) - LEN(wrd$) + 1
  93:     FOR w = 1 TO LEN(wrd$)
  94:         p$ = p$ + MID$(phr$, q + w, 1)
  95:     NEXT w
  96:     IF UCASE$(p$) = UCASE$(wrd$) THEN fd = q + 1: phr$ = LTRIM$(RTRIM$(phr$)): EXIT SUB
  97:     p$ = ""
  98: NEXT q
  99: END SUB
 100: 
 101: SUB ReadKey (t$, chrs)
 102: t$ = ""
 103: DO UNTIL i$ = CHR$(13) OR i$ = CHR$(27)
 104: 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
 105: i$ = INPUT$(1)
 106: IF (ASC(i$) > -1 AND ASC(i$) < 32) OR (ASC(i$) > 32 AND ASC(i$) < 48) THEN GOTO 60
 107: IF i$ = CHR$(13) OR i$ = CHR$(27) THEN GOTO 70
 108: IF ASC(i$) < 123 AND ASC(i$) > 96 THEN i$ = CHR$(ASC(i$) - 32): PRINT i$;  ELSE PRINT i$;
 109: t$ = t$ + i$
 110: IF LEN(t$) >= chrs THEN t$ = MID$(t$, 1, LEN(t$) - 1): LOCATE CSRLIN, POS(0) - 1: PRINT " "; : LOCATE CSRLIN, POS(0) - 1
 111: 60 LOOP
 112: 70 PRINT ""
 113: END SUB
 114: 
 115: SUB SolveDAProb
 116: ON ERROR GOTO 0
 117: OPEN "KNLDGE.IS2" FOR INPUT AS #2
 118: ln = 0
 119: DO UNTIL EOF(2)
 120: LINE INPUT #2, d$: ln = ln + 1
 121: LOOP
 122: CLOSE 2
 123: IF ln = 1 THEN g$ = "thing" ELSE g$ = "things"
 124: t$ = "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
 125: PRINT t$
 126: PRINT "ºI currently know"; ln; g$; TAB(LEN(t$)); "º"
 127: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
 128: PRINT "Enter Problem>"; : ReadKey m$, 70
 129: END SUB
 130: 
 131: SUB TeachMSmthing
 132: ON ERROR GOTO 0
 133: OPEN "KNLDGE.IS2" FOR INPUT AS #2
 134: ln = 0
 135: DO UNTIL EOF(2)
 136: LINE INPUT #2, d$: ln = ln + 1
 137: LOOP
 138: CLOSE 2
 139: IF ln = 1 THEN g$ = "thing" ELSE g$ = "things"
 140: t$ = "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
 141: PRINT t$
 142: PRINT "ºI currently know"; ln; g$; TAB(LEN(t$)); "º"
 143: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
 144: 'ReadKey
 145: END SUB
 146: 
 147: SUB Upper (n$)
 148: FOR qw% = 1 TO LEN(n$)
 149: 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)
 150: NEXT qw%
 151: END SUB
 152: 
5748101 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2000-05-09 20:59:27