Для начала как будет работать наша программа? Есть два варианта.Либо программа будет понимать то что я сказал, и разумно отвечать, либо программа будет эмулировать то что она говорит думая.Я решил использовать второй вариант, поскольку создать настоящий ИИ мне кажется не самым легким делом.
Наша программа будет искать в нашем ответе ключевые слова, судя по которым она будет решать что ей отвечать.Переменная notvet-наш ответ otvet-ответ программы.Ищем слово привет в переменной notvet, если что то нашли, то пишем ответ.
uses crt;
VAR notvet,otvet:string;
VAR r,s:integer;
LABEL 1;
begin
1:s:=0;
r:=random(5);
readln(notvet);
if pos('привет',notvet) >0 then begin writeln('Привет, как дела?'); s:=s+1; end;
if pos('хорошо',notvet) >0 then begin writeln('Что тут хорошо?'); s:=s+1; end;
if pos('ничего',notvet) >0 then begin writeln('Чего ничего?');s:=s+1; end;
if pos('всего',notvet) >0 then begin writeln('ты уверен?');s:=s+1; end;
if pos('жизнь',notvet) >0 then begin writeln('почему все люди считают себя умнее комьпютеров?');s:=s+1; end;
{ДОПОЛНЯЕМ БАЗУ} {ДОПОЛНЯЕМ БАЗУ} {ДОПОЛНЯЕМ БАЗУ}
{ДОПОЛНЯЕМ БАЗУ} {ДОПОЛНЯЕМ БАЗУ} {ДОПОЛНЯЕМ БАЗУ}
{ДОПОЛНЯЕМ БАЗУ} {ДОПОЛНЯЕМ БАЗУ} {ДОПОЛНЯЕМ БАЗУ}
if pos('хорошо',notvet) >0 then begin writeln('Что тут хорошо?');s:=s+1; end;
if pos('ничего',notvet) >0 then begin writeln('Чего ничего?');s:=s+1; end;
if pos('да',notvet) >0 then begin writeln('А я нет');s:=s+1; end;
if pos('почему?',notvet) >0 then begin writeln('Не знаю');s:=s+1; end;
if pos('нет',notvet) >0 then begin writeln('Чего нет?');s:=s+1; end;
if pos('нормально',notvet) >0 then begin writeln('У меня то же');s:=s+1; end;
if s< 1 then begin {Если компьютер не ответил то выбираем произвольный ответ из базы}
if r=0 then writeln('Тебе так нравится говорить со мной?');
if r=1 then writeln('Жизнь коротка, а ты сидишь и болтаешь с компьютером');
if r=2 then writeln('Говори по русски, я плохо слышу');
if r=3 then writeln('Не надоело?');
if r=4 then writeln('Не мешай мне думать');
end;
GOTO 1;
end.Если программа не увидит знакомых слов (s< 1), то она ответит произвольный ответ.
Вот пример диалога с этой программой.
Я:привет
Программа:привет как дела?
Я:нормально, а как у тебя?
Программа:У меня то же
Я:а почему?
Программа:не знаю
Я:а я знаю
Программа:Тебе так нравится говорить со мной?
Ну вот получилась маленькая программа которая умеет говорить.В программе есть некоторые баги, которые я возможно исправлю в будущем.
© Bocharyk




