/// <summary> /// Main method - template for the FileController evaluation /// </summary> /// <param name="traits">Character Traits</param> /// <param name="memory">Character's Memory and knowledge</param> /// <param name="perceivedEvent">Event to evaluate</param> /// <returns>Character's reaction</returns> public List <Reaction> Evaluate(CharacterTraits traits, Memory.Memory memory, PerceivedEvent perceivedEvent) { List <Reaction> reactions; if (EvaluateNode(perceivedEvent, memory, traits)) { if (RightNode == null) { throw new NullNodeException($"Right node for node {this} is missing."); } reactions = RightNode.Evaluate(traits, memory, perceivedEvent); if (RightNode.GetNodeType() == "Node") { DataToMemorize.AddRange(((AbstractDecisionNode)RightNode).DataToMemorize); } } else { if (LeftNode == null) { throw new NullNodeException($"Left node for node {this} is missing."); } reactions = LeftNode.Evaluate(traits, memory, perceivedEvent); if (LeftNode.GetNodeType() == "Node") { DataToMemorize.AddRange(((AbstractDecisionNode)LeftNode).DataToMemorize); } } return(reactions); }
public WaypointWriter() { InitializeComponent(); wow = new Memory.Memory(); PCoord = new List <MainForm.Coords>(); WPRange = 100; LoadWaypoints(""); LoadedLocation = ""; SelectedLoc = -1; }
public WaypointWriter() { InitializeComponent(); wow = new Memory.Memory(); PCoord = new List<MainForm.Coords>(); WPRange = 100; LoadWaypoints(""); LoadedLocation = ""; SelectedLoc = -1; }
public void ReadWriteByteSuccess() { Byte expectedByte = 0x55; UInt16 address = 0x400; IMemory memory = new Memory.Memory(); memory.WriteByte(address, expectedByte); Byte actualByte = memory.ReadByte(address); Assert.AreEqual(expectedByte, actualByte, $"Expected {expectedByte} found {actualByte}"); }
public static bool IsSpellOntarget(Memory.Memory wow, int UnitIndex, int Spell) { if (wow.Objects[UnitIndex].Auras == null) { return(true); } for (int i = 0; i < wow.Objects[UnitIndex].Auras.Count; i++) { if (wow.Objects[UnitIndex].Auras[i].auraId == Spell) { return(true); } } return(false); }
private void InitMain() { wow = new Memory.Memory(); SS = new SpellSearcher(); FH = new FarmHonor(); Farmer = new Farm(); Running = false; PCoord = new List <Coords>(); if (wow.wow.ProcessId != 0) { notifyIcon1.Text = "Farmhelper: attached to wow: " + wow.wow.ProcessId.ToString(); WowControl.UpdateStatus("Attached to wow: " + wow.wow.ProcessId.ToString() + "."); MainTimer.Enabled = true; } else { WowControl.UpdateStatus("Not found wow process."); notifyIcon1.Text = "Farmhelper: not found wow process"; } WowControl.LoadGoods(); ProcessMainPage(); }
public static void Moving(Memory.Memory wow, int Target, int BestAbilityIndex) { if (Target > 0) { if (WowControl.ClassType == 1) { if (Abilities.AbilityStatus != "Casting") { Button(BindingsList[BestAbilityIndex].AbilityName); wow.GoTo(0, 0, 0, wow.Objects[Abilities.Target].GUID, 11); } } else { double Range = WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Abilities.Target].X, wow.Objects[Abilities.Target].Y, wow.Objects[Abilities.Target].Z); if (Range > 25) { if (Abilities.AbilityStatus != "Casting") { wow.GoTo(wow.Objects[Abilities.Target].X, wow.Objects[Abilities.Target].Y, wow.Objects[Abilities.Target].Z, wow.Objects[Abilities.Target].GUID, 4); } } else { Button(BindingsList[BestAbilityIndex].AbilityName); wow.GoTo(0, 0, 0, 0, 3); WowControl.Sleep(100); wow.GoTo(0, 0, 0, wow.Objects[Abilities.Target].GUID, 1); } } if (WowControl.ErrorState == "Bad target") { //WowControl.BadObjects.Add(wow.Objects[Abilities.Target].GUID); WowControl.UpdateCombatLog("Bad target " + wow.Objects[Abilities.Target].Name + "."); } } }
private void button16_Click(object sender, EventArgs e) { if (Process.GetProcessesByName("wow").Length > 1) { ProcessSelect PS = new ProcessSelect(); PS.ShowDialog(); wow = new Memory.Memory(); wow.PId = PS.PId; wow.InitMemory(); FH = new FarmHonor(); Farmer = new Farm(); Running = false; PCoord = new List <Coords>(); if (wow.wow.ProcessId != 0) { WowControl.UpdateStatus("Attached to wow: " + wow.wow.ProcessId.ToString() + "."); MainTimer.Enabled = true; notifyIcon1.Text = "Farmhelper: attached to wow: " + wow.wow.ProcessId.ToString(); } else { WowControl.UpdateStatus("Not found wow process."); notifyIcon1.Text = "Farmhelper: not found wow process"; } WowControl.LoadGoods(); ProcessMainPage(); } if (Process.GetProcessesByName("wow").Length == 1) { WowControl.UpdateStatus("Only one process found."); InitMain(); } if (Process.GetProcessesByName("wow").Length == 0) { WowControl.UpdateStatus("Not found wow process."); } }
/// <summary> /// Main method for node evaluation purposes /// </summary> /// <param name="perceivedEvent">The event tht is reacted to</param> /// <param name="memory">Character's memory and knowledge</param> /// <param name="traits">Chracter's traits</param> /// <returns>Test passed</returns> protected virtual bool EvaluateNode(PerceivedEvent perceivedEvent, Memory.Memory memory, CharacterTraits traits) { throw new NotImplementedException(); }
private bool _paused; //To ensure the cpu is paused #endregion Fields #region Constructors /// <summary> /// The 6502 /// </summary> /// <param name="memory">The memory</param> /// <param name="tvFormat">The TV format</param> public Cpu(Memory.Memory memory, TvFormat tvFormat, NesEngine engine) { _engine = engine; MEM = memory; InitializeCPU(tvFormat); }
private void InitMain() { wow = new Memory.Memory(); SS = new SpellSearcher(); FH = new FarmHonor(); Farmer = new Farm(); Running = false; PCoord = new List<Coords>(); if (wow.wow.ProcessId != 0) { notifyIcon1.Text = "Farmhelper: attached to wow: " + wow.wow.ProcessId.ToString(); WowControl.UpdateStatus("Attached to wow: " + wow.wow.ProcessId.ToString() + "."); MainTimer.Enabled = true; } else { WowControl.UpdateStatus("Not found wow process."); notifyIcon1.Text = "Farmhelper: not found wow process"; } WowControl.LoadGoods(); ProcessMainPage(); }
private void button16_Click(object sender, EventArgs e) { if (Process.GetProcessesByName("wow").Length > 1) { ProcessSelect PS = new ProcessSelect(); PS.ShowDialog(); wow = new Memory.Memory(); wow.PId = PS.PId; wow.InitMemory(); FH = new FarmHonor(); Farmer = new Farm(); Running = false; PCoord = new List<Coords>(); if (wow.wow.ProcessId != 0) { WowControl.UpdateStatus("Attached to wow: " + wow.wow.ProcessId.ToString() + "."); MainTimer.Enabled = true; notifyIcon1.Text = "Farmhelper: attached to wow: " + wow.wow.ProcessId.ToString(); } else { WowControl.UpdateStatus("Not found wow process."); notifyIcon1.Text = "Farmhelper: not found wow process"; } WowControl.LoadGoods(); ProcessMainPage(); } if (Process.GetProcessesByName("wow").Length == 1) { WowControl.UpdateStatus("Only one process found."); InitMain(); } if (Process.GetProcessesByName("wow").Length == 0) WowControl.UpdateStatus("Not found wow process."); }
public VICMemory(Memory.Memory mainMemory) { _mainMemory = mainMemory; }
protected void ResetMemoryItems(Memory.Memory memory) { memory.ResetShortTermMemory(); }
public static bool SubCheckAbilityOptions(int AbilityIndex, Memory.Memory wow, String Type, int Unit) { bool result = false; int PlayerRange = 0; if (WowControl.ClassType == 0) //Ranged { PlayerRange = 30; } else { PlayerRange = 7; } if (AbilityIndex == 14) { int y = 0; y++; } double Range = Convert.ToInt32(WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Unit].X, wow.Objects[Unit].Y, wow.Objects[Unit].Z)); for (int i = 0; i < BindingsList[AbilityIndex].OptionsList.Count; i++) { if ((BindingsList[AbilityIndex].OptionsList[i].Unit == "Player") & (Unit == 0)) { if (i == 0) { result = CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } else { if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "AND") { result = result & CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } else if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "OR") { result = result | CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } } } else if ((BindingsList[AbilityIndex].OptionsList[i].Unit == "Enemy") & (wow.Objects[Unit].Faction != wow.Objects[0].Faction) & (Range <= WowControl.EnemyCheckRange)) { if (i == 0) { result = CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } else { if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "AND") { result = result & CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } else if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "OR") { result = result | CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } } } else if ((BindingsList[AbilityIndex].OptionsList[i].Unit == "Friend") & (wow.Objects[Unit].Faction == wow.Objects[0].Faction) & (Range <= WowControl.FriendCheckRange)) { if (i == 0) { result = CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } else { if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "AND") { result = result & CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } else if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "OR") { result = result | CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow); } } } } if (result == true) { //Выставляем приоритет int Priority = 0; if (wow.Objects[Unit].MaxHealth != 0) { int Health = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100); if (wow.Objects[Unit].Faction == wow.Objects[0].Faction) { //Friend or player if (Unit == 0) //Player { Priority = Health * 2; } else { Priority = Convert.ToInt32(Health + (PlayerRange - Range) * 100 / 30); } } else { //Enemy Priority = Convert.ToInt32(Health + (PlayerRange - Range) * 100 / 30); } if (Prioritets[AbilityIndex, Unit].Prioritet < Priority) { Prioritets[AbilityIndex, Unit].Prioritet = Priority; } if (Priority >= Prioritets[AbilityIndex, Unit].Prioritet) { Prioritets[AbilityIndex, Unit].GUID = wow.Objects[Unit].GUID; } if ((Math.Abs(wow.Objects[0].Level - wow.Objects[Unit].Level) > 5) & (Type == "Bg")) { Prioritets[AbilityIndex, Unit].Prioritet = 0; } } /* * for (int i = 0; i < BindingsList[AbilityIndex].OptionsList.Count; i++) * {//Прогоняем все опции для абилы * if (wow.Objects[Unit].MaxHealth != 0) * { * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Friend") * { * if (BindingsList[AbilityIndex].OptionsList[i].Parameter != "SpellID") * Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 3; * else Priority = 90; * if (Unit == 0) * Priority *= 2; * } * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Player") * if (BindingsList[AbilityIndex].OptionsList[i].Parameter != "SpellID") * Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 4; * else Priority = 90; * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Enemy") * { * double param =(PlayerRange - Range) / 10; * if (param > 0) * Priority = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100 * param); * } * } * if (Prioritets[AbilityIndex, Unit].Prioritet < Priority) * Prioritets[AbilityIndex, Unit].Prioritet = Priority; * * /* * if (BindingsList[AbilityIndex].OptionsList[i].Parameter == "SpellID") * { * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Friend") * { * Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 3; * if (Unit == 0) * Priority *= 2; * } * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Player") * Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 4; * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Enemy") * { * int param = Convert.ToInt32((PlayerRange - Range) / 10); * Priority = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100) * param; * } * } else if (BindingsList[AbilityIndex].OptionsList[i].Parameter == "Health") * { * if (wow.Objects[Unit].MaxHealth != 0) * { * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Friend") * { * Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 3; * if (Unit == 0) * Priority *= 2; * } * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Player") * Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 4; * if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Enemy") * { * int param = Convert.ToInt32((PlayerRange - Range) / 10); * Priority = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100) * param; * } * } * if (Prioritets[AbilityIndex, Unit].Prioritet < Priority) * Prioritets[AbilityIndex, Unit].Prioritet = Priority; * } else if (BindingsList[AbilityIndex].OptionsList[i].Parameter == "Range") * { * if (Prioritets[AbilityIndex, Unit].Prioritet == 0) * if (WowControl.ClassType == 0)//Ranged * Priority = 100 - Convert.ToInt32(WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Unit].X, wow.Objects[Unit].Y, wow.Objects[Unit].Z)); * else Priority = 100 - Convert.ToInt32(WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Unit].X, wow.Objects[Unit].Y, wow.Objects[Unit].Z)) * 2; * if (Prioritets[AbilityIndex, Unit].Prioritet < Priority) * Prioritets[AbilityIndex, Unit].Prioritet = Priority; * } else if (BindingsList[AbilityIndex].OptionsList[i].Parameter == "Power") * { * if (Prioritets[AbilityIndex, Unit].Prioritet == 0) * Priority = 70; * } * * }*/ } return(result); }
public static void UseAbilities(Memory.Memory wow, String Type) { Ability[] Bindings = BindingsList.ToArray(); Prioritets = new AbilityPrioritet[BindingsList.Count, wow.Objects.Count]; if (EndCast <= DateTime.Now) { AbilityStatus = "Ready"; } if (AbilityStatus == "Ready") { for (int i = 0; i < Bindings.Length; i++) { //Прогоняем все абилы if (Bindings[i].Try < 5) { if ((DateTime.Now - Bindings[i].LastUse).TotalSeconds >= Bindings[i].CoolDown) { if ((Bindings[i].InCombat >= 0) & (Bindings[i].InCombat <= 2)) { CheckAbilityOptions(i, wow, Type); } } } } int MaxPriority = 0; int BestAbilityIndex = -1; int BestUnit = -1; for (int Unit = 0; Unit < wow.Objects.Count; Unit++) { for (int i = 0; i < BindingsList.Count; i++) { if (MaxPriority < Prioritets[i, Unit].Prioritet) { BestUnit = Unit; MaxPriority = Prioritets[i, Unit].Prioritet; BestAbilityIndex = i; } } } if (BestAbilityIndex != -1) { Target = WowControl.GetUnitIndexByGuid(wow, Prioritets[BestAbilityIndex, BestUnit].GUID); WowControl.SelectTarget(Prioritets[BestAbilityIndex, BestUnit].GUID); if (Target != 0) { Moving(wow, Target, BestAbilityIndex); } if (Target == 0) { Button(BindingsList[BestAbilityIndex].AbilityName); } int Health = 0; if (wow.Objects[Target].MaxHealth != 0) { Health = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Target].Health) / Convert.ToDouble(wow.Objects[Target].MaxHealth) * 100); } WowControl.UpdateCombatLog(WowControl.GetTimeStr() + " Using \"" + Bindings[BestAbilityIndex].AbilityName + "\" on \"" + wow.Objects[Target].Name + "\" Health = " + Health + "."); Bindings[BestAbilityIndex].LastUse = BindingsList[BestAbilityIndex].LastUse; } else { Target = -1; } BindingsList.Clear(); for (int i = 0; i < Bindings.Length; i++) { BindingsList.Add(Bindings[i]); } } }
public static bool CheckOptionsValues(int Unit, String Parameter, String Condition, String Value, Memory.Memory wow) { bool result = false; int UnitParam = 0; int ValueParam = Convert.ToInt32(Value); if (Parameter == "Health") { if (wow.Objects[Unit].MaxHealth != 0) { UnitParam = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100); } } if (Parameter == "SpellID") { if (IsSpellOntarget(wow, Unit, Convert.ToInt32(Value)) == true) { if (Condition == "=") { return(true); } else if (Condition == "!=") { return(false); } } else { if (Condition == "=") { return(false); } else if (Condition == "!=") { return(true); } } } if (Parameter == "Range") { UnitParam = Convert.ToInt32(WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Unit].X, wow.Objects[Unit].Y, wow.Objects[Unit].Z)); } if (Parameter == "Power") { UnitParam = wow.Objects[Unit].Power; } if (Condition == ">") { result = (UnitParam > ValueParam); } else if (Condition == "<") { result = (UnitParam < ValueParam); } else if (Condition == "=") { result = (UnitParam == ValueParam); } else if (Condition == "!=") { result = (UnitParam != ValueParam); } return(result); }
public static UInt64 CheckAbilityOptions(int AbilityIndex, Memory.Memory wow, String Type) { for (int Unit = 0; Unit < wow.Objects.Count; Unit++) { if (Type != "Bg") { if ((WowControl.CheckForBad(wow.Objects[Unit].GUID) == false) & (wow.Objects[Unit].Health > 1)) { switch (BindingsList[AbilityIndex].InCombat) { case 0: //Always if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0)) { return(wow.Objects[Unit].GUID); } break; case 1: //In combat if (wow.Objects[0].IsInCombat != 1) { break; } if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0)) { return(wow.Objects[Unit].GUID); } break; case 2: //Out of combat if (wow.Objects[0].IsInCombat != 0) { break; } if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0)) { return(wow.Objects[Unit].GUID); } break; } } } else { if ((WowControl.CheckForBad(wow.Objects[Unit].GUID) == false) & (wow.Objects[Unit].Health > 1) & (wow.Objects[Unit].Type == 4)) { switch (BindingsList[AbilityIndex].InCombat) { case 0: //Always if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0)) { return(wow.Objects[Unit].GUID); } break; case 1: //In combat if (wow.Objects[0].IsInCombat != 1) { break; } if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0)) { return(wow.Objects[Unit].GUID); } break; case 2: //Out of combat if (wow.Objects[0].IsInCombat != 0) { break; } if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0)) { return(wow.Objects[Unit].GUID); } break; } } } } return(0); }
//public void LearnFromMyExperiences(Character learningCharacter) //{ // if (!LearningThresholdReached(learningCharacter.MyMemory)) // return; // long[] times = new long[9]; // var timer = new Stopwatch(); // timer.Start(); // //TODO : Thead this // AdjustEmotionalStates(learningCharacter); // timer.Stop(); // times[0] = timer.ElapsedMilliseconds; // timer.Start(); // //FormOpinions(learningCharacter); // //timer.Stop(); // //times[1] = timer.ElapsedMilliseconds; // //timer.Start(); // //AdjustDesires(learningCharacter); // //timer.Stop(); // //times[2] = timer.ElapsedMilliseconds; // //timer.Start(); // AdjustQualityTraits(learningCharacter); // timer.Stop(); // times[3] = timer.ElapsedMilliseconds; // timer.Start(); // AdjustPersonalValues(learningCharacter); // timer.Stop(); // times[4] = timer.ElapsedMilliseconds; // timer.Start(); // TransfertRecentActionsToLongTerm(learningCharacter); // timer.Stop(); // times[5] = timer.ElapsedMilliseconds; // timer.Start(); // //Decision trees analyze actions on the long term. Recent must be // //transfered to long term beforehand to make it easier. // EvolveDecisionTrees(learningCharacter); // //Speech patterns // timer.Stop(); // times[6] = timer.ElapsedMilliseconds; // timer.Start(); // TransfertMemoriesToLongTerm(learningCharacter); // timer.Stop(); // times[7] = timer.ElapsedMilliseconds; // timer.Start(); // //Resetting Values // ResetMemoryItems(learningCharacter.MyMemory); // ResetNodeResults(learningCharacter.MyMemory); // learningCharacter.MyTraits.ResetEmotions(); // timer.Stop(); // times[8] = timer.ElapsedMilliseconds; // File.AppendAllText("C:\\logs\\log.txt", string.Join("\t", times) + Environment.NewLine); // //actions? //} protected virtual bool LearningThresholdReached(Memory.Memory memory) { return(memory.GetNodeTestResultsCount() >= LearningParameters.MinimumLearningThreshold); }
public Farm() { wow = new Memory.Memory(); }
protected void ResetNodeResults(Memory.Memory memory) { memory.ResetNodeTestResults(); }