Здравствуйте, гость ( Вход | Восстановить аккаунт )
11.6.2010, 19:50
Сообщение
#1
|
|
|
Новенький ![]() Группа: Пользователи Сообщений: 5 Регистрация: 11.6.2010 Пользователь №: 900713 |
Помогите разобрать программный код программы Искусственный интеллект, время очень поджимает.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, XPMan; type TForm1 = class(TForm) GroupBox1: TGroupBox; Memo1: TMemo; GroupBox2: TGroupBox; Edit1: TEdit; XPManifest1: TXPManifest; procedure FormCreate(Sender: TObject); procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; type TKeyWord = record key,answer : string; end; const AnswersCount = 310; var GeneratedFraza : string=''; Answers : array [1..AnswersCount] of TKeyWord; Dialog : array [1..20] of string; Hi : array [1..7] of string; Form1: TForm1; implementation {$R *.dfm} function FindAnswer(text : string) : boolean; var i,count : integer; ans : array [0..10] of integer; begin count:=0; for i:=1 to AnswersCount do begin if Answers[i].key=text then begin ans[count]:=i; inc(count); end; end; if count<>0 then begin randomize; result:=true; GeneratedFraza:='Кибер разум: '+Answers[ans[random(count)]].answer; end else result:=false; end; procedure LetAnswer(text : string); var i,found : integer; slovo : string; probel : boolean; begin slovo :=''; probel:=false; found:=0; for i:=1 to length(text) do begin if text[i]=' ' then probel:=true; if not probel then begin slovo:=slovo+text[i]; if findanswer(lowercase(slovo)) then inc(found); end else begin slovo:=''; probel:=false; end; end; if found=0 then form1.Memo1.Lines.Add('Кибер разум: '+dialog[random(20)+1]) else form1.Memo1.Lines.Add(GeneratedFraza); end; procedure TForm1.FormCreate(Sender: TObject); var s : Tstringlist; i,a : integer; f : string; done : boolean; begin if not fileexists(ExtractFilepath(Application.ExeName)+'Mozgi.brain') then begin Showmessage('Ôàéë ñ ìîçãàìè "Mozgi.brain" íå áûë íàéäåí, áåç íåãî ïðîãà ðàáîòàòü íå áóäåò.'); Close; end; s:=Tstringlist.Create; s.LoadFromFile(ExtractFilepath(Application.ExeName)+'Mozgi.brain'); for i:=1 to AnswersCount do begin f:=lowercase(s.Strings[i-1]); answers[i].key:=''; answers[i].answer:=s.ValueFromIndex[i-1]; done:=false; for a:=1 to length(f) do begin if f[a]='=' then done:=true; if not done then Answers[i].key:=Answers[i].key+f[a]; end; end; for i:=1 to 20 do dialog[i]:=s.ValueFromIndex[i+AnswersCount]; for i:=1 to 7 do hi[i]:=s.ValueFromIndex[i+AnswersCount+21]; randomize; memo1.Lines.Add('Êèáåð ðàçóì: '+hi[1+random(7)]); end; procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key=vk_return) and (Edit1.Text<>'') then begin Memo1.Lines.Add('Þçåð: '+Edit1.Text); LetAnswer(lowercase(Edit1.Text)); Edit1.Text:=''; end; end; end. cyberbrain.rar |
|
|
|
samfisher Помогите разобраться в коде 11.6.2010, 19:50
Mirima Что значит "разобрать"? Что конкретно ну... 12.6.2010, 7:33
samfisher (Mirima @ 12.6.2010, 7:33) Что значит ... 12.6.2010, 8:55
Пикачу Оффтоп, млин, но не удержался...
И потом такие ... 13.6.2010, 0:34
samfisher (Пикачу @ 13.6.2010, 0:34) Оффтоп, млин, ... 13.6.2010, 0:36
pr0_zu (samfisher @ 13.6.2010, 1:36) спасибо теб... 13.6.2010, 1:19
samfisher ну так по теме будет че нибудь?И у меня выбора не ... 13.6.2010, 1:57
ЗеЛеноЕ КоПыТо http://www.programmersforum.ru/forumdisplay.ph... 13.6.2010, 14:30
pr0_zu Тыц зайди сюда и попроси совет, только не надо пис... 13.6.2010, 18:02
Akapel Напиши контакты в личку помогу. 15.6.2010, 15:27
TiLL сам помощи просишь, да еще огрызаешся со всеми и ... 15.6.2010, 15:32
Хищный Мышь обалдеть самый тупой чат-бот которого я видел
Ос... 8.7.2010, 16:46
samfisher закрывайте тему. 15.8.2010, 12:28![]() ![]() ![]() |
| Сейчас: 12.11.2026, 5:00 |