Вверх ↑
Ответов: 632
Рейтинг: 4
#1: 2017-08-12 23:32:17 ЛС | профиль | цитата
Evgenij_Egorovich писал(а):
я советую (уже в третий раз) начать делать МОДЕЛЬ ТЕКУЩЕЙ СИТУАЦИИ внутри "мозгов" твоего бота.
Без такой модели - бота НЕ СДЕЛАТЬ (!) (и я могу без нервов это доказать)

Evgenij_Egorovich, я помню, но как его сделать. Попробуйте, объяснить.(Необязательно, именно в hiasm пример, можно пример из жизни) Потом "МОДЕЛЬ ТЕКУЩЕЙ СИТУАЦИИ" из вашего примера, можно будет понять, как в hiasm построить.

--- Добавлено в 2017-08-12 23:34:50

Tad писал(а):
Написал бы ты: "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
}
карма: 0

0
Редактировалось 3 раз(а), последний 2017-08-13 00:03:13