This is a chatbot written in Python, it is fairly simple, but is good enough, it might lag...
import random
say='Hi! I\'m an chatbot, called Medice, written in 50 lines! Enjoy!\n'
saylist=[]
try:
savefile=open('savebot.txt','r')
except:
savefile=open('savebot.txt','w')
savefile.write('hello'+'\n')
savefile.write('\n')
savefile.close()
savefile=open('savebot.txt','r')
while True:
readl=savefile.readline()
if readl=='\n':
break
saylist.append(readl)
savefile.close()
def s(word):
saylist.append(word+'\n')
savefile=open('savebot.txt','w')
for i in range(0,len(saylist),1):
savefile.write(saylist[i])
savefile.write('\n')
lastspace=0
words=[]
availible=[]
word=word+' '
for num,i in enumerate(word):
if i == ' ':
words.append(word[lastspace:num])
lastspace=num
for i in saylist:
i=i.replace('\n','')+' \n'
lastspace=0
words2=[]
for num,j in enumerate(i):
if j == ' ':
words2.append(i[lastspace:num])
lastspace=num
for j in words2:
if j.replace('\n','') in words:
if not j.replace('\n','') == word:
availible.append(i)
print(availible)
if availible == []:
return random.choice(saylist)
else:
return random.choice(availible)
while True:
say=s(input(say))
#should add matching for ?,. also find most matched phrasae, also dont let the bot repeat whatever was said in the first time it was said
Also, I realized that using less than 100 lines is easy with min.js .