private void FormulaApply(string[] mas, string id) { using (neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text)) { if (mas.Length != 3) { textBox4.Text = "Формула неверная"; return; } string paramValue = neoDataLoader.GetParameterValue(id, mas[0]); switch (mas[1]) { case "-=": int result1 = Convert.ToInt32(paramValue) - Convert.ToInt32(mas[2]); neoDataLoader.SetNodeParameter(id, mas[0], result1.ToString()); break; case "=": neoDataLoader.SetNodeParameter(id, mas[0], mas[2]); break; case "+=": int result2 = Convert.ToInt32(paramValue) + Convert.ToInt32(mas[2]); neoDataLoader.SetNodeParameter(id, mas[0], result2.ToString()); break; } } }
private void FillDataGridView(string agentID) { Dictionary <string, string> parameters = new Dictionary <string, string>(); using (neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text)) { string stateID = neoDataLoader.GetParameterValue(agentID, "Состояние"); parameters.Add("Состояние №", stateID + " (" + neoDataLoader.GetParameterValue(stateID, "name") + ")"); parameters.Add("Сытость: ", neoDataLoader.GetParameterValue(agentID, "Сытость")); parameters.Add("X ", neoDataLoader.GetParameterValue(agentID, "X")); parameters.Add("Y ", neoDataLoader.GetParameterValue(agentID, "Y")); //List<String> ownedItemsId = neoDataLoader.GetRelatedNodesIdList("Принадлежит", agentID); //foreach (string item in ownedItemsId) //{ // parameters.Add("Владеет предметом " + "Пища"/*neoDataLoader.GetNodeLabels(item).First()*/, // neoDataLoader.GetParameterValue(item, "Количество")); //} parameters.Add("Владеет предметом Пища: ", neoDataLoader.GetParameterValue(agentID, "Пища")); parameters.Add("Формула на текущем состоянии:", neoDataLoader.GetParameterValue(stateID, "comment")); List <String> relatedStatesId = neoDataLoader.GetStatesInWhichNodeGoes(stateID); foreach (string state in relatedStatesId) { parameters.Add("Переход в состояние " + neoDataLoader.GetParameterValue(state, "name"), neoDataLoader.GetRelationshipBetweenStatementsParameterValue(stateID, state, "comment")); } } //dataGridView1.Rows.Add(parameters) foreach (DataGridViewColumn c in dataGridView_agentParameters.Columns) { c.DefaultCellStyle.Font = new Font("Arial", 18F, GraphicsUnit.Pixel); } dataGridView_agentParameters.DataSource = parameters.ToArray(); dataGridView_agentParameters.Refresh(); }
public void Algorithm() { using (neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text)) { agentInstances = neoDataLoader.GetAllInstancesIdByName("Агент"); } foreach (string agentID in agentInstances) { // Получаем формулу на текущем состоянии string currentStateID; string currentStateFormula; using (neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text)) { string stateID = neoDataLoader.GetParameterValue(agentID, "Состояние"); List <String> relatedStatesId = neoDataLoader.GetStatesInWhichNodeGoes(stateID); foreach (string state in relatedStatesId) { if (ExpressionChecker(neoDataLoader.GetRelationshipBetweenStatementsParameterValue(stateID, state, "comment"))) // Состояние меняется каждый раз ДОПИШИ ПАРСЕР ФОРМУЛ я хочу спать, не могу { neoDataLoader.SetNodeParameter(agentID, "Состояние", state); } foreach (string food in neoDataLoader.GetAllNodesWithNameInstancesId("Пища")) //Тут состояние не менятся на покой пока не будет найдена пища { if (checkSamePosition(food, agentID)) { neoDataLoader.SetNodeParameter(agentID, "Состояние", "0"); } } } currentStateID = neoDataLoader.GetParameterValue(agentID, "Состояние"); currentStateFormula = neoDataLoader.GetParameterValue(currentStateID, "comment"); } // Парсим формулу и применяем её (надо сделать проверку может ли она быть применена) FormulaParser(currentStateFormula, agentID); try { if (currentStateID.Equals("1")) { //1 = Перемещение (Это костыль) neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text); moving(System.Convert.ToInt32(neoDataLoader.GetParameterValue(agentID, "X")), System.Convert.ToInt32(neoDataLoader.GetParameterValue(agentID, "Y")), agentID); } } catch (FormatException) { // the FormatException is thrown when the string text does // not represent a valid integer. } catch (OverflowException) { // the OverflowException is thrown when the string is a valid integer, // but is too large for a 32 bit integer. Use Convert.ToInt64 in // this case. } //Здесь делаем проверку перехода в другое состояние и, если можем перейти, переходим TransitionParser(); ////// Заглушка } }
public MainForm() { InitializeComponent(); chartWorkObject = new ChartWork(); agentInstances = new List <string>(); neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text); }
public void moving(int X, int Y, string agentId) { neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text); string neededItem = searchNeededItem(X, Y, agentId, "Объект"); if (neededItem != null) { movingToItem(X, Y, agentId, neededItem); } neoDataLoader.SetNodeParameter(agentId, "X", (X += rnd.Next(2)).ToString()); neoDataLoader.SetNodeParameter(agentId, "Y", (Y += rnd.Next(2)).ToString()); }
private void button_connect_Click(object sender, EventArgs e) { try { neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text); this.label_connectionState.Text = "Успешно подключено."; } catch (Exception ex) { this.label_connectionState.Text = "Не удалось подключиться.\nПроверьте введённые данные\nи подключение к интернету."; } }
public double CalculateAverageSatiety() { using (neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text)) { List <string> agentsID = neoDataLoader.GetAllInstancesIdByName("Агент"); double sum = 0; foreach (string agent in agentsID) { sum += Convert.ToDouble(neoDataLoader.GetParameterValue(agent, "Сытость")); } sum /= agentsID.Count(); return(sum); } }
private void Output() { using (neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text)) { textBox4.Text = neoDataLoader.GetNumberOfAgents(); agentInstances = new List <string>(); agentInstances = neoDataLoader.GetAllInstancesIdByName("Агент"); this.listBox_Agents.Items.Clear(); foreach (String str in agentInstances) { this.listBox_Agents.Items.Add("Человек. ID: " + str); } this.dataGridView_agentParameters.DataSource = new object(); } }
public double CalculateAverageFood() // Здесь дичайшие костыли { using (neoDataLoader = new NeoDataLoader("bolt://localhost:" + textBox1.Text, textBox2.Text, textBox3.Text)) { List <string> agentsID = neoDataLoader.GetAllInstancesIdByName("Агент"); double sum = 0; foreach (string agent in agentsID) { sum += Convert.ToDouble( neoDataLoader.GetStatementResult( "match(n) where id(n) = " + agent + " return n.Пища" ).Single()[0].As <string>()); } sum /= agentsID.Count(); return(sum); } }