Пакет types_psy


Структура Дерева понимания:
type levelModel struct {
	ID int
	Level int /* номер уровня узла (проставляется при восстановлении дерева из файла)
	.Level для словестных узлов проставляется в func getTreeInfo(), в func recursiveTree(node
	*/

	//Условия активации данного узла - ID 0- НОРМА, 1-ПЛОХО, 2-ХОРОШО
		ConditionG int
/* сочетания активных контекстов s
3-ВОЗБУЖДЕНИЕ, 4-ВЯЛОСТЬ,5-ГОН, 6-ИГРОВОЙ,7-СТРАХ, 8-АГРЕССИЯ,9-ЗАЩИТНЫЙ, 10-ЗЛОСТЬ, 
11-ДОБРОТА, 12-ПАССИВНОСТЬ, 13-ЛЮБОПЫТСТВО, 14-ОСТОРОЖНОСТЬ
- ConditionA[] до 3-х сочетаний, , что образует большое количество(psy_base_emotions_arrays.go) 
эмоциональных контекстов для каждого из трех базовых
в массивах:
   var var EmotionsArrayN[] Acomb  0- НОРМА, 1-ПЛОХО, 2-ХОРОШО
   var EmotionsArray0[] Acomb   // -НОРМА
   var EmotionsArray1[] Acomb   // -ПЛОХО
   var EmotionsArray2[] Acomb   // -ХОРОШО
уже определены в базовой структуре psy_tree_model_basic.txt
Условия активации данного узла - ID Tarray0[],Tarray1[],Tarray2[] в зависимости от ConditionG
*/
	ConditionA int // эмоция в формате Acomb: emotion:=GetActiveBaseContextsAcomb(node.ConditionG)
	ConditionP int //Условия активации данного узла - ID действия с Пульта
	ConditionS int //Условия активации данного узла - ID WArr ОДНОГО корня, окончания или символа

/*вес значимости базовых условий узла из func ChangeWeightValue(
А в привязанных эпизодич.памяти - сохраняется текущее самоощущение, получаемое из _, result := GetCurBaseEmotionsValues()
 */
	Weight int

	AutomatismID int // привычный моторный автоматизм
// результативность автоматизмв:  0-10 +1 после стало лучше, -1 - после стало хуже !!! просто брать из самого автоматизма !!!
//	Result int

/* Цель, может развиваться на стороне Гомункулуса
 */
	TaskID int

/* привычность увеличивается в func NewTreeModelNode() так, что новый узен в новых условиях
 образуется когда Confidence > 3 - чтобы дерево не засорялось любой новизной
 Можно забывать почти не используемые, - пусть если нужно сформируются.
 */
	Confidence int // привычность, уверенность 0-10

/*  К узлу может быть привязно сколько угодно зависимых массивов, как то:
   // список всех узлов ЭпизодПамяти привязанных к ID узла Дерева
   func GetPsyMemoryListFromTreeId(node int)(*EpisodeMemory)

   // список всех моторных Автоматизмов привязанных к ID узла Дерева
   func GetMotorsAutomatizmListFromTreeId(nodeID int)(*MotorsAutomatism){

   // список всех мыслительных Автоматизмов привязанных к ID узла Дерева
   func GetMentalsAutomatizmListFromTreeId(nodeID int)(*MentalsAutomatism){
 */

	BaseNodeID int     // ID родителя
	BaseNode *levelModel  // адрес родителя НО МОЖНО ПРИМЕНЯТЬ TreeModelActiveList[] *levelModel - все предшествующие узлы
	Children []levelModel // дочерние узлы (ветвление) НЕ АДРЕСА, А РЕАЛЬНЫЕ ОБЪЕКТЫ

/* кром етого, к каждому узлу привязывается Опыт:
   var ExperienceNodeID=make(map[int]*Experience)

 */
}
///////////////////////////////////////////////////////////////////
С узлами Дерева понимания ассоциированы многие другие структуры, используя ID узла Дерева, например, Опыт и Эпизодическая память. Поэтому эти структуры не вошли в структуру Дерва и оно остается компактным для записи в файл.
Вот фрагмент файла с записью Дерева понимания (каждая строка – один узел Дерева):
377|-1|-1|-1|6141|0|83|0|5|6||#|
378|-1|-1|-1|0|0|0|0|3|377||#|
379|-1|-1|-1|13244|0|0|0|3|378||#|
380|-1|-1|-1|5986|0|82|0|3|379||#|
381|-1|-1|-1|21812|2|0|0|4|6||#|
382|-1|-1|-1|27777|2|382|0|4|381||#|
383|-1|-1|-1|0|2|0|0|4|382||#|
384|-1|-1|-1|1478|2|0|0|4|383||#|
385|-1|-1|-1|13388|2|0|0|4|384||#|
386|-1|-1|-1|0|2|0|0|4|385||#|
387|-1|-1|-1|27303|2|0|0|4|386||#|
388|-1|-1|-1|24882|2|388|0|4|387||#|
4|2|-1|-1|-1|0|0|0|0|1||#|