Evgenij_Egorovich писал(а): я советую (уже в третий раз) начать делать МОДЕЛЬ ТЕКУЩЕЙ СИТУАЦИИ внутри "мозгов" твоего бота. Без такой модели - бота НЕ СДЕЛАТЬ (!) (и я могу без нервов это доказать) Evgenij_Egorovich, я помню, но как его сделать. Попробуйте, объяснить.(Необязательно, именно в hiasm пример, можно пример из жизни) Потом "МОДЕЛЬ ТЕКУЩЕЙ СИТУАЦИИ" из вашего примера, можно будет понять, как в hiasm построить. --- Добавлено в 2017-08-12 23:34:50Tad писал(а): Написал бы ты: "Evgenij_Egorovich, 3.14ххххх ты много." и я бы тихо прошёл мимо, а может быть и "палец вверх" тебе поднял в знак солидарности. Tad, что вам плохого сделал Евгений Егорович? --- Добавлено в 2017-08-13 00:03:13Попробовал, добавить "МОДЕЛЬ ТЕКУЩЕЙ СИТУАЦИИ". Узнать ситуацию можно вопросами!(Привет! Как настроения? Какая погода на улице? Какие последние события в жизни, произошли?)
Add(MainForm,2953706,189,210) { Width=431 Height=329 Caption="Умный бот (0.0.3)" Position=1 link(onDeactivate,4465529:doWork3,[(233,223)(233,174)(170,174)(170,125)]) link(onCreate,4465529:doWork2,[(233,230)(233,174)(170,174)(170,118)]) } Add(Edit,8670163,98,77) { Width=415 Align=2 Text="" link(onEnter,2078886:doEvent1,[]) } Add(Memo,14659374,273,77) { Top=20 Width=415 Height=271 Align=5 Point(EndIdx) } Add(Hub,2078886,154,84) { OutCount=3 link(onEvent1,425789:doEvent1,[(206,90)(206,83)(206,83)]) link(onEvent2,4465529:doWork1,[(175,97)(175,111)]) link(onEvent3,15287741:In,[(175,104)(175,27)]) } Add(MultiElement,4465529,182,105) { link(onEvent1,425789:doEvent2,[(222,111)(222,90)]) link(onEvent2,5198890:In,[]) link(Data1,290693:Var,[]) } BEGIN_SDK Add(EditMulti,1061766,21,21) { EventCount=2 WorkCount=4 DataCount=1 Width=531 Height=375 link(doWork1,1980422:doModify,[(25,27)(25,48)]) link(doWork2,12673270:doEvent1,[(59,34)(59,90)]) link(doWork3,7590074:doSave,[(59,41)(59,97)]) link(doWork4,5867775:In,[]) } Add(StrList,7590074,126,56) { FileName="Бот.txt" Strings=#29:привет=Привет, как дела $имя!|34:хорошо=Я, очень за тебя рад, $имя!| } Add(Replace,5125365,364,168) { SubStr="$имя" link(onReplace,537481:doEvent1,[]) link(Str,6494692:Value,[(370,149)(356,149)]) link(Dest,13323879:Var,[]) } Add(Memory,2056730,217,28) { Default=String(Незнакомец) } Add(ArrayEnum,10160767,84,140) { link(onItem,11174774:doSplit,[]) link(onEndEnum,16510060:In,[]) link(Array,7590074:Array,[(90,120)(146,120)]) } Add(StrCase,1980422,28,42) { link(onModify,13976054:doValue,[(72,48)(72,72)(16,72)(16,97)]) } Add(Memory,13976054,28,91) { link(onData,12154121:doEvent1,[(72,97)(72,118)(44,118)(44,139)]) } Add(StrPart,11174774,133,140) { Char="=" DirectEvent=0 link(onSplit,6494692:doValue,[(201,146)(201,104)]) link(onPart,13221857:doEvent1,[(170,153)(170,160)]) } Add(StrMask,15231518,203,154) { Point(doMask) link(onTrue,15968388:doEvent1,[]) link(Str,4323014:Var3,[(209,152)]) } Add(LineBreak,1939176,28,140) { Type=1 link(Data,7866856:Var2,[]) Primary=[11441942,175,-14] } Add(Hub,13221857,175,154) { link(onEvent1,15231518:doMask,[(196,160)(196,167)]) link(onEvent2,15231518:doCompare,[(196,167)(196,160)]) } Add(Memory,6494692,350,98) { } Add(LineBreak,7542066,217,77) { Type=1 link(Data,2056730:Value,[]) Primary=[13323879,161,63] } Add(LineBreak,13750214,504,28) { link(Out,1061766:onEvent1,[(540,34)(540,27)]) Primary=[12842497,-70,140] } Add(GetDataEx,7866856,28,126) { link(Data,13976054:Value,[]) } Add(InfoTip,3165757,0,21) { Info=#18:Регистру переводим| Width=85 Height=60 } Add(InfoTip,1402341,0,70) { Info=#18:Текст пользователя| Width=85 Height=46 } Add(InfoTip,11222914,77,28) { Info=#18:Шаблон+база данных| Width=92 Height=88 } Add(InfoTip,16629815,56,119) { Info=#12:Перебор базы| Width=113 Height=60 } Add(InfoTip,595701,168,119) { Info=#18:Сравнения с маской| Width=99 Height=74 } Add(InfoTip,15906990,315,63) { Info=#25:Подставка данных в шаблон| Width=169 Height=144 } Add(InfoTip,14262625,14,175) { Info=#24:Заполнить данные шаблона| Width=120 Height=81 } Add(InfoTip,12074308,182,21) { Info=#8:Ваше имя| Width=106 Height=67 } Add(InfoTip,7416486,427,7) { Info=#21:Ответ отправить в чат| Width=148 Height=53 } Add(LineBreak,15357023,175,35) { link(Out,2056730:doValue,[(211,41)(211,34)]) Primary=[714054,14,203] } Add(Position,3516802,84,238) { Target="т" ShortSearch=1 link(onSearch,13507382:doDelete,[]) link(Str,9755323:Var2,[]) } Add(Hub,12154121,56,133) { OutCount=3 link(onEvent1,14337777:doSearch,[(82,139)(82,188)(16,188)(16,237)]) link(onEvent2,14808974:In,[(77,146)(77,125)]) link(onEvent3,10160767:doEnum,[(77,153)(77,146)]) } Add(Delete,13507382,133,238) { link(onDelete,714054:In,[]) link(Str,9755323:Var3,[(139,215)]) link(Count,3516802:Position,[(153,226)(121,226)(121,282)(90,282)]) } Add(GetDataEx,9755323,84,210) { link(Data,7096826:Var3,[(90,188)]) } Add(GetDataEx,7096826,28,183) { Angle=3 link(Data,7866856:Var1,[(25,188)(25,131)]) } Add(BlockFind,14337777,28,231) { StartBlock="меня" EndBlock=" зовут " link(onSearch,3516802:doSearch,[(72,237)(72,244)]) link(Text,7096826:Var1,[(34,207)(22,207)(22,177)(34,177)]) } Add(FormatStr,7079420,301,357) { Mask="%1=%2" link(onFString,13325983:In,[]) link(Str1,1640201:Var,[]) link(Str2,8611511:Var,[]) } Add(GetDataEx,4323014,196,147) { link(Data,11441942:Var,[(202,140)]) } Add(DoData,11437723,497,119) { Data=Integer(1) link(onEventData,16613748:In,[]) } Add(LineBreak,9968099,252,357) { link(Out,7079420:doString,[]) Primary=[5867775,-210,-315] } Add(LineBreak,1633800,63,63) { link(Out,7590074:doAdd,[(95,69)(95,62)]) Primary=[13325983,280,294] } Add(LineBreak,16072104,98,0) { Type=1 link(Data,1061766:Data1,[(104,-12)(66,-12)(66,33)(27,33)]) Primary=[8611511,210,329] } Add(LineBreak,3748412,196,175) { Type=1 link(Data,4323014:Var2,[]) Primary=[1640201,105,154] } Add(LineBreak,13683044,455,126) { link(Out,11437723:doData,[(491,132)(491,125)]) Primary=[13667194,-133,105] } Add(LineBreak,10280575,518,35) { link(Out,1061766:onEvent2,[(550,41)(550,34)]) Primary=[16613748,21,84] } Add(InfoTip,8434756,455,98) { Info=#13:Окно обучения| Width=113 Height=74 } Add(InfoTip,2339548,252,315) { Info=#14:Увеличить базу| Width=134 Height=102 } Add(Hub,15968388,252,161) { link(onEvent1,5125365:doReplace,[(353,167)(353,174)]) link(onEvent2,11718092:doWork2,[(276,174)(276,202)]) } Add(ChanelToIndex,11718092,287,189) { link(onIndex,15342785:doValue,[]) } Add(LineBreak,9911975,245,189) { link(Out,11718092:doWork1,[]) Primary=[14808974,-161,-70] } Add(Memory,15342785,336,189) { } Add(IndexToChanel,9053461,273,224) { Point(Index) link(onEvent1,13667194:In,[(313,230)(313,237)]) link(Index,15342785:Value,[(279,222)(342,222)]) } Add(LineBreak,12419239,231,224) { link(Out,9053461:doEvent,[]) Primary=[16510060,-105,-77] } Add(Hub,12673270,91,84) { link(onEvent1,7590074:doLoad,[]) link(onEvent2,3449480:In,[]) } Add(DoData,16561340,448,231) { Data=String(Привет! Как настроения? Какая погода на улице? Какие последние события в жизни, произошли?) link(onEventData,537481:doEvent2,[(492,237)(492,209)(401,209)(401,181)]) } Add(LineBreak,1059688,406,231) { link(Out,16561340:doData,[]) Primary=[3449480,-287,-140] } Add(Hub,537481,413,168) { InCount=2 OutCount=1 link(onEvent1,12842497:In,[]) } Add(InfoTip,6290205,399,203) { Info=#23:МОДЕЛЬ ТЕКУЩЕЙ СИТУАЦИИ| Width=120 Height=88 } END_SDK Add(Hub,425789,231,77) { InCount=2 OutCount=1 link(onEvent1,14659374:doAdd,[]) } Add(InfoTip,16066098,77,56) { Info=#10:Пишем боту| Width=71 Height=88 } Add(InfoTip,9407358,259,49) { Info=#3:Чат| Height=88 } Add(InfoTip,5693582,154,56) { Info=#6:Анализ| Width=99 Height=88 } Add(InfoTip,6332098,161,182) { Info=#14:Сама программа| Width=99 Height=88 } Add(ChildForm,12125263,322,154) { link(onEvent1,8969991:In,[]) } BEGIN_SDK Add(EditMulti,10852987,21,21) { EventCount=1 WorkCount=2 VarCount=1 link(doWork1,12521222:doText,[(35,27)(35,34)]) link(doWork2,2566730:doEvent1,[(25,34)(25,139)]) link(Var1,82201:Text,[(27,172)(111,172)]) } Add(MainForm,16406984,49,105) { Left=35 Top=105 Height=187 Visible=1 Caption="Ответ" BorderStyle=3 Position=1 Point(doVisible) } Add(Label,12521222,49,28) { Left=65 Top=20 Width=10 Height=17 Caption="?" } Add(Label,14623482,168,7) { Left=25 Top=20 Width=41 Height=17 Caption="Вопрос" } Add(Label,5533364,231,7) { Left=20 Top=95 Width=34 Height=17 Caption="Ответ" } Add(Edit,82201,105,91) { Left=60 Top=95 Width=325 Text="" } Add(Button,11412454,259,42) { Left=50 Top=135 Width=310 Caption="Запомни!!!" link(onClick,6120050:doEvent1,[(296,48)(296,41)]) } Add(Hub,2566730,28,133) { InCount=2 OutCount=1 link(onEvent1,16406984:doVisible,[]) } Add(Hub,6120050,301,35) { link(onEvent1,10852987:onEvent1,[(318,41)(318,27)]) link(onEvent2,8699819:doData,[(327,48)(327,76)(268,76)(268,104)]) } Add(DoData,8699819,280,98) { Data=Integer(0) link(onEventData,2566730:doEvent2,[(324,104)(324,125)(16,125)(16,146)]) } Add(Label,11450383,14,56) { Left=10 Top=55 Width=153 Height=17 Caption="Пиши, $имя=ваше имя пишет" } END_SDK Add(LineBreak,6396830,315,196) { Type=1 link(Data,12125263:Var1,[(321,191)(328,191)]) Primary=[290693,-133,-161] } Add(LineBreak,3775466,266,161) { link(Out,12125263:doWork2,[]) Primary=[5198890,-42,-49] } Add(LineBreak,8338729,119,140) { link(Out,4465529:doWork4,[(165,146)(165,132)]) Primary=[8969991,245,14] } Add(LineBreak,10523193,280,154) { link(Out,12125263:doWork1,[]) Primary=[15287741,-98,-133] } Add(InfoTip,13685062,266,140) { Info=#8:Обучение| Width=134 Height=81 }
Редактировалось 3 раз(а), последний 2017-08-13 00:03:13
|