Здравствуйте, гость ( Вход | Восстановить аккаунт )
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 |
|
|
|
![]() |
12.6.2010, 7:33
Сообщение
#2
|
|
![]() Гуру ![]() ![]() ![]() Группа: Пользователи Сообщений: 937 Регистрация: 1.11.2005 Из: 1 134 Пользователь №: 767 |
Что значит "разобрать"? Что конкретно нужно-то?
-------------------- у айтишника прежде всего должно быть развито два основных навыка: знание английского и умение гуглить (с) башорг
|
|
|
|
12.6.2010, 8:55
Сообщение
#3
|
|
|
Новенький ![]() Группа: Пользователи Сообщений: 5 Регистрация: 11.6.2010 Пользователь №: 900713 |
Что значит "разобрать"? Что конкретно нужно-то? разобраться в коде, понять что выполняет та или иная функция и процедура, и как можно поподробнее. В общем препод требует защиты проекта, а времени в обрез, чтобы перебирать учебники и самоучители.
Сообщение отредактировал samfisher - 12.6.2010, 8:55 |
|
|
|
13.6.2010, 0:34
Сообщение
#4
|
|
![]() Бывал в Бабруйске... ![]() ![]() ![]() Группа: Пользователи Сообщений: 669 Регистрация: 14.5.2005 Из: Где то рядом... Пользователь №: 564 |
Оффтоп, млин, но не удержался...
И потом такие ""Специалисты"" приходят устраиваться на работу, их не берут, а они жалуются: "Я же с дипломом, а вы не принимаете..." -------------------- Не верь, не бойся, не проси...
|
|
|
|
13.6.2010, 0:36
Сообщение
#5
|
|
|
Новенький ![]() Группа: Пользователи Сообщений: 5 Регистрация: 11.6.2010 Пользователь №: 900713 |
|
|
|
|
13.6.2010, 1:19
Сообщение
#6
|
|
![]() Профессор ![]() ![]() ![]() Группа: Пользователи Сообщений: 249 Регистрация: 23.5.2007 Пользователь №: 2793 |
спасибо тебе, очень помог. Правильно он говорит, я не говорю за себя, что я во всем шарю,но по крайней мере всякие курсовые и в итоге дипломную выбирал так,чтоб было интересно мне и действительно мог сделать своими силами. И что за тему ты взял "Кибер разум" на Delphi?честно смех.
-------------------- Сложное – это то, что можно сделать немедленно, невозможное займет немного больше времени
Promises, and they still feel all so wasted on myself... |
|
|
|
13.6.2010, 1:57
Сообщение
#7
|
|
|
Новенький ![]() Группа: Пользователи Сообщений: 5 Регистрация: 11.6.2010 Пользователь №: 900713 |
ну так по теме будет че нибудь?И у меня выбора не было, так что пеняйте на систему нашего образования, которая *цензура* ничему не учит, а приходиться во всем разбираться самому как в данный момент.
а по теме вот //поиск входной строки в массиве заданных фраз типа если введено привет они ищет в базе фраз привет и заводит в перинную GeneratedFraza ответ соотв этой фразе если ответом много то выбератеся случайный. Резльтат функции найдена фраза или нет 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; Сообщение отредактировал samfisher - 13.6.2010, 2:03 |
|
|
|
13.6.2010, 14:30
Сообщение
#8
|
|
![]() Доцент ![]() ![]() ![]() Группа: Пользователи Сообщений: 130 Регистрация: 20.12.2008 Пользователь №: 5360 |
http://www.programmersforum.ru/forumdisplay.php?f=2 посмотри там может найдешь че нить
-------------------- И сказал слепой - "посмотрим"
|
|
|
|
13.6.2010, 18:02
Сообщение
#9
|
|
![]() Профессор ![]() ![]() ![]() Группа: Пользователи Сообщений: 249 Регистрация: 23.5.2007 Пользователь №: 2793 |
Тыц зайди сюда и попроси совет, только не надо писать что ты горишь и т.д. удачи
-------------------- Сложное – это то, что можно сделать немедленно, невозможное займет немного больше времени
Promises, and they still feel all so wasted on myself... |
|
|
|
15.6.2010, 15:27
Сообщение
#10
|
|
![]() Это не баг, это фича. ![]() ![]() ![]() Группа: Пользователи Сообщений: 556 Регистрация: 21.4.2007 Из: секса в большом городе Пользователь №: 2719 |
Напиши контакты в личку помогу.
-------------------- Пить водку, пиво, коньяк, кофе и курить в один день - это нормально. А вот воду в чайник, нужно обязательно фильтровать, а то для здоровья плохо!
|
|
|
|
15.6.2010, 15:32
Сообщение
#11
|
|
![]() Гуру ![]() ![]() ![]() Группа: Пользователи Сообщений: 2846 Регистрация: 27.8.2009 Пользователь №: 7816 |
сам помощи просишь, да еще огрызаешся со всеми и "купи словарь" ставишь. на что расчитываешь...
-------------------- |
|
|
|
8.7.2010, 16:46
Сообщение
#12
|
|
![]() циник ![]() ![]() ![]() Группа: Пользователи Сообщений: 891 Регистрация: 12.8.2004 Пользователь №: 182 |
обалдеть
Особенно убила фраза из месэджа: Showmessage('Файл с мозгами "Mozgi.brain" не был найден, без него прога работать не будет.'); Автору - просто был в отпуске (опять заграницу мотался), поэтому не написал. Программа - типичный (примитивный) бот (автоболтальщик), причем без автообучения. Если будет на днях время - подробно опишу что тут и как делается. Сообщение отредактировал Хищный Мышь - 8.7.2010, 16:51 -------------------- Добро всегда побеждает зло... Поэтому кто победил - тот добрый.
Я.Интернетометр. Измерьте вашу скорость. |
|
|
|
15.8.2010, 12:28
Сообщение
#13
|
|
|
Новенький ![]() Группа: Пользователи Сообщений: 5 Регистрация: 11.6.2010 Пользователь №: 900713 |
закрывайте тему.
|
|
|
|
![]() ![]() ![]() |
| Сейчас: 11.11.2026, 20:00 |